Am 22.11.2022 um 02:15 schrieb Jim DeLaHunt:
On 2022-11-20 00:15, Michael Koch wrote:

Am 20.11.2022 um 02:39 schrieb list+ffmpeg-u...@jdlh.com:

On 2022-11-19 07:34, Michael Koch wrote:
Am 03.11.2022 um 10:10 schrieb Paul B Mahol:

Some things in sea of myriad others:
[...]
Why you claim that datascope does not support >8 bit formats where in
fact it does support it?

In some cases datascope works with 16-bit data, but not in all cases.
Here is an example where it doesn't work:

ffmpeg -f lavfi -i color=black:s=32x32,format=gray10le -lavfi geq=lum='X+32*Y',format=gray10le -frames 1 -y test.png

ffmpeg -i test.png -vf format=rgb48,showinfo,datascope=s=1280x1152:mode=color2:format=hex -y out.png

Perhaps clarify what you observe as "doesn't work", and what behaviour you expect?

Both those commands run for me without error, and I can view both test.png and out.png without problem. out.png has a cascade of 32 2-digit hex numbers on the left half, and solid black on the right half. The hex numbers run from 00 to 7F, in white on a black to grey gradient background, and from 80 to FF, in black on a grey to white background.

I would expect 4-digit hex numbers, because the rgb48 pixel format is 16-bit per channel.
For example, it works fine if "rgb48" is replaced by "gray16".

The phrase "works fine" appeals to some notion of what is "correct" behaviour. It seems that you have your own idea of "correct" behaviour for this filter. But it seems more helpful for communication on this list to use FFmpeg's idea of "correct" behaviour. And the best source we have for FFmpeg's idea of "correct" is the filter documentation <https://ffmpeg.org/ffmpeg-all.html#datascope>: "Video data analysis filter. This filter shows hexadecimal pixel values of part of video."

I think the description in the documentation is incomplete and unclear. I wish FFmpeg had a better description. But the actual behaviour does not conflict with this incomplete description. The description does not promise that the datascope filter shows the full-precision, untruncated pixel values. It might be (I did not check) that the 8-bit values which datascope displays for an rgb48 input image are the correct upper 8 bits of 16-bit pixel values.

So, you said, "In some cases datascope works with 16-bit data, but not in all cases."  If you had instead said, "In some cases datascope gives useful results with 16-bit data, but not in all cases", then I would be completely with you. It is clear that truncated 8 bit values for an rbg48 input are not as helpful as full-precision, untruncated 16-bit pixel values.

But the sad reality is the FFmpeg only does not always document its intended behaviour clearly, and does not seem to have a goal of always providing the most helpful behaviour. The culture here understands "doesn't support" or "doesn't work" to mean, "ffmpeg terminates prematurely with an error" or "ffmpeg fails to generate output". If you use those phrases when your objection is actually, "runs to completion and generates output, but output is not as helpful as it could be", then your message gets diluted by misunderstanding.

Sorry for describing the issue not clear enough.
In ticket #10057 it should be clear.

Michael

_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to