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
245aa586
Commit
245aa586
authored
Aug 25, 2011
by
Jean-Baptiste Kempf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mp4: support iods atom
parent
5a363831
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
50 additions
and
0 deletions
+50
-0
modules/demux/mp4/libmp4.c
modules/demux/mp4/libmp4.c
+35
-0
modules/demux/mp4/libmp4.h
modules/demux/mp4/libmp4.h
+15
-0
No files found.
modules/demux/mp4/libmp4.c
View file @
245aa586
...
...
@@ -2648,6 +2648,40 @@ static int MP4_ReadBox_meta( stream_t *p_stream, MP4_Box_t *p_box )
return
MP4_ReadBoxContainerRaw
(
p_stream
,
p_box
);
}
static
int
MP4_ReadBox_iods
(
stream_t
*
p_stream
,
MP4_Box_t
*
p_box
)
{
char
i_unused
;
MP4_READBOX_ENTER
(
MP4_Box_data_iods_t
);
MP4_GETVERSIONFLAGS
(
p_box
->
data
.
p_iods
);
MP4_GET1BYTE
(
i_unused
);
/* tag */
MP4_GET1BYTE
(
i_unused
);
/* length */
MP4_GET2BYTES
(
p_box
->
data
.
p_iods
->
i_object_descriptor
);
/* 10bits, 6 other bits
are used for other flags */
MP4_GET1BYTE
(
p_box
->
data
.
p_iods
->
i_OD_profile_level
);
MP4_GET1BYTE
(
p_box
->
data
.
p_iods
->
i_scene_profile_level
);
MP4_GET1BYTE
(
p_box
->
data
.
p_iods
->
i_audio_profile_level
);
MP4_GET1BYTE
(
p_box
->
data
.
p_iods
->
i_visual_profile_level
);
MP4_GET1BYTE
(
p_box
->
data
.
p_iods
->
i_graphics_profile_level
);
#ifdef MP4_VERBOSE
msg_Dbg
(
p_stream
,
"read box:
\"
iods
\"
objectDescriptorId: %i, OD: %i, scene: %i, audio: %i, "
"visual: %i, graphics: %i"
,
p_box
->
data
.
p_iods
->
i_object_descriptor
>>
6
,
p_box
->
data
.
p_iods
->
i_OD_profile_level
,
p_box
->
data
.
p_iods
->
i_scene_profile_level
,
p_box
->
data
.
p_iods
->
i_audio_profile_level
,
p_box
->
data
.
p_iods
->
i_visual_profile_level
,
p_box
->
data
.
p_iods
->
i_graphics_profile_level
);
#endif
MP4_READBOX_EXIT
(
1
);
}
/* For generic */
static
int
MP4_ReadBox_default
(
stream_t
*
p_stream
,
MP4_Box_t
*
p_box
)
{
...
...
@@ -2760,6 +2794,7 @@ static const struct
{
FOURCC_enda
,
MP4_ReadBox_enda
,
MP4_FreeBox_Common
},
{
FOURCC_gnre
,
MP4_ReadBox_gnre
,
MP4_FreeBox_Common
},
{
FOURCC_trkn
,
MP4_ReadBox_trkn
,
MP4_FreeBox_Common
},
{
FOURCC_iods
,
MP4_ReadBox_iods
,
MP4_FreeBox_Common
},
/* Nothing to do with this box */
{
FOURCC_mdat
,
MP4_ReadBoxSkip
,
MP4_FreeBox_Common
},
...
...
modules/demux/mp4/libmp4.h
View file @
245aa586
...
...
@@ -958,6 +958,20 @@ typedef struct
}
MP4_Box_data_trkn_t
;
typedef
struct
{
uint8_t
i_version
;
uint32_t
i_flags
;
uint16_t
i_object_descriptor
;
uint8_t
i_OD_profile_level
;
uint8_t
i_scene_profile_level
;
uint8_t
i_audio_profile_level
;
uint8_t
i_visual_profile_level
;
uint8_t
i_graphics_profile_level
;
}
MP4_Box_data_iods_t
;
/*
typedef struct MP4_Box_data__s
{
...
...
@@ -998,6 +1012,7 @@ typedef union MP4_Box_data_s
MP4_Box_data_enda_t
*
p_enda
;
MP4_Box_data_gnre_t
*
p_gnre
;
MP4_Box_data_trkn_t
*
p_trkn
;
MP4_Box_data_iods_t
*
p_iods
;
MP4_Box_data_stsz_t
*
p_stsz
;
MP4_Box_data_stz2_t
*
p_stz2
;
...
...
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