[FFmpeg-cvslog] avcodec/utils/ff_init_buffer_info: Favor color information from AVFrame if available

Michael Niedermayer git at videolan.org
Tue Jun 3 05:21:22 CEST 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Jun  3 04:50:07 2014 +0200| [4e3fe65610c991e547f1103978040dbfb323d891] | committer: Michael Niedermayer

avcodec/utils/ff_init_buffer_info: Favor color information from AVFrame if available

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/utils.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index e1301b0..565e2ff 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -786,13 +786,16 @@ int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame)
     frame->reordered_opaque = avctx->reordered_opaque;
 
 #if FF_API_AVFRAME_COLORSPACE
-    frame->color_primaries = avctx->color_primaries;
-    frame->color_trc       = avctx->color_trc;
+    if (frame->color_primaries == AVCOL_PRI_UNSPECIFIED)
+        frame->color_primaries = avctx->color_primaries;
+    if (frame->color_trc == AVCOL_TRC_UNSPECIFIED)
+        frame->color_trc = avctx->color_trc;
     if (av_frame_get_colorspace(frame) == AVCOL_SPC_UNSPECIFIED)
         av_frame_set_colorspace(frame, avctx->colorspace);
     if (av_frame_get_color_range(frame) == AVCOL_RANGE_UNSPECIFIED)
         av_frame_set_color_range(frame, avctx->color_range);
-    frame->chroma_location = avctx->chroma_sample_location;
+    if (frame->chroma_location == AVCHROMA_LOC_UNSPECIFIED)
+        frame->chroma_location = avctx->chroma_sample_location;
 #endif
 
     switch (avctx->codec->type) {



More information about the ffmpeg-cvslog mailing list