[FFmpeg-cvslog] mpeg12: Always invoke the get_format() callback

Rémi Denis-Courmont git at videolan.org
Sat Oct 4 23:20:21 CEST 2014


ffmpeg | branch: release/2.4 | Rémi Denis-Courmont <remi at remlab.net> | Thu Sep 25 11:59:58 2014 +0300| [ce0972ecddef3eee3c03e393108e5728821e3e37] | committer: Luca Barbato

mpeg12: Always invoke the get_format() callback

Signed-off-by: Luca Barbato <lu_zero at gentoo.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ce0972ecddef3eee3c03e393108e5728821e3e37
---

 libavcodec/mpeg12dec.c |   19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index e3bd167..93e3900 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -1181,10 +1181,21 @@ static const enum AVPixelFormat mpeg12_hwaccel_pixfmt_list_420[] = {
     AV_PIX_FMT_NONE
 };
 
+static const enum AVPixelFormat mpeg12_pixfmt_list_422[] = {
+    AV_PIX_FMT_YUV422P,
+    AV_PIX_FMT_NONE
+};
+
+static const enum AVPixelFormat mpeg12_pixfmt_list_444[] = {
+    AV_PIX_FMT_YUV444P,
+    AV_PIX_FMT_NONE
+};
+
 static enum AVPixelFormat mpeg_get_pixelformat(AVCodecContext *avctx)
 {
     Mpeg1Context *s1  = avctx->priv_data;
     MpegEncContext *s = &s1->mpeg_enc_ctx;
+    const enum AVPixelFormat *pix_fmts;
 
 #if FF_API_XVMC
 FF_DISABLE_DEPRECATION_WARNINGS
@@ -1194,11 +1205,13 @@ FF_ENABLE_DEPRECATION_WARNINGS
 #endif /* FF_API_XVMC */
 
     if (s->chroma_format < 2)
-        return ff_get_format(avctx, mpeg12_hwaccel_pixfmt_list_420);
+        pix_fmts = mpeg12_hwaccel_pixfmt_list_420;
     else if (s->chroma_format == 2)
-        return AV_PIX_FMT_YUV422P;
+        pix_fmts = mpeg12_pixfmt_list_422;
     else
-        return AV_PIX_FMT_YUV444P;
+        pix_fmts = mpeg12_pixfmt_list_444;
+
+    return ff_get_format(avctx, pix_fmts);
 }
 
 /* Call this function when we know all parameters.



More information about the ffmpeg-cvslog mailing list