vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Jul 8 13:16:08 2017 +0300| [bc3a2932a8bf8d5dc720fb6c5d0f232911229afd] | committer: Rémi Denis-Courmont
demux: remove old tag-skipping kludge This becomes redundant with the skiptags stream filter. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bc3a2932a8bf8d5dc720fb6c5d0f232911229afd --- src/input/demux.c | 77 ------------------------------------------------------- 1 file changed, 77 deletions(-) diff --git a/src/input/demux.c b/src/input/demux.c index ea1211c591..83d8b67eea 100644 --- a/src/input/demux.c +++ b/src/input/demux.c @@ -36,9 +36,6 @@ #include <vlc_modules.h> #include <vlc_strings.h> -static bool SkipID3Tag( demux_t * ); -static bool SkipAPETag( demux_t *p_demux ); - typedef const struct { char const key[20]; @@ -248,13 +245,6 @@ demux_t *demux_NewAdvanced( vlc_object_t *p_obj, input_thread_t *p_parent_input, if( psz_module == NULL ) psz_module = p_demux->psz_demux; - /* ID3/APE tags will mess-up demuxer probing so we skip it here. - * ID3/APE parsers will called later on in the demuxer to access the - * skipped info. */ - while (SkipID3Tag( p_demux )) - ; - SkipAPETag( p_demux ); - p_demux->p_module = module_need( p_demux, "demux", psz_module, !strcmp( psz_module, p_demux->psz_demux ) ); @@ -539,73 +529,6 @@ void demux_PacketizerDestroy( decoder_t *p_packetizer ) vlc_object_release( p_packetizer ); } -static bool SkipID3Tag( demux_t *p_demux ) -{ - const uint8_t *p_peek; - uint8_t version, revision; - int i_size; - int b_footer; - - if( !p_demux->s ) - return false; - - /* Get 10 byte id3 header */ - if( vlc_stream_Peek( p_demux->s, &p_peek, 10 ) < 10 ) - return false; - - if( memcmp( p_peek, "ID3", 3 ) ) - return false; - - version = p_peek[3]; - revision = p_peek[4]; - b_footer = p_peek[5] & 0x10; - i_size = (p_peek[6]<<21) + (p_peek[7]<<14) + (p_peek[8]<<7) + p_peek[9]; - - if( b_footer ) i_size += 10; - i_size += 10; - - /* Skip the entire tag */ - if( vlc_stream_Read( p_demux->s, NULL, i_size ) < i_size ) - return false; - - msg_Dbg( p_demux, "ID3v2.%d revision %d tag found, skipping %d bytes", - version, revision, i_size ); - return true; -} -static bool SkipAPETag( demux_t *p_demux ) -{ - const uint8_t *p_peek; - - if( !p_demux->s ) - return false; - - /* Get 32 byte ape header */ - if( vlc_stream_Peek( p_demux->s, &p_peek, 32 ) < 32 ) - return false; - - if( memcmp( p_peek, "APETAGEX", 8 ) ) - return false; - - uint_fast32_t version = GetDWLE( &p_peek[8] ); - uint_fast32_t size = GetDWLE( &p_peek[8+4] ); - uint_fast32_t flags = GetDWLE( &p_peek[8+4+4] ); - - if( (version != 1000 && version != 2000) || !(flags & (1u << 29)) - || (size > SSIZE_MAX - 32u) ) - return false; - - if( flags & (1u << 30) ) - size += 32; - - /* Skip the entire tag */ - if( vlc_stream_Read( p_demux->s, NULL, size ) < (ssize_t)size ) - return false; - - msg_Dbg( p_demux, "AP2 v%"PRIuFAST32" tag found, " - "skipping %"PRIuFAST32" bytes", version / 1000, size ); - return true; -} - unsigned demux_TestAndClearFlags( demux_t *p_demux, unsigned flags ) { unsigned update = flags; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
