The vuya pixel format was recently added, so this lavc workaround is no longer

needed.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2022-08-07 14:50:18 -03:00
parent aca569aad2
commit 352799dca8
8 changed files with 35 additions and 3 deletions

View File

@ -14,6 +14,10 @@ libavutil: 2021-04-27
API changes, most recent first:
2022-08-xx - xxxxxxxxxx - lavc 59.42.101 - codec_id.h
Deprecate AV_CODEC_ID_AYUV and ayuv decoder/encoder. The rawvideo codec
and vuya pixel format combination will be used instead from now on.
2022-08-07 - e95b08a7dd - lavu 57.33.101 - pixfmt.h
Add AV_PIX_FMT_RGBAF16{BE,LE} pixel formats.

View File

@ -61,8 +61,10 @@ extern const FFCodec ff_avrn_decoder;
extern const FFCodec ff_avs_decoder;
extern const FFCodec ff_avui_encoder;
extern const FFCodec ff_avui_decoder;
#if FF_API_AYUV_CODECID
extern const FFCodec ff_ayuv_encoder;
extern const FFCodec ff_ayuv_decoder;
#endif
extern const FFCodec ff_bethsoftvid_decoder;
extern const FFCodec ff_bfi_decoder;
extern const FFCodec ff_bink_decoder;

View File

@ -1462,6 +1462,7 @@ static const AVCodecDescriptor codec_descriptors[] = {
.long_name = NULL_IF_CONFIG_SMALL("Avid Meridien Uncompressed"),
.props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
},
#if FF_API_AYUV_CODECID
{
.id = AV_CODEC_ID_AYUV,
.type = AVMEDIA_TYPE_VIDEO,
@ -1469,6 +1470,7 @@ static const AVCodecDescriptor codec_descriptors[] = {
.long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed MS 4:4:4:4"),
.props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
},
#endif
{
.id = AV_CODEC_ID_TARGA_Y216,
.type = AVMEDIA_TYPE_VIDEO,

View File

@ -24,6 +24,8 @@
#include "libavutil/avutil.h"
#include "libavutil/samplefmt.h"
#include "version_major.h"
/**
* @addtogroup lavc_core
* @{
@ -251,7 +253,9 @@ enum AVCodecID {
AV_CODEC_ID_AVRP,
AV_CODEC_ID_012V,
AV_CODEC_ID_AVUI,
#if FF_API_AYUV_CODECID
AV_CODEC_ID_AYUV,
#endif
AV_CODEC_ID_TARGA_Y216,
AV_CODEC_ID_V308,
AV_CODEC_ID_V408,

View File

@ -29,6 +29,10 @@ static av_cold int v408_decode_init(AVCodecContext *avctx)
{
avctx->pix_fmt = AV_PIX_FMT_YUVA444P;
#if FF_API_AYUV_CODECID
if (avctx->codec_id==AV_CODEC_ID_AYUV)
av_log(avctx, AV_LOG_WARNING, "This decoder is deprecated and will be removed.\n");
#endif
return 0;
}
@ -57,12 +61,15 @@ static int v408_decode_frame(AVCodecContext *avctx, AVFrame *pic,
for (i = 0; i < avctx->height; i++) {
for (j = 0; j < avctx->width; j++) {
#if FF_API_AYUV_CODECID
if (avctx->codec_id==AV_CODEC_ID_AYUV) {
v[j] = *src++;
u[j] = *src++;
y[j] = *src++;
a[j] = *src++;
} else {
} else
#endif
{
u[j] = *src++;
y[j] = *src++;
v[j] = *src++;
@ -81,6 +88,7 @@ static int v408_decode_frame(AVCodecContext *avctx, AVFrame *pic,
return avpkt->size;
}
#if FF_API_AYUV_CODECID
#if CONFIG_AYUV_DECODER
const FFCodec ff_ayuv_decoder = {
.p.name = "ayuv",
@ -92,6 +100,7 @@ const FFCodec ff_ayuv_decoder = {
.p.capabilities = AV_CODEC_CAP_DR1,
};
#endif
#endif
#if CONFIG_V408_DECODER
const FFCodec ff_v408_decoder = {
.p.name = "v408",

View File

@ -33,6 +33,11 @@ static av_cold int v408_encode_init(AVCodecContext *avctx)
avctx->bits_per_coded_sample = 32;
avctx->bit_rate = ff_guess_coded_bitrate(avctx);
#if FF_API_AYUV_CODECID
if (avctx->codec_id == AV_CODEC_ID_AYUV)
av_log(avctx, AV_LOG_WARNING, "This encoder is deprecated and will be removed.\n");
#endif
return 0;
}
@ -55,12 +60,15 @@ static int v408_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
for (i = 0; i < avctx->height; i++) {
for (j = 0; j < avctx->width; j++) {
#if FF_API_AYUV_CODECID
if (avctx->codec_id==AV_CODEC_ID_AYUV) {
*dst++ = v[j];
*dst++ = u[j];
*dst++ = y[j];
*dst++ = a[j];
} else {
} else
#endif
{
*dst++ = u[j];
*dst++ = y[j];
*dst++ = v[j];
@ -79,6 +87,7 @@ static int v408_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
static const enum AVPixelFormat pix_fmt[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE };
#if FF_API_AYUV_CODECID
#if CONFIG_AYUV_ENCODER
const FFCodec ff_ayuv_encoder = {
.p.name = "ayuv",
@ -91,6 +100,7 @@ const FFCodec ff_ayuv_encoder = {
.p.pix_fmts = pix_fmt,
};
#endif
#endif
#if CONFIG_V408_ENCODER
const FFCodec ff_v408_encoder = {
.p.name = "v408",

View File

@ -30,7 +30,7 @@
#include "version_major.h"
#define LIBAVCODEC_VERSION_MINOR 42
#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_MICRO 102
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \

View File

@ -50,5 +50,6 @@
#define FF_API_SUB_TEXT_FORMAT (LIBAVCODEC_VERSION_MAJOR < 60)
#define FF_API_IDCT_NONE (LIBAVCODEC_VERSION_MAJOR < 60)
#define FF_API_SVTAV1_OPTS (LIBAVCODEC_VERSION_MAJOR < 60)
#define FF_API_AYUV_CODECID (LIBAVCODEC_VERSION_MAJOR < 60)
#endif /* AVCODEC_VERSION_MAJOR_H */