aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Härdin <tomas.hardin@codemill.se>2010-06-10 08:39:05 +0000
committerTomas Härdin <tomas.hardin@codemill.se>2010-06-10 08:39:05 +0000
commitc1bdc9300b3c0b05d49a8a0e34a5249dfe1544f3 (patch)
treeb88ac3fbb69cf6100956e68393eab3e6fdcc95b3
parentbb5cfc48f1f95eacd093b447cca4a451c396905b (diff)
downloadffmpeg-c1bdc9300b3c0b05d49a8a0e34a5249dfe1544f3.tar.gz
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 Originally committed as revision 23561 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/avcodec.h4
-rw-r--r--libavcodec/rawdec.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 5e77fb3592..ffc2e07ce8 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -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;
diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c
index ab13bdc59e..ce1febbf94 100644
--- a/libavcodec/rawdec.c
+++ b/libavcodec/rawdec.c
@@ -77,7 +77,7 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
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);