# HG changeset patch # User thardin # Date 1276159145 0 # Node ID f6a2af58f3e0e5e3f6f16d05d32bd92a3b660e5d # Parent b39ced9e4fc30056ab20d92c94653ac18ec64c6c 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 diff -r b39ced9e4fc3 -r f6a2af58f3e0 avcodec.h --- a/avcodec.h Thu Jun 10 06:00:37 2010 +0000 +++ b/avcodec.h Thu Jun 10 08:39:05 2010 +0000 @@ -1121,8 +1121,10 @@ /** * 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; diff -r b39ced9e4fc3 -r f6a2af58f3e0 rawdec.c --- a/rawdec.c Thu Jun 10 06:00:37 2010 +0000 +++ b/rawdec.c Thu Jun 10 08:39:05 2010 +0000 @@ -77,7 +77,7 @@ 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);