[FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data

James Almer jamrial at gmail.com
Mon May 27 22:32:43 EEST 2024


On 5/27/2024 4:20 PM, Michael Niedermayer wrote:
> On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
>> On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
>>> On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
>>>> Quoting Michael Niedermayer (2024-04-27 02:36:23)
>>>>> This allows detecting issues in side data related code, same as what
>>>>> framecrc does for before already for packet data itself.
>>>>>
>>>>> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
>>>>> ---
>>>>
>>>> I am against this patch. Checksumming side data is a fundamentally wrong
>>>> thing to do.
>>>
>>> It, or something equivalent is neccessary for regression testing.
>>> (and it was you who asked also for the tests i run to be part of
>>>    fate. But here you object to it)
>>>
>>> You know, not checking side data is not checking it so differences would then not be
>>> detected allowing for unintended changes to be introduced (aka bugs)
>>
>> You have seen how much code is needed to get hashing to work for all targets
>> with some types,
> 
>   framecrcenc.c |   76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
>   1 file changed, 73 insertions(+), 3 deletions(-)
> 
> 70 more lines of code, in my patch
> 
> If we need another 70 to handle some corner cases, no idea if we do, thats
> still negligible

IAMF and video_enc_params. And potential future types. It's not negligible.

> 
> 
>> so it does feel like it's not the right thing to do.
> 
> I dont think i can follow that logic

Extra custom code to take into account specific side data types in order 
to output a common hash value. Do we really need to add that when we 
already have side data type specific parsing code to in ffprobe?

> 
> 
>> ffprobe (and f_sidedata) are what should be used for actual integrity
>> checks.
> 
> ffprobe cannot test ffmpeg, ffmpeg is a seperate excutable

I didn't say ffprobe should be used to test ffmpeg, i said ffprobe 
should be used to test side data integrity.

> 
> If you suggest that side data should not be tested in FFmpeg while packet.data
> should be tested. That position seems inconsistant to me
> 
> If you suggest that neither side data nor packet.data should be tested in FFmpeg
> iam confident that there would be a majority disagreeing.
> 
> f_sidedata is not at the output of ffmpeg so even if it could test it, it
> does not test the ffmpeg output.

I meant {a,f}_showinfo, sorry. And it does not apply to packet side 
data, obviously.

> We also dont replace running md5sum and framecrc on ffmpeg output by a bitstream
> filter.
> 
> Again, there is need to test what comes out of FFmpeg, thats at the muxer level
> thats what framecrcenc does.

Packet side data does not come out of ffmpeg, it comes out of 
libavformat (or libavcodec/libavfilter in the case of frame side data). 
A user of lavf can look at side data instead of needing a lavf muxer to 
print a hash that needs ad hoc code for it to match across targets.

> 
> thx
> 
> [...]
> 
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list