[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