Originally committed as revision 26219 to svn://svn.ffmpeg.org/ffmpeg/trunk
Michael Niedermayer authored on 2011/01/05 13:52:32... | ... |
@@ -628,15 +628,18 @@ static void choose_pixel_fmt(AVStream *st, AVCodec *codec) |
628 | 628 |
{ |
629 | 629 |
if(codec && codec->pix_fmts){ |
630 | 630 |
const enum PixelFormat *p= codec->pix_fmts; |
631 |
+ if(st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL){ |
|
632 |
+ if(st->codec->codec_id==CODEC_ID_MJPEG){ |
|
633 |
+ p= (const enum PixelFormat[]){PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_NONE}; |
|
634 |
+ }else if(st->codec->codec_id==CODEC_ID_LJPEG){ |
|
635 |
+ p= (const enum PixelFormat[]){PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUVJ444P, PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_BGRA, PIX_FMT_NONE}; |
|
636 |
+ } |
|
637 |
+ } |
|
631 | 638 |
for(; *p!=-1; p++){ |
632 | 639 |
if(*p == st->codec->pix_fmt) |
633 | 640 |
break; |
634 | 641 |
} |
635 |
- if(*p == -1 |
|
636 |
- && !( st->codec->codec_id==CODEC_ID_MJPEG |
|
637 |
- && st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL |
|
638 |
- && ( st->codec->pix_fmt == PIX_FMT_YUV420P |
|
639 |
- || st->codec->pix_fmt == PIX_FMT_YUV422P))) |
|
642 |
+ if(*p == -1) |
|
640 | 643 |
st->codec->pix_fmt = codec->pix_fmts[0]; |
641 | 644 |
} |
642 | 645 |
} |