vlc | branch: master | Francois Cartegnie <[email protected]> | Sun Oct 5 20:46:51 2014 +0200| [f103d3834d30d37f7c3c8cc2c968b4b1f7af09c6] | committer: Francois Cartegnie
demux: libmp4: handle ASF atom > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f103d3834d30d37f7c3c8cc2c968b4b1f7af09c6 --- modules/demux/mp4/libmp4.c | 17 +++++++++++++++++ modules/demux/mp4/libmp4.h | 7 +++++++ 2 files changed, 24 insertions(+) diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c index 87a1654..8e8a9ca 100644 --- a/modules/demux/mp4/libmp4.c +++ b/modules/demux/mp4/libmp4.c @@ -1539,6 +1539,21 @@ static void MP4_FreeBox_strf( MP4_Box_t *p_box ) FREENULL( p_box->data.p_strf->p_extra ); } +static int MP4_ReadBox_ASF( stream_t *p_stream, MP4_Box_t *p_box ) +{ + MP4_READBOX_ENTER( MP4_Box_data_ASF_t ); + + MP4_Box_data_ASF_t *p_asf = p_box->data.p_asf; + + if (i_read != 8) + MP4_READBOX_EXIT( 0 ); + + MP4_GET1BYTE( p_asf->i_stream_number ); + /* remaining is unknown */ + + MP4_READBOX_EXIT( 1 ); +} + static int MP4_ReadBox_stsdext_chan( stream_t *p_stream, MP4_Box_t *p_box ) { MP4_READBOX_ENTER( MP4_Box_data_chan_t ); @@ -3607,6 +3622,8 @@ static const struct { ATOM_yuv2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide, 0 }, { ATOM_strf, MP4_ReadBox_strf, MP4_FreeBox_strf, ATOM_WMV3 }, /* flip4mac */ + { ATOM_ASF , MP4_ReadBox_ASF, MP4_FreeBox_Common, ATOM_WMV3 }, /* flip4mac */ + { ATOM_ASF , MP4_ReadBox_ASF, MP4_FreeBox_Common, ATOM_wave }, /* flip4mac */ { ATOM_mp4s, MP4_ReadBox_sample_mp4s, MP4_FreeBox_Common, 0 }, diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h index bc1c0de..d3ee338 100644 --- a/modules/demux/mp4/libmp4.h +++ b/modules/demux/mp4/libmp4.h @@ -214,6 +214,7 @@ #define ATOM_drmi VLC_FOURCC( 'd', 'r', 'm', 'i' ) #define ATOM_frma VLC_FOURCC( 'f', 'r', 'm', 'a' ) #define ATOM_skcr VLC_FOURCC( 's', 'k', 'c', 'r' ) +#define ATOM_ASF VLC_FOURCC( 'A', 'S', 'F', ' ' ) #define ATOM_text VLC_FOURCC( 't', 'e', 'x', 't' ) #define ATOM_tx3g VLC_FOURCC( 't', 'x', '3', 'g' ) @@ -1061,6 +1062,11 @@ typedef struct char *p_extra; } MP4_Box_data_strf_t; +typedef struct +{ + uint8_t i_stream_number; +} MP4_Box_data_ASF_t; + /* According to Apple's CoreAudio/CoreAudioTypes.h */ #define MP4_CHAN_USE_CHANNELS_DESC 0 #define MP4_CHAN_USE_CHANNELS_BITMAP (1<<16) @@ -1380,6 +1386,7 @@ typedef union MP4_Box_data_s MP4_Box_data_hvcC_t *p_hvcC; MP4_Box_data_WMA2_t *p_WMA2; /* flip4mac Little endian audio config */ MP4_Box_data_strf_t *p_strf; /* flip4mac Little endian video config */ + MP4_Box_data_ASF_t *p_asf; /* flip4mac asf streams indicator */ MP4_Box_data_data_t *p_data; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
