Message ID | 20160910010640.68408-2-rodger.combs@gmail.com |
---|---|
State | Superseded |
Headers | show |
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: is this missing some hadling of langauge specific stuff ? also off topic but we should sort metadata for display so related tags appear together 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 [...]
> On Sep 10, 2016, at 05:55, Michael Niedermayer <michael@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@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel <http://ffmpeg.org/mailman/listinfo/ffmpeg-devel>
On Mon, Sep 12, 2016 at 08:24:44PM -0500, Rodger Combs wrote: > > > On Sep 10, 2016, at 05:55, Michael Niedermayer <michael@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? doesnt matter btw this patch seems to have been forgotten [...]
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; + } } c->fc->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; av_dict_set(&c->fc->metadata, key, str, 0);