Commit 21659d69 authored by Laurent Aimar's avatar Laurent Aimar

Removed vlc_object_find() in svcdsub.

I don't understand why the test would be needed, you do receive data
only if the ES is selected.
parent 7074dbe1
...@@ -259,43 +259,21 @@ static block_t *Reassemble( decoder_t *p_dec, block_t *p_block ) ...@@ -259,43 +259,21 @@ static block_t *Reassemble( decoder_t *p_dec, block_t *p_block )
uint16_t i_expected_image; uint16_t i_expected_image;
uint8_t i_packet, i_expected_packet; uint8_t i_packet, i_expected_packet;
if( p_block->i_buffer < SPU_HEADER_LEN ) if( p_block->i_flags & (BLOCK_FLAG_DISCONTINUITY|BLOCK_FLAG_CORRUPTED) )
{ {
msg_Dbg( p_dec, "invalid packet header (size %zu < %u)" ,
p_block->i_buffer, SPU_HEADER_LEN );
block_Release( p_block ); block_Release( p_block );
return NULL; return NULL;
} }
p_buffer = p_block->p_buffer; if( p_block->i_buffer < SPU_HEADER_LEN )
/* Attach to our input thread and see if subtitle is selected. */
{
vlc_object_t * p_input;
vlc_value_t val;
p_input = vlc_object_find( p_dec, VLC_OBJECT_INPUT, FIND_PARENT );
if( !p_input ) return NULL;
if( var_Get( p_input, "sub-track", &val ) )
{ {
vlc_object_release( p_input ); msg_Dbg( p_dec, "invalid packet header (size %zu < %u)" ,
p_block->i_buffer, SPU_HEADER_LEN );
block_Release( p_block );
return NULL; return NULL;
} }
vlc_object_release( p_input ); p_buffer = p_block->p_buffer;
dbg_print( (DECODE_DBG_PACKET),
"val.i_int %x p_buffer[i] %x", val.i_int, p_buffer[1]);
/* The dummy ES that the menu selection uses has an 0x70 at
the head which we need to strip off. */
if( val.i_int == -1 || (val.i_int & 0x03) != p_buffer[1] )
{
dbg_print( DECODE_DBG_PACKET, "subtitle not for us.\n");
return NULL;
}
}
if( p_sys->i_state == SUBTITLE_BLOCK_EMPTY ) if( p_sys->i_state == SUBTITLE_BLOCK_EMPTY )
{ {
...@@ -308,6 +286,8 @@ static block_t *Reassemble( decoder_t *p_dec, block_t *p_block ) ...@@ -308,6 +286,8 @@ static block_t *Reassemble( decoder_t *p_dec, block_t *p_block )
i_expected_packet = p_sys->i_packet + 1; i_expected_packet = p_sys->i_packet + 1;
} }
/* The dummy ES that the menu selection uses has an 0x70 at
the head which we need to strip off. */
p_buffer += 2; p_buffer += 2;
if( *p_buffer & 0x80 ) if( *p_buffer & 0x80 )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment