- if( i_startcode == VISUAL_OBJECT_SEQUENCE_START_CODE )
- {
- msg_Dbg( p_pack->p_fifo, "<visuel_object_sequence>" );
- RemoveBits32( &p_pack->bit_stream );
- }
- else if( i_startcode == VISUAL_OBJECT_SEQUENCE_END_CODE )
- {
- msg_Dbg( p_pack->p_fifo, "</visuel_object_sequence>" );
- RemoveBits32( &p_pack->bit_stream );
- }
- else
- {
- msg_Dbg( p_pack->p_fifo, "start code:0x%8.8x", i_startcode );
-
- if( ( i_startcode & ~VIDEO_OBJECT_MASK ) == VIDEO_OBJECT_START_CODE )
- {
- msg_Dbg( p_pack->p_fifo, "<video_object>" );
- CopyUntilNextStartCode( p_pack, p_frame, &p_frame->i_size );
- }
- else if( ( i_startcode & ~VIDEO_OBJECT_LAYER_MASK ) == VIDEO_OBJECT_LAYER_START_CODE )
- {
- /* first: save it */
- if( p_pack->p_vol == NULL )
- {
- p_pack->p_vol = sout_BufferNew( p_sout, 1024 );
- }
- p_pack->p_vol->i_size = 0;
- CopyUntilNextStartCode( p_pack, p_pack->p_vol, &p_pack->p_vol->i_size );
- p_pack->i_vop_since_vol = 0;
-
- /* then: add it to p_frame */
- sout_BufferAddMem( p_sout, p_frame,
- p_pack->p_vol->i_size,
- p_pack->p_vol->p_buffer );
- }
- else if( i_startcode == GROUP_OF_VOP_START_CODE )
- {
- msg_Dbg( p_pack->p_fifo, "<group_of_vop>" );