vlc | branch: master | Francois Cartegnie <[email protected]> | Sun Oct 19 18:28:09 2014 +0200| [a8d12d85e811f3dc2e46809bcbc41ade25d9679f] | committer: Francois Cartegnie
demux: libmp4: add binary generic atom > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a8d12d85e811f3dc2e46809bcbc41ade25d9679f --- modules/demux/mp4/libmp4.c | 22 ++++++++++++++++++++++ modules/demux/mp4/libmp4.h | 7 +++++++ 2 files changed, 29 insertions(+) diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c index 1594757..802a348 100644 --- a/modules/demux/mp4/libmp4.c +++ b/modules/demux/mp4/libmp4.c @@ -2858,6 +2858,28 @@ static void MP4_FreeBox_String( MP4_Box_t *p_box ) FREENULL( p_box->data.p_string->psz_text ); } +static int MP4_ReadBox_Binary( stream_t *p_stream, MP4_Box_t *p_box ) +{ + MP4_READBOX_ENTER( MP4_Box_data_binary_t ); + i_read = __MIN( i_read, UINT32_MAX ); + if ( i_read > 0 ) + { + p_box->data.p_binary->p_blob = malloc( i_read ); + if ( p_box->data.p_binary->p_blob ) + { + memcpy( p_box->data.p_binary->p_blob, p_peek, i_read ); + p_box->data.p_binary->i_blob = i_read; + } + } + MP4_READBOX_EXIT( 1 ); +} + +static void MP4_FreeBox_Binary( MP4_Box_t *p_box ) +{ + FREENULL( p_box->data.p_binary->p_blob ); + p_box->data.p_binary->i_blob = 0; +} + static int MP4_ReadBox_data( stream_t *p_stream, MP4_Box_t *p_box ) { MP4_READBOX_ENTER( MP4_Box_data_data_t ); diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h index 1dc52b5..efd3774 100644 --- a/modules/demux/mp4/libmp4.h +++ b/modules/demux/mp4/libmp4.h @@ -1028,6 +1028,12 @@ typedef struct typedef struct { + uint8_t *p_blob; + uint32_t i_blob; +} MP4_Box_data_binary_t; + +typedef struct +{ uint32_t i_entry_count; uint32_t *i_track_ID; @@ -1435,6 +1441,7 @@ typedef union MP4_Box_data_s /* for generic handlers */ MP4_Box_data_string_t *p_string; + MP4_Box_data_binary_t *p_binary; MP4_Box_data_data_t *p_data; void *p_payload; /* for unknow type */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
