[FFmpeg-devel] [PATCH 2/2] lavf/mov: strip com.apple.quicktime prefix in meta; parse creation date

Rodger Combs rodger.combs at gmail.com
Tue Sep 13 04:24:44 EEST 2016


> On Sep 10, 2016, at 05:55, Michael Niedermayer <michael at niedermayer.cc> wrote:
> 
> On Fri, Sep 09, 2016 at 08:06:40PM -0500, Rodger Combs wrote:
>> ---
>> libavformat/mov.c | 16 ++++++++++++++++
>> 1 file changed, 16 insertions(+)
>> 
>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>> index 54530e3..b75acd2 100644
>> --- a/libavformat/mov.c
>> +++ b/libavformat/mov.c
>> @@ -42,6 +42,7 @@
>> #include "libavutil/aes_ctr.h"
>> #include "libavutil/sha.h"
>> #include "libavutil/timecode.h"
>> +#include "libavutil/parseutils.h"
>> #include "libavcodec/ac3tab.h"
>> #include "libavcodec/mpegaudiodecheader.h"
>> #include "avformat.h"
>> @@ -476,6 +477,21 @@ retry:
>>                 return ret;
>>             }
>>             str[str_size] = 0;
>> +            if (!strcmp(key, "com.apple.quicktime.creationdate")) {
>> +                struct tm *ptm, tmbuf;
>> +                int64_t timeval;
>> +                if (av_parse_time(&timeval, str, 0) >= 0) {
>> +                    time_t timet = timeval / 1000000;
>> +                    if (ptm = gmtime_r(&timet, &tmbuf)) {
>> +                        strftime(str, str_size, "%Y-%m-%d %H:%M:%S", ptm);
>> +                        key = "creation_time";
>> +                    }
>> +                }
>> +            } else if (!strcmp(key, "com.apple.quicktime.location.ISO6709")) {
>> +                key = "location";
>> +            } else if (!strncmp(key, "com.apple.quicktime.", 20)) {
>> +                key += 20;
>> +            }
>>         }
> 
> this causes language specific entries no longer to be listed together
> with their "parent" entries:

Huh; interesting. Not sure why this happens, but also not sure if it matters?

> is this missing some hadling of langauge specific stuff ?

Nothing I'm aware of, but I could easily be missing something.

> also off topic but we should sort metadata for display so related
> tags appear together

Sounds worthwhile, but yeah out-of-scope here.

> 
> ticket/4012/IMG_4596.MOV
> 
>     major_brand     : qt
>     minor_version   : 0
> -    creation_time   : 2014-10-05T10:06:36.000000Z
> +    make-eng        : Apple
>     encoder         : 8.0.2
>     encoder-eng     : 8.0.2
>     date            : 2014-10-05T18:06:36+0800
>     date-eng        : 2014-10-05T18:06:36+0800
> -    location        : +06.2271+099.7476+018.026/
> +    software        : 8.0.2
>     location-eng    : +06.2271+099.7476+018.026/
> -    model           : iPhone 6
> +    creation_time   : 2014-10-05T10:06:36.000
>     model-eng       : iPhone 6
> +    location        : +06.2271+099.7476+018.026/
> +    model           : iPhone 6
>     make            : Apple
> -    make-eng        : Apple
>       rotate          : 180
>       creation_time   : 2014-10-05T10:06:36.000000Z
>       handler_name    : Core Media Data Handler
> 
> 
> [...]
> 
> -- 
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> Why not whip the teacher when the pupil misbehaves? -- Diogenes of Sinope
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org <mailto:ffmpeg-devel at ffmpeg.org>
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel <http://ffmpeg.org/mailman/listinfo/ffmpeg-devel>


More information about the ffmpeg-devel mailing list