vlc | branch: master | Francois Cartegnie <[email protected]> | Mon May 8 17:33:40 2017 +0200| [178e6d95ac5ed4eab6a5b973d452a1b583fc7f65] | committer: Francois Cartegnie
demux: libmp4: expose MP4_seek > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=178e6d95ac5ed4eab6a5b973d452a1b583fc7f65 --- modules/demux/mp4/libmp4.c | 9 +++++---- modules/demux/mp4/libmp4.h | 5 +++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c index dfc6072389..f61d4c4496 100644 --- a/modules/demux/mp4/libmp4.c +++ b/modules/demux/mp4/libmp4.c @@ -77,7 +77,7 @@ static int MP4_Box_Read_Specific( stream_t *p_stream, MP4_Box_t *p_box, MP4_Box_ static void MP4_Box_Clean_Specific( MP4_Box_t *p_box ); static int MP4_PeekBoxHeader( stream_t *p_stream, MP4_Box_t *p_box ); -static int MP4_Seek( stream_t *p_stream, uint64_t i_pos ) +int MP4_Seek( stream_t *p_stream, uint64_t i_pos ) { /* Prevent prefetch breakage */ uint64_t i_size = stream_Size( p_stream ); @@ -102,9 +102,10 @@ static int MP4_Seek( stream_t *p_stream, uint64_t i_pos ) return VLC_SUCCESS; else if( i_toread > (1<<17) ) return VLC_EGENERIC; - else - return vlc_stream_Read( p_stream, NULL, - i_toread ) != (ssize_t)i_toread; + + if( vlc_stream_Read( p_stream, NULL, i_toread ) != (ssize_t)i_toread ) + return VLC_EGENERIC; + return VLC_SUCCESS; } static void MP4_BoxAddChild( MP4_Box_t *p_parent, MP4_Box_t *p_childbox ) diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h index 77cccbd8ee..ad2c373132 100644 --- a/modules/demux/mp4/libmp4.h +++ b/modules/demux/mp4/libmp4.h @@ -1869,6 +1869,11 @@ static const UUID_t XML360BoxUUID = { 0x88, 0x14, 0x58, 0x7a, 0x02, 0x52, 0x1f, 0xdd } }; /***************************************************************************** + * MP4_Seek : non seekable stream safe seek + ****************************************************************************/ +int MP4_Seek( stream_t *p_stream, uint64_t i_pos ); + +/***************************************************************************** * MP4_BoxGetNextChunk : Parse the entire moof box. ***************************************************************************** * The first box is a virtual box "root" and is the father of the boxes _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
