[FFmpeg-devel] [PATCH] avformat/mov.c: Fix to allow custom udta tags through when export_all option specified.
Baptiste Coudurier
baptiste.coudurier at gmail.com
Sat Jun 28 22:43:13 EEST 2025
Hey Ken
> On Jun 28, 2025, at 1:04 AM, Ken McGaugh <ken at mcgaugh.co.uk> wrote:
>
> On Sat, 28 Jun 2025 at 13:52, Baptiste Coudurier <
> baptiste.coudurier-at-gmail.com at ffmpeg.org <mailto:baptiste.coudurier-at-gmail.com at ffmpeg.org>> wrote:
>
>> Hi
>>
>>> On Jun 27, 2025, at 5:46 PM, Ken McGaugh <ken at mcgaugh.co.uk> wrote:
>>>
>>> Hi, first time contributing to ffmpeg so I hope I got this right. We use
>>> custom udta tags in our pipeline but they were not coming through
>>> correctly. Looks like they were incorrectly being routed through the code
>>> path for "raw" data.
>>> ---
>>> libavformat/mov.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>>> index bd6b23466b..1b17f52a16 100644
>>> --- a/libavformat/mov.c
>>> +++ b/libavformat/mov.c
>>> @@ -484,7 +484,7 @@ retry:
>>> return ret;
>>> }
>>> } else return 0;
>>> - } else if (atom.size > 4 && key && !c->itunes_metadata && !raw) {
>>> + } else if (atom.size > 4 && !c->itunes_metadata && !raw) {
>>> str_size = avio_rb16(pb); // string length
>>> if (str_size > atom.size) {
>>> raw = 1;
>>> --
>>> 2.39.5 (Apple Git-154)
>>
>> Thanks!
>> Would it be possible for you to share a small sample?
>>
>>
> Certainly. Here is a sample .mov with a handful of custom udta atoms. For
> example, the '[169]tco' one should have the value "FrameNumber", but
> without this patch it is exported as an empty string.
>
> https://drive.google.com/file/d/1KJgRueP26cuo1os2OaNqBz2u8-aeUbBS/view?usp=sharing
>
Thanks!
I feel we should do "if (atom.size > 4 && (key || c->export_all) && !c->itunes_metadata && !raw” to be safer.
What do you think ?
—
Baptiste Coudurier
More information about the ffmpeg-devel
mailing list