mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-31 11:53:24 +00:00
rawdec: Fix decoding of QT WRAW files.
From some tests it results that:
1. All of the AVI/MOV WRAW files need to be flipped.
2. MOV WRAW files need to use AVI color modes.
3. Assigning PAL8 mode by default to WRAW codec is not correct.
(cherry picked from commit 67e7dc5404
)
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
This commit is contained in:
parent
6a34f5d447
commit
fcd26ebc8f
@ -123,7 +123,6 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = {
|
||||
{ PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', '2') },
|
||||
{ PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', 's') },
|
||||
{ PIX_FMT_YUYV422, MKTAG('D', 'V', 'O', 'O') }, /* Digital Voodoo SD 8 Bit */
|
||||
{ PIX_FMT_PAL8, MKTAG('W', 'R', 'A', 'W') },
|
||||
{ PIX_FMT_RGB555LE,MKTAG('L', '5', '5', '5') },
|
||||
{ PIX_FMT_RGB565LE,MKTAG('L', '5', '6', '5') },
|
||||
{ PIX_FMT_RGB565BE,MKTAG('B', '5', '6', '5') },
|
||||
|
@ -78,6 +78,8 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
|
||||
|
||||
if (avctx->codec_tag == MKTAG('r','a','w',' '))
|
||||
avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_mov, avctx->bits_per_coded_sample);
|
||||
else if (avctx->codec_tag == MKTAG('W','R','A','W'))
|
||||
avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_avi, 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->pix_fmt == PIX_FMT_NONE && avctx->bits_per_coded_sample)
|
||||
@ -98,7 +100,7 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
|
||||
avctx->coded_frame= &context->pic;
|
||||
|
||||
if((avctx->extradata_size >= 9 && !memcmp(avctx->extradata + avctx->extradata_size - 9, "BottomUp", 9)) ||
|
||||
avctx->codec_tag == MKTAG( 3 , 0 , 0 , 0 ))
|
||||
avctx->codec_tag == MKTAG(3, 0, 0, 0) || avctx->codec_tag == MKTAG('W','R','A','W'))
|
||||
context->flip=1;
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user