From fc3fc0293d78c6ca61aba775c08266ad96240d5b Mon Sep 17 00:00:00 2001 From: Jason Garrett-Glaser Date: Fri, 12 Jun 2009 17:39:56 +0000 Subject: Add new FOURCC (0x0003) for raw DIB video, set flip flag accordingly. Fixes a few AVI files from what is probably a mobile phone video camera. Originally committed as revision 19172 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/raw.c | 1 + libavcodec/rawdec.c | 3 ++- libavformat/riff.c | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/raw.c b/libavcodec/raw.c index c0cc56dd80..1f60477aef 100644 --- a/libavcodec/raw.c +++ b/libavcodec/raw.c @@ -48,6 +48,7 @@ const PixelFormatTag ff_raw_pixelFormatTags[] = { { PIX_FMT_BGR555, MKTAG('B', 'G', 'R', 15) }, { PIX_FMT_RGB565, MKTAG('R', 'G', 'B', 16) }, { PIX_FMT_BGR565, MKTAG('B', 'G', 'R', 16) }, + { PIX_FMT_RGB565, MKTAG( 3 , 0 , 0 , 0 ) }, /* quicktime */ { PIX_FMT_UYVY422, MKTAG('2', 'v', 'u', 'y') }, diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c index 89e9ea936b..2f29271c9a 100644 --- a/libavcodec/rawdec.c +++ b/libavcodec/rawdec.c @@ -87,7 +87,8 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx) if (!context->buffer) return -1; - if(avctx->extradata_size >= 9 && !memcmp(avctx->extradata + avctx->extradata_size - 9, "BottomUp", 9)) + if((avctx->extradata_size >= 9 && !memcmp(avctx->extradata + avctx->extradata_size - 9, "BottomUp", 9)) || + avctx->codec_tag == MKTAG( 3 , 0 , 0 , 0 )) context->flip=1; return 0; diff --git a/libavformat/riff.c b/libavformat/riff.c index 5b8c272f93..a279121369 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -133,6 +133,7 @@ const AVCodecTag codec_bmp_tags[] = { { CODEC_ID_FFVHUFF, MKTAG('F', 'F', 'V', 'H') }, { CODEC_ID_CYUV, MKTAG('C', 'Y', 'U', 'V') }, { CODEC_ID_RAWVIDEO, MKTAG( 0 , 0 , 0 , 0 ) }, + { CODEC_ID_RAWVIDEO, MKTAG( 3 , 0 , 0 , 0 ) }, { CODEC_ID_RAWVIDEO, MKTAG('I', '4', '2', '0') }, { CODEC_ID_RAWVIDEO, MKTAG('Y', 'U', 'Y', '2') }, { CODEC_ID_RAWVIDEO, MKTAG('Y', '4', '2', '2') }, -- cgit v1.2.3