vlc/vlc-3.0 | branch: master | Filip Roséen <[email protected]> | Tue Jul 24 14:28:56 2018 +0200| [42df6b34a74cc5d436f43701cd4ecb9f10a0b564] | committer: Jean-Baptiste Kempf
stream_extractor: archive: add archive_skip_decompressed Signed-off-by: Jean-Baptiste Kempf <[email protected]> (cherry picked from commit 732058913798092a5c23811d0c03af5dc33fe56b) Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=42df6b34a74cc5d436f43701cd4ecb9f10a0b564 --- modules/stream_extractor/archive.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/modules/stream_extractor/archive.c b/modules/stream_extractor/archive.c index b58453ab8c..1e4c122e7f 100644 --- a/modules/stream_extractor/archive.c +++ b/modules/stream_extractor/archive.c @@ -577,6 +577,21 @@ static ssize_t Read( stream_extractor_t *p_extractor, void* p_data, size_t i_siz return i_ret; } +static int archive_skip_decompressed( stream_extractor_t* p_extractor, uint64_t i_skip ) +{ + while( i_skip ) + { + ssize_t i_read = Read( p_extractor, NULL, i_skip ); + + if( i_read < 1 ) + return VLC_EGENERIC; + + i_skip -= i_read; + } + + return VLC_SUCCESS; +} + static int Seek( stream_extractor_t* p_extractor, uint64_t i_req ) { private_sys_t* p_sys = p_extractor->p_sys; @@ -618,18 +633,8 @@ static int Seek( stream_extractor_t* p_extractor, uint64_t i_req ) i_offset = 0; } - /* SKIP _DECOMPRESSED_ DATA */ - - while( i_skip ) - { - ssize_t i_read = Read( p_extractor, NULL, i_skip ); - - if( i_read < 1 ) - return VLC_EGENERIC; - - i_offset += i_read; - i_skip -= i_read; - } + if( archive_skip_decompressed( p_extractor, i_skip ) ) + return VLC_EGENERIC; } p_sys->i_offset = i_req; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
