[FFmpeg-devel] [PATCH 13/22] fftools/ffmpeg_filter: stop disregarding user-specified pixel format

Anton Khirnov anton at khirnov.net
Sun Jul 9 05:18:46 EEST 2023


Quoting Michael Niedermayer (2023-07-09 00:15:30)
> On Fri, Jul 07, 2023 at 11:48:38AM +0200, Anton Khirnov wrote:
> > When the user explicitly specifies a pixel format that is not supported
> > by the encoder, ffmpeg CLI will currently use some heuristics to pick
> > another supported format. This is wrong and the correct action here is
> > to fail.
> > 
> > Surprisingly, a number of FATE tests are affected by this and actually
> > use a different pixel format than is specified in the makefiles.
> > ---
> >  fftools/ffmpeg_filter.c                       | 36 ++-----------------
> >  tests/fate/fits.mak                           |  6 ++--
> >  tests/fate/lavf-video.mak                     |  2 +-
> >  tests/fate/vcodec.mak                         |  4 +--
> >  .../{fitsdec-gbrap16le => fitsdec-gbrap16be}  |  4 +--
> >  .../fate/{fitsdec-gbrp16 => fitsdec-gbrp16be} |  4 +--
> >  tests/ref/lavf/gif                            |  2 +-
> >  7 files changed, 13 insertions(+), 45 deletions(-)
> >  rename tests/ref/fate/{fitsdec-gbrap16le => fitsdec-gbrap16be} (79%)
> >  rename tests/ref/fate/{fitsdec-gbrp16 => fitsdec-gbrp16be} (79%)
> 
> breaks png
> 
> ./ffmpeg -y  -i lena.pnm -s 696x300 -pix_fmt rgb48 -y out2.png
> 
> Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.
> Conversion failed!
> 
> before
> ./ffprobe out2.png
> ...
> Stream #0:0: Video: png, rgb48be(pc, gbr/unknown/unknown), 696x300, 25 fps, 25 tbr, 25 tbn
> 
> Yes internally its BE vs LE but thats not what the user wrote on the command line

The pixel format that is printed in your "before" is different from what
the user wrote as well, so the new behavior is correct IMO.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list