Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
1e7532bb
Commit
1e7532bb
authored
May 18, 2010
by
Jean-Baptiste Kempf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MP4: support for trkn atom
Ref #3630
parent
8cba4462
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
1 deletion
+53
-1
modules/demux/mp4/libmp4.c
modules/demux/mp4/libmp4.c
+36
-0
modules/demux/mp4/libmp4.h
modules/demux/mp4/libmp4.h
+9
-0
modules/demux/mp4/mp4.c
modules/demux/mp4/mp4.c
+8
-1
No files found.
modules/demux/mp4/libmp4.c
View file @
1e7532bb
...
...
@@ -1179,6 +1179,41 @@ static int MP4_ReadBox_gnre( stream_t *p_stream, MP4_Box_t *p_box )
MP4_READBOX_EXIT
(
1
);
}
static
int
MP4_ReadBox_trkn
(
stream_t
*
p_stream
,
MP4_Box_t
*
p_box
)
{
MP4_Box_data_trkn_t
*
p_trkn
;
MP4_READBOX_ENTER
(
MP4_Box_data_trkn_t
);
p_trkn
=
p_box
->
data
.
p_trkn
;
uint32_t
i_data_len
;
uint32_t
i_data_tag
;
MP4_GET4BYTES
(
i_data_len
);
MP4_GETFOURCC
(
i_data_tag
);
if
(
i_data_len
<
12
||
i_data_tag
!=
VLC_FOURCC
(
'd'
,
'a'
,
't'
,
'a'
)
)
MP4_READBOX_EXIT
(
0
);
uint32_t
i_version
;
uint32_t
i_reserved
;
MP4_GET4BYTES
(
i_version
);
MP4_GET4BYTES
(
i_reserved
);
MP4_GET4BYTES
(
p_trkn
->
i_track_number
);
#ifdef MP4_VERBOSE
msg_Dbg
(
p_stream
,
"read box:
\"
trkn
\"
number=%i"
,
p_trkn
->
i_track_number
);
#endif
if
(
i_data_len
>
15
)
{
MP4_GET4BYTES
(
p_trkn
->
i_track_total
);
#ifdef MP4_VERBOSE
msg_Dbg
(
p_stream
,
"read box:
\"
trkn
\"
total=%i"
,
p_trkn
->
i_track_total
);
#endif
}
MP4_READBOX_EXIT
(
1
);
}
static
int
MP4_ReadBox_sample_soun
(
stream_t
*
p_stream
,
MP4_Box_t
*
p_box
)
{
unsigned
int
i
;
...
...
@@ -2599,6 +2634,7 @@ static const struct
{
FOURCC_dac3
,
MP4_ReadBox_dac3
,
MP4_FreeBox_Common
},
{
FOURCC_enda
,
MP4_ReadBox_enda
,
MP4_FreeBox_Common
},
{
FOURCC_gnre
,
MP4_ReadBox_gnre
,
MP4_FreeBox_Common
},
{
FOURCC_trkn
,
MP4_ReadBox_trkn
,
MP4_FreeBox_Common
},
/* Nothing to do with this box */
{
FOURCC_mdat
,
MP4_ReadBoxSkip
,
MP4_FreeBox_Common
},
...
...
modules/demux/mp4/libmp4.h
View file @
1e7532bb
...
...
@@ -122,6 +122,7 @@
#define FOURCC_dec3 VLC_FOURCC( 'd', 'e', 'c', '3' )
#define FOURCC_enda VLC_FOURCC( 'e', 'n', 'd', 'a' )
#define FOURCC_gnre VLC_FOURCC( 'g', 'n', 'r', 'e' )
#define FOURCC_trkn VLC_FOURCC( 't', 'r', 'k', 'n' )
#define FOURCC_zlib VLC_FOURCC( 'z', 'l', 'i', 'b' )
#define FOURCC_SVQ1 VLC_FOURCC( 'S', 'V', 'Q', '1' )
...
...
@@ -886,6 +887,13 @@ typedef struct
}
MP4_Box_data_gnre_t
;
typedef
struct
{
uint32_t
i_track_number
;
uint32_t
i_track_total
;
}
MP4_Box_data_trkn_t
;
/*
typedef struct MP4_Box_data__s
{
...
...
@@ -922,6 +930,7 @@ typedef union MP4_Box_data_s
MP4_Box_data_dac3_t
*
p_dac3
;
MP4_Box_data_enda_t
*
p_enda
;
MP4_Box_data_gnre_t
*
p_gnre
;
MP4_Box_data_trkn_t
*
p_trkn
;
MP4_Box_data_stsz_t
*
p_stsz
;
MP4_Box_data_stz2_t
*
p_stz2
;
...
...
modules/demux/mp4/mp4.c
View file @
1e7532bb
...
...
@@ -916,7 +916,14 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
case
FOURCC_0xa9trk
:
/* Track */
SET
(
vlc_meta_SetTrackNum
);
break
;
case
FOURCC_trkn
:
{
char
psz_trck
[
11
];
snprintf
(
psz_trck
,
sizeof
(
psz_trck
),
"%i"
,
p_0xa9xxx
->
data
.
p_trkn
->
i_track_number
);
vlc_meta_SetTrackNum
(
p_meta
,
psz_trck
);
break
;
}
case
FOURCC_0xa9cmt
:
/* Commment */
SET
(
vlc_meta_SetDescription
);
break
;
...
...
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