]> git.sesse.net Git - vlc/commitdiff
* modules/demux/ps.[c,h]: fixed PSM parsing bug.
authorGildas Bazin <gbazin@videolan.org>
Wed, 9 Mar 2005 12:39:36 +0000 (12:39 +0000)
committerGildas Bazin <gbazin@videolan.org>
Wed, 9 Mar 2005 12:39:36 +0000 (12:39 +0000)
modules/demux/ps.c
modules/demux/ps.h

index c069c0f7042e03fa3c5a4226ca9561c3d6103a18..cab2f847a9cb188d412ba719cabd81d5df49b5d4 100644 (file)
@@ -220,7 +220,9 @@ static int Demux( demux_t *p_demux )
         break;
 
     case 0x1bc:
-        /* msg_Dbg( p_demux, "received PSM"); */
+        if( p_sys->psm.i_version == 0xFFFF )
+            msg_Dbg( p_demux, "contains a PSM");
+
         ps_psm_fill( &p_sys->psm, p_pkt, p_sys->tk, p_demux->out );
         block_Release( p_pkt );
         break;
@@ -236,6 +238,10 @@ static int Demux( demux_t *p_demux )
                 {
                     tk->es = es_out_Add( p_demux->out, &tk->fmt );
                 }
+                else
+                {
+                    msg_Dbg( p_demux, "es id=0x%x format unknown", i_id );
+                }
                 tk->b_seen = VLC_TRUE;
             }
 
@@ -416,7 +422,7 @@ static block_t *ps_pkt_read( stream_t *s, uint32_t i_code )
     else
     {
         /* Normal case */
-        return  stream_Block( s, i_size );
+        return stream_Block( s, i_size );
     }
 
     return NULL;
index de090400b68e4e34bef3287fbaabd7c46e0871fc..2dd5b71fb90e00f5979a3b5aa32f6683231e32cf 100644 (file)
@@ -430,7 +430,7 @@ static inline int ps_psm_fill( ps_psm_t *p_psm, block_t *p_pkt,
 
     if( !p_psm || p_buffer[3] != 0xbc ) return VLC_EGENERIC;
 
-    i_length = (uint16_t)(p_buffer[4] << 8) + p_buffer[5];
+    i_length = (uint16_t)(p_buffer[4] << 8) + p_buffer[5] + 6;
     if( i_length > i_buffer ) return VLC_EGENERIC;
 
     //i_current_next_indicator = (p_buffer[6] && 0x01);