]> git.sesse.net Git - vlc/blobdiff - modules/demux/mp4/libmp4.h
mp4: support iods atom
[vlc] / modules / demux / mp4 / libmp4.h
index 86715b7e0fd97ff8d9856090163756115d227d51..902e6a40990e2e45bdcbfb9f58074f1538e0f49e 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
+
 #ifndef _VLC_MP4_H
 #define _VLC_MP4_H 1
 
-
 #define FOURCC_uuid VLC_FOURCC( 'u', 'u', 'i', 'd' )
 
 #define FOURCC_ftyp VLC_FOURCC( 'f', 't', 'y', 'p' )
@@ -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;
@@ -1082,7 +1097,6 @@ void MP4_BoxFree( stream_t *, MP4_Box_t *p_box );
  *****************************************************************************/
 void MP4_BoxDumpStructure( stream_t *p_input, MP4_Box_t *p_box );
 
-
 /*****************************************************************************
  * MP4_BoxGet: find a box given a path relative to p_box
  *****************************************************************************
@@ -1105,6 +1119,7 @@ MP4_Box_t *MP4_BoxGet( MP4_Box_t *p_box, const char *psz_fmt, ... );
  *****************************************************************************/
 int MP4_BoxCount( MP4_Box_t *p_box, const char *psz_fmt, ... );
 
+/* Internal functions exposed for MKV demux */
 int MP4_ReadBoxCommon( stream_t *p_stream, MP4_Box_t *p_box );
 int MP4_ReadBox_sample_vide( stream_t *p_stream, MP4_Box_t *p_box );
 void MP4_FreeBox_sample_vide( MP4_Box_t *p_box );