Browse Source

lavf/mov: support gopro hero moments udta tag

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.2
Jean Caillé Michael Niedermayer 8 years ago
parent
commit
6498549fd7
1 changed files with 19 additions and 0 deletions
  1. +19
    -0
      libavformat/mov.c

+ 19
- 0
libavformat/mov.c View File

@@ -268,6 +268,23 @@ static int mov_metadata_loci(MOVContext *c, AVIOContext *pb, unsigned len)
return av_dict_set(&c->fc->metadata, key, buf, 0);
}

static int mov_metadata_hmmt(MOVContext *c, AVIOContext *pb, unsigned len)
{
int i, n_hmmt;

if (len < 2)
return 0;
if (c->ignore_chapters)
return 0;

n_hmmt = avio_rb32(pb);
for (i = 0; i < n_hmmt && !pb->eof_reached; i++) {
int moment_time = avio_rb32(pb);
avpriv_new_chapter(c->fc, i, av_make_q(1, 1000), moment_time, AV_NOPTS_VALUE, NULL);
}
return 0;
}

static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{
char tmp_key[5];
@@ -303,6 +320,8 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom)
parse = mov_metadata_gnre; break;
case MKTAG( 'h','d','v','d'): key = "hd_video";
parse = mov_metadata_int8_no_padding; break;
case MKTAG( 'H','M','M','T'):
return mov_metadata_hmmt(c, pb, atom.size);
case MKTAG( 'k','e','y','w'): key = "keywords"; break;
case MKTAG( 'l','d','e','s'): key = "synopsis"; break;
case MKTAG( 'l','o','c','i'):


Loading…
Cancel
Save