[vlc-commits] packetizer: dts: handle substream in a dedicated state
Francois Cartegnie
git at videolan.org
Mon Mar 11 19:39:13 CET 2019
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | 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 */
More information about the vlc-commits
mailing list