[FFmpeg-cvslog] r23561 - in trunk/libavcodec: avcodec.h rawdec.c

thardin subversion
Thu Jun 10 10:39:05 CEST 2010


Author: thardin
Date: Thu Jun 10 10:39:05 2010
New Revision: 23561

Log:
avcodec.h: Clarify AVCodecContext::pix_fmt documentation since its value may be set by the demuxer
rawdec.c: Only perform bits_per_coded_sample -> pix_fmt guesswork if pix_fmt hasn't been set

Modified:
   trunk/libavcodec/avcodec.h
   trunk/libavcodec/rawdec.c

Modified: trunk/libavcodec/avcodec.h
==============================================================================
--- trunk/libavcodec/avcodec.h	Thu Jun 10 10:10:32 2010	(r23560)
+++ trunk/libavcodec/avcodec.h	Thu Jun 10 10:39:05 2010	(r23561)
@@ -1121,8 +1121,10 @@ typedef struct AVCodecContext {
 
     /**
      * Pixel format, see PIX_FMT_xxx.
+     * May be set by the demuxer if known from headers.
+     * May be overriden by the decoder if it knows better.
      * - encoding: Set by user.
-     * - decoding: Set by libavcodec.
+     * - decoding: Set by user if known, overridden by libavcodec if known
      */
     enum PixelFormat pix_fmt;
 

Modified: trunk/libavcodec/rawdec.c
==============================================================================
--- trunk/libavcodec/rawdec.c	Thu Jun 10 10:10:32 2010	(r23560)
+++ trunk/libavcodec/rawdec.c	Thu Jun 10 10:39:05 2010	(r23561)
@@ -77,7 +77,7 @@ static av_cold int raw_init_decoder(AVCo
         avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_mov, avctx->bits_per_coded_sample);
     else if (avctx->codec_tag)
         avctx->pix_fmt = find_pix_fmt(ff_raw_pix_fmt_tags, avctx->codec_tag);
-    else if (avctx->bits_per_coded_sample)
+    else if (avctx->pix_fmt == PIX_FMT_NONE && avctx->bits_per_coded_sample)
         avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_avi, avctx->bits_per_coded_sample);
 
     context->length = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);



More information about the ffmpeg-cvslog mailing list