mov: Read nero chapters
Originally committed as revision 23020 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
e1954bb5ca
commit
1cf9f6ed4f
@ -219,6 +219,36 @@ static int mov_read_udta_string(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mov_read_chpl(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
||||
{
|
||||
int64_t start;
|
||||
int i, nb_chapters, str_len;
|
||||
char str[256+1];
|
||||
|
||||
if ((atom.size -= 5) < 0)
|
||||
return 0;
|
||||
|
||||
get_be32(pb); // version + flags
|
||||
get_be32(pb); // ???
|
||||
nb_chapters = get_byte(pb);
|
||||
|
||||
for (i = 0; i < nb_chapters; i++) {
|
||||
if (atom.size < 9)
|
||||
return 0;
|
||||
|
||||
start = get_be64(pb);
|
||||
str_len = get_byte(pb);
|
||||
|
||||
if ((atom.size -= 9+str_len) < 0)
|
||||
return 0;
|
||||
|
||||
get_buffer(pb, str, str_len);
|
||||
str[str_len] = 0;
|
||||
ff_new_chapter(c->fc, i, (AVRational){1,10000000}, start, AV_NOPTS_VALUE, str);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
||||
{
|
||||
int64_t total_size = 0;
|
||||
@ -2166,6 +2196,7 @@ static int mov_read_elst(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
||||
|
||||
static const MOVParseTableEntry mov_default_parse_table[] = {
|
||||
{ MKTAG('a','v','s','s'), mov_read_extradata },
|
||||
{ MKTAG('c','h','p','l'), mov_read_chpl },
|
||||
{ MKTAG('c','o','6','4'), mov_read_stco },
|
||||
{ MKTAG('c','t','t','s'), mov_read_ctts }, /* composition time to sample */
|
||||
{ MKTAG('d','i','n','f'), mov_read_default },
|
||||
|
Loading…
x
Reference in New Issue
Block a user