128 lines
4.9 KiB
Plaintext
128 lines
4.9 KiB
Plaintext
$OpenBSD: patch-import_decode_lavc_c,v 1.6 2019/02/18 10:05:39 ajacoutot Exp $
|
|
|
|
Update for newer FFmpeg API.
|
|
|
|
Index: import/decode_lavc.c
|
|
--- import/decode_lavc.c.orig
|
|
+++ import/decode_lavc.c
|
|
@@ -58,37 +58,37 @@ struct ffmpeg_codec {
|
|
|
|
// fourCC to ID mapping taken from MPlayer's codecs.conf
|
|
static struct ffmpeg_codec ffmpeg_codecs[] = {
|
|
- {CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
|
|
+ {AV_CODEC_ID_MSMPEG4V1, TC_CODEC_ERROR, "mp41",
|
|
{"MP41", "DIV1", ""}},
|
|
- {CODEC_ID_MSMPEG4V2, TC_CODEC_MP42, "mp42",
|
|
+ {AV_CODEC_ID_MSMPEG4V2, TC_CODEC_MP42, "mp42",
|
|
{"MP42", "DIV2", ""}},
|
|
- {CODEC_ID_MSMPEG4V3, TC_CODEC_DIVX3, "msmpeg4",
|
|
+ {AV_CODEC_ID_MSMPEG4V3, TC_CODEC_DIVX3, "msmpeg4",
|
|
{"DIV3", "DIV5", "AP41", "MPG3", "MP43", ""}},
|
|
- {CODEC_ID_MPEG4, TC_CODEC_DIVX4, "mpeg4",
|
|
+ {AV_CODEC_ID_MPEG4, TC_CODEC_DIVX4, "mpeg4",
|
|
{"DIVX", "XVID", "MP4S", "M4S2", "MP4V", "UMP4", "DX50", ""}},
|
|
- {CODEC_ID_MJPEG, TC_CODEC_MJPEG, "mjpeg",
|
|
+ {AV_CODEC_ID_MJPEG, TC_CODEC_MJPEG, "mjpeg",
|
|
{"MJPG", "AVRN", "AVDJ", "JPEG", "MJPA", "JFIF", ""}},
|
|
- {CODEC_ID_MPEG1VIDEO, TC_CODEC_MPEG1VIDEO, "mpeg1video",
|
|
+ {AV_CODEC_ID_MPEG1VIDEO, TC_CODEC_MPEG1VIDEO, "mpeg1video",
|
|
{"MPG1", ""}},
|
|
- {CODEC_ID_DVVIDEO, TC_CODEC_DV, "dvvideo",
|
|
+ {AV_CODEC_ID_DVVIDEO, TC_CODEC_DV, "dvvideo",
|
|
{"DVSD", ""}},
|
|
- {CODEC_ID_WMV1, TC_CODEC_WMV1, "wmv1",
|
|
+ {AV_CODEC_ID_WMV1, TC_CODEC_WMV1, "wmv1",
|
|
{"WMV1", ""}},
|
|
- {CODEC_ID_WMV2, TC_CODEC_WMV2, "wmv2",
|
|
+ {AV_CODEC_ID_WMV2, TC_CODEC_WMV2, "wmv2",
|
|
{"WMV2", ""}},
|
|
- {CODEC_ID_HUFFYUV, TC_CODEC_HUFFYUV, "hfyu",
|
|
+ {AV_CODEC_ID_HUFFYUV, TC_CODEC_HUFFYUV, "hfyu",
|
|
{"HFYU", ""}},
|
|
- {CODEC_ID_H263I, TC_CODEC_H263I, "h263i",
|
|
+ {AV_CODEC_ID_H263I, TC_CODEC_H263I, "h263i",
|
|
{"I263", ""}},
|
|
- {CODEC_ID_H263P, TC_CODEC_H263P, "h263p",
|
|
+ {AV_CODEC_ID_H263P, TC_CODEC_H263P, "h263p",
|
|
{"H263", "U263", "VIV1", ""}},
|
|
- {CODEC_ID_RV10, TC_CODEC_RV10, "rv10",
|
|
+ {AV_CODEC_ID_RV10, TC_CODEC_RV10, "rv10",
|
|
{"RV10", "RV13", ""}},
|
|
- {CODEC_ID_SVQ1, TC_CODEC_SVQ1, "svq1",
|
|
+ {AV_CODEC_ID_SVQ1, TC_CODEC_SVQ1, "svq1",
|
|
{"SVQ1", ""}},
|
|
- {CODEC_ID_SVQ3, TC_CODEC_SVQ3, "svq3",
|
|
+ {AV_CODEC_ID_SVQ3, TC_CODEC_SVQ3, "svq3",
|
|
{"SVQ3", ""}},
|
|
- {CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG2, "mpeg2video",
|
|
+ {AV_CODEC_ID_MPEG2VIDEO, TC_CODEC_MPEG2, "mpeg2video",
|
|
{"MPG2", ""}},
|
|
{0, TC_CODEC_UNKNOWN, NULL, {""}}};
|
|
|
|
@@ -170,7 +170,7 @@ void decode_lavc(decode_t *decode)
|
|
|
|
// Set these to the expected values so that ffmpeg's decoder can
|
|
// properly detect interlaced input.
|
|
- lavc_dec_context = avcodec_alloc_context();
|
|
+ lavc_dec_context = avcodec_alloc_context3(NULL);
|
|
if (lavc_dec_context == NULL) {
|
|
tc_log_error(__FILE__, "Could not allocate enough memory.");
|
|
goto decoder_error;
|
|
@@ -181,12 +181,12 @@ void decode_lavc(decode_t *decode)
|
|
#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
|
|
lavc_dec_context->error_resilience = 2;
|
|
#else
|
|
- lavc_dec_context->error_recognition = 2;
|
|
+ lavc_dec_context->err_recognition = 2;
|
|
#endif
|
|
lavc_dec_context->error_concealment = 3;
|
|
lavc_dec_context->workaround_bugs = FF_BUG_AUTODETECT;
|
|
|
|
- if (avcodec_open(lavc_dec_context, lavc_dec_codec) < 0) {
|
|
+ if (avcodec_open2(lavc_dec_context, lavc_dec_codec, NULL) < 0) {
|
|
tc_log_error(__FILE__, "Could not initialize the '%s' codec.",
|
|
codec->name);
|
|
goto decoder_error;
|
|
@@ -290,8 +290,8 @@ void decode_lavc(decode_t *decode)
|
|
|
|
// Convert avcodec image to the requested YUV or RGB format
|
|
switch (lavc_dec_context->pix_fmt) {
|
|
- case PIX_FMT_YUVJ420P:
|
|
- case PIX_FMT_YUV420P:
|
|
+ case AV_PIX_FMT_YUVJ420P:
|
|
+ case AV_PIX_FMT_YUV420P:
|
|
// Remove "dead space" at right edge of planes, if any
|
|
if (picture.linesize[0] != lavc_dec_context->width) {
|
|
int y;
|
|
@@ -315,7 +315,7 @@ void decode_lavc(decode_t *decode)
|
|
pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
|
|
lavc_dec_context->width, lavc_dec_context->height);
|
|
break;
|
|
- case PIX_FMT_YUV411P:
|
|
+ case AV_PIX_FMT_YUV411P:
|
|
if (picture.linesize[0] != lavc_dec_context->width) {
|
|
int y;
|
|
for (y = 0; y < lavc_dec_context->height; y++) {
|
|
@@ -334,8 +334,8 @@ void decode_lavc(decode_t *decode)
|
|
pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
|
|
lavc_dec_context->width, lavc_dec_context->height);
|
|
break;
|
|
- case PIX_FMT_YUVJ422P:
|
|
- case PIX_FMT_YUV422P:
|
|
+ case AV_PIX_FMT_YUVJ422P:
|
|
+ case AV_PIX_FMT_YUV422P:
|
|
if (picture.linesize[0] != lavc_dec_context->width) {
|
|
int y;
|
|
for (y = 0; y < lavc_dec_context->height; y++) {
|
|
@@ -354,8 +354,8 @@ void decode_lavc(decode_t *decode)
|
|
pix_fmt==TC_CODEC_YUV420P ? IMG_YUV420P : IMG_RGB_DEFAULT,
|
|
lavc_dec_context->width, lavc_dec_context->height);
|
|
break;
|
|
- case PIX_FMT_YUVJ444P:
|
|
- case PIX_FMT_YUV444P:
|
|
+ case AV_PIX_FMT_YUVJ444P:
|
|
+ case AV_PIX_FMT_YUV444P:
|
|
if (picture.linesize[0] != lavc_dec_context->width) {
|
|
int y;
|
|
for (y = 0; y < lavc_dec_context->height; y++) {
|