[FFmpeg-user] yuv422p16le silently converted to yuv422p10le - even if pix_fmt is set to 16bit

Carl Eugen Hoyos cehoyos at ag.or.at
Wed Oct 3 00:52:07 CEST 2012


Andy Civil <andycivil <at> gmail.com> writes:

> > Don't you agree that the behaviour (not encoding 10bit
> > information as 16bit) is intended and desirable?
> 
> One of the benefits of community software is that it frees you from the 
> corporate megalith philosophy of serving you what they think you want,

> rather than what you actually ask for.

The important point is that no pixel_format was asked for 
by the user, ffmpeg had to auto-select one.
In the past, it sometimes behaved erratically, I strongly 
believe that the changes that have been made in this 
regard are very important.

That said, I misunderstood the original question (thank you, 
Michael, for pointing it out):
FFmpeg is not choosing colour spaces in this case, 
but the v210 decoder is older than the yuv422p10 colour 
space.
I was so far against changing it to output yuv422p10, but 
I understand now that the current situation may be confusing, 
the patch should be simple. 
(volunteers?)

To elaborate: There is always only 10 bit of yuv422 in 
the whole operation, in the past this was (to reduce the 
number of colour spaces) called "16 bit yuv 422 with 10 
bit of information". When the additional colour space was 
added, the ffv1 decoder was changed to actually use the 
new colour space. At no time was there more than 10bit 
encoded or decoded, the only bug I see is that ffmpeg -i 
does not tell about the number of used bits (only the 
colour space).

> There are many reasons for wanting something illogical 
> such as a 10-bit sequence encoded as 16-bit; we depend 
> on FFmpeg doing what we ask and not something else.

And this is exactly what FFmpeg does if (and of course 
only if) you specify that you want something illogical 
which was not done in this case.

Carl Eugen



More information about the ffmpeg-user mailing list