vlc | branch: master | Francois Cartegnie <[email protected]> | Mon Mar 11 12:24:35 2019 +0100| [516246a4bc518386c56854b90aa2a2db3522c8a0] | committer: Francois Cartegnie
packetizer: dts: handle substream in a dedicated state > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=516246a4bc518386c56854b90aa2a2db3522c8a0 --- modules/packetizer/dts.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/modules/packetizer/dts.c b/modules/packetizer/dts.c index c4204a6e31..3d557b2589 100644 --- a/modules/packetizer/dts.c +++ b/modules/packetizer/dts.c @@ -72,6 +72,11 @@ typedef struct size_t i_input_size; } decoder_sys_t; +enum +{ + STATE_SYNC_SUBSTREAM_EXTENSIONS = STATE_CUSTOM_FIRST, +}; + static void PacketizeFlush( decoder_t *p_dec ) { decoder_sys_t *p_sys = p_dec->p_sys; @@ -209,6 +214,13 @@ static block_t *PacketizeBlock( decoder_t *p_dec, block_t **pp_block ) } if( p_sys->dts.syncword == DTS_SYNC_SUBSTREAM ) + p_sys->i_state = STATE_SYNC_SUBSTREAM_EXTENSIONS; + else + p_sys->i_state = STATE_NEXT_SYNC; + p_sys->i_input_size = p_sys->i_next_offset = p_sys->dts.i_frame_size; + break; + + case STATE_SYNC_SUBSTREAM_EXTENSIONS: { msg_Warn( p_dec, "substream without the paired core stream, " "skip it" ); @@ -216,12 +228,8 @@ static block_t *PacketizeBlock( decoder_t *p_dec, block_t **pp_block ) if( block_SkipBytes( &p_sys->bytestream, p_sys->dts.i_frame_size ) != VLC_SUCCESS ) return NULL; - break; } - - p_sys->i_input_size = p_sys->i_next_offset = p_sys->dts.i_frame_size; - p_sys->i_state = STATE_NEXT_SYNC; - /* fallthrough */ + break; case STATE_NEXT_SYNC: /* Check if next expected frame contains the sync word */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
