On 9/5/2023 10:19 AM, Derek Buitenhuis wrote:
On 9/4/2023 5:10 PM, James Almer wrote:
* Warn users they need to update their code to not use stream side data (?).
    Will my code just silently change behavior if it was using stream
    side data? I legitimately do not know due to the above.

How so? This, like any other deprecated field, remains working as it
always did until it's removed. The downstream users will see the
deprecation warning during compilation, and the doxy for the field
mentions the direct replacement. It's standard procedure.

I mean dowstream users who are relying on the current behavior of checking the
first packet or stream side data - will it just cease to behave that
way silently? That is, users relying on the *output/result* of the current
behavior.

Users relying on global side data being in the first packet need to call the inject() lavf function to enable said functionality. As that function is now deprecated, they will get the relevant warning and be directed to the global side data API. Nothing is being dropped silently. Their code will behave as usual during the deprecation period.


I'll add a @deprecated comment to the doxy of
av_format_inject_global_side_data() to mention the aforementioned objective.

* Any useful doxy for API users or any example aside from function args and
    very basic struct info.

The helper functions are basically the same as the packet ones, and the
stream ones I'm deprecating. add(), new(), get(), etc. Example usage as
usual is in ffmpeg.c, but i think the doxy does a good job explaining
what they do.

I think neither ffmpeg.c nor doxy are very good ways to explain to API users
both what they should use and why. The doxy relies on the fact you alreay know
they exist and you need to use them and for what purpose. ffmpeg.c is the
worst example for API users in the known universe.

What makes this different to every other API that was introduced with relevant documentation and references to it in the deprecacted/replaced API?

It's IMO very clear in the doxy: Instead of calling inject() and looking at packet side data, just look at the always available avctx side data. Similarly, instead of looking or filling AVStream.side_data, you look or fill the field in AVStream.codecpar.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Reply via email to