mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Fix/cleanup m/ljpeg encoding pix fmt selection code in ffmpeg.c.
Better ideas are welcome ... Originally committed as revision 26219 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
dc8465a9b4
commit
b26847b710
13
ffmpeg.c
13
ffmpeg.c
@ -628,15 +628,18 @@ static void choose_pixel_fmt(AVStream *st, AVCodec *codec)
|
||||
{
|
||||
if(codec && codec->pix_fmts){
|
||||
const enum PixelFormat *p= codec->pix_fmts;
|
||||
if(st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL){
|
||||
if(st->codec->codec_id==CODEC_ID_MJPEG){
|
||||
p= (const enum PixelFormat[]){PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_NONE};
|
||||
}else if(st->codec->codec_id==CODEC_ID_LJPEG){
|
||||
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};
|
||||
}
|
||||
}
|
||||
for(; *p!=-1; p++){
|
||||
if(*p == st->codec->pix_fmt)
|
||||
break;
|
||||
}
|
||||
if(*p == -1
|
||||
&& !( st->codec->codec_id==CODEC_ID_MJPEG
|
||||
&& st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL
|
||||
&& ( st->codec->pix_fmt == PIX_FMT_YUV420P
|
||||
|| st->codec->pix_fmt == PIX_FMT_YUV422P)))
|
||||
if(*p == -1)
|
||||
st->codec->pix_fmt = codec->pix_fmts[0];
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user