Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Steve Lhomme
VLC
Commits
1e913466
Commit
1e913466
authored
Oct 13, 2014
by
François Cartegnie
🤞
Browse files
demux: libmp4: reorder & fix ilst/udta rules
parent
77b82423
Changes
2
Hide whitespace changes
Inline
Side-by-side
modules/demux/mp4/libmp4.c
View file @
1e913466
...
...
@@ -3665,63 +3665,81 @@ static const struct
{
ATOM_frma
,
MP4_ReadBox_frma
,
MP4_FreeBox_Common
,
ATOM_wave
},
/* flip4mac */
{
ATOM_skcr
,
MP4_ReadBox_skcr
,
MP4_FreeBox_Common
,
0
},
/* found in udta */
{
ATOM_0xa9nam
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9aut
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9cpy
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9swr
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9inf
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
/* ilst meta tags */
{
ATOM_0xa9ART
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9
dir
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9
alb
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9cmt
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9
req
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9
com
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9day
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9des
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9fmt
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9prd
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9prf
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9src
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9alb
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9dis
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9enc
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9gen
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9trk
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9dsa
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9hst
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9url
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9ope
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9com
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9wrt
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9too
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9wrn
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9mak
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9mod
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9PRD
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9grp
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9lyr
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9gen
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9st3
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9ard
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9arg
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9cak
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9con
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9des
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9lnt
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9phg
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9pub
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9sne
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9sol
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9thx
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9xpd
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_chpl
,
MP4_ReadBox_chpl
,
MP4_FreeBox_chpl
,
ATOM_udta
},
{
ATOM_0xa9nam
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9too
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9trk
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_0xa9wrt
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_ilst
},
{
ATOM_covr
,
MP4_ReadBoxContainer
,
MP4_FreeBox_Common
,
ATOM_ilst
},
{
ATOM_gnre
,
MP4_ReadBox_gnre
,
MP4_FreeBox_Common
,
ATOM_ilst
},
{
ATOM_trkn
,
MP4_ReadBox_trkn
,
MP4_FreeBox_Common
,
ATOM_ilst
},
/* udta */
{
ATOM_0xa9ART
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9alb
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9ard
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9arg
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9aut
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9cak
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9cmt
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9con
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9com
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9cpy
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9day
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9des
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9dir
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9dis
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9dsa
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9fmt
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9gen
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9grp
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9hst
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9inf
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9isr
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9lab
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9lal
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9lnt
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9lyr
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9mak
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9mal
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9mod
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9ope
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9phg
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9PRD
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9prd
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9prf
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9pub
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9req
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9sne
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9snm
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9sol
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9src
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9st3
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9swr
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9thx
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9too
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9trk
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9url
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9wrn
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9xpd
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_0xa9xyz
,
MP4_ReadBox_0xa9xxx
,
MP4_FreeBox_0xa9xxx
,
ATOM_udta
},
{
ATOM_chpl
,
MP4_ReadBox_chpl
,
MP4_FreeBox_chpl
,
ATOM_udta
},
{
ATOM_covr
,
MP4_ReadBoxContainer
,
MP4_FreeBox_Common
,
ATOM_udta
},
{
ATOM_gnre
,
MP4_ReadBox_gnre
,
MP4_FreeBox_Common
,
ATOM_udta
},
{
ATOM_name
,
MP4_ReadBox_name
,
MP4_FreeBox_name
,
ATOM_udta
},
{
ATOM_trkn
,
MP4_ReadBox_trkn
,
MP4_FreeBox_Common
,
ATOM_udta
},
/* iTunes/Quicktime meta info */
{
ATOM_meta
,
MP4_ReadBox_meta
,
MP4_FreeBox_Common
,
0
},
{
ATOM_name
,
MP4_ReadBox_name
,
MP4_FreeBox_name
,
0
},
{
ATOM_covr
,
MP4_ReadBoxContainer
,
MP4_FreeBox_Common
,
ATOM_ilst
},
{
ATOM_data
,
MP4_ReadBox_data
,
MP4_FreeBox_data
,
0
},
/* found in smoothstreaming */
...
...
modules/demux/mp4/libmp4.h
View file @
1e913466
...
...
@@ -228,6 +228,9 @@
#define ATOM_0xa9aut VLC_FOURCC( 0xa9, 'a', 'u', 't' )
#define ATOM_0xa9cpy VLC_FOURCC( 0xa9, 'c', 'p', 'y' )
#define ATOM_0xa9inf VLC_FOURCC( 0xa9, 'i', 'n', 'f' )
#define ATOM_0xa9isr VLC_FOURCC( 0xa9, 'i', 's', 'r' )
#define ATOM_0xa9lab VLC_FOURCC( 0xa9, 'l', 'a', 'b' )
#define ATOM_0xa9lal VLC_FOURCC( 0xa9, 'l', 'a', 'l' )
#define ATOM_0xa9ART VLC_FOURCC( 0xa9, 'A', 'R', 'T' )
#define ATOM_0xa9des VLC_FOURCC( 0xa9, 'd', 'e', 's' )
#define ATOM_0xa9dir VLC_FOURCC( 0xa9, 'd', 'i', 'r' )
...
...
@@ -253,6 +256,7 @@
#define ATOM_0xa9wrn VLC_FOURCC( 0xa9, 'w', 'r', 'n' )
#define ATOM_0xa9swr VLC_FOURCC( 0xa9, 's', 'w', 'r' )
#define ATOM_0xa9mak VLC_FOURCC( 0xa9, 'm', 'a', 'k' )
#define ATOM_0xa9mal VLC_FOURCC( 0xa9, 'm', 'a', 'l' )
#define ATOM_0xa9mod VLC_FOURCC( 0xa9, 'm', 'o', 'd' )
#define ATOM_0xa9PRD VLC_FOURCC( 0xa9, 'P', 'R', 'D' )
#define ATOM_0xa9grp VLC_FOURCC( 0xa9, 'g', 'r', 'p' )
...
...
@@ -268,9 +272,11 @@
#define ATOM_0xa9phg VLC_FOURCC( 0xa9, 'p', 'h', 'g' )
#define ATOM_0xa9pub VLC_FOURCC( 0xa9, 'p', 'u', 'b' )
#define ATOM_0xa9sne VLC_FOURCC( 0xa9, 's', 'n', 'e' )
#define ATOM_0xa9snm VLC_FOURCC( 0xa9, 's', 'n', 'm' )
#define ATOM_0xa9sol VLC_FOURCC( 0xa9, 's', 'o', 'l' )
#define ATOM_0xa9thx VLC_FOURCC( 0xa9, 't', 'h', 'x' )
#define ATOM_0xa9xpd VLC_FOURCC( 0xa9, 'x', 'p', 'd' )
#define ATOM_0xa9xyz VLC_FOURCC( 0xa9, 'x', 'y', 'z' )
#define ATOM_chpl VLC_FOURCC( 'c', 'h', 'p', 'l' )
#define ATOM_WLOC VLC_FOURCC( 'W', 'L', 'O', 'C' )
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment