changeset 24474:1754f9ab919e

Get rid of more code duplication
author reimar
date Fri, 14 Sep 2007 19:13:47 +0000
parents f8971c9855a3
children 7e10a426b257
files libmpdemux/demux_ty.c
diffstat 1 files changed, 6 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/demux_ty.c	Fri Sep 14 19:07:50 2007 +0000
+++ b/libmpdemux/demux_ty.c	Fri Sep 14 19:13:47 2007 +0000
@@ -447,7 +447,6 @@
    int              esOffset1;
    int              esOffset2;
 
-   unsigned char    lastCC[ 16 ];
    unsigned char    lastXDS[ 16 ];
 
    TiVoInfo         *tivo = demux->priv;
@@ -878,44 +877,16 @@
 				errorHeader++;
 		}
       // ================================================================
-      // Closed Caption
+      // 1 = Closed Caption
+      // 2 = Extended Data Services
       // ================================================================
-      else if ( type == 0x01 )
+		else if ( type == 0x01 || type == 0x02 )
 		{
-			unsigned char b1;
-			unsigned char b2;
-
-			b1 = ( ( ( recPtr[ 0 ] & 0x0f ) << 4 ) | 
-				( ( recPtr[ 1 ] & 0xf0 ) >> 4 ) );
-			b1 &= 0x7f;
-			b2 = ( ( ( recPtr[ 1 ] & 0x0f ) << 4 ) | 
-				( ( recPtr[ 2 ] & 0xf0 ) >> 4 ) );
-			b2 &= 0x7f;
-
-			mp_msg( MSGT_DEMUX, MSGL_DBG3, "ty:CC %x %x\n", b1, b2 );
-
-			lastCC[ 0x00 ] = 0x00;
-			lastCC[ 0x01 ] = 0x00;
-			lastCC[ 0x02 ] = 0x01;
-			lastCC[ 0x03 ] = 0xb2;
-			lastCC[ 0x04 ] = 'T';
-			lastCC[ 0x05 ] = 'Y';
-			lastCC[ 0x06 ] = 0x01;
-			lastCC[ 0x07 ] = b1;
-			lastCC[ 0x08 ] = b2;
-         if ( subcc_enabled )
-			   demux_ty_CopyToDemuxPacket( TY_V, tivo, demux->video, lastCC, 0x09,
-  				   ( demux->filepos + offset ), tivo->lastVideoPTS );
-		}
-      // ================================================================
-      // Extended Data Services
-      // ================================================================
-		else if ( type == 0x02 )
-		{
+                        unsigned char lastXDS[ 16 ];
 			int b = AV_RB24(recPtr) >> 4;
 			b &= 0x7f7f;
 
-         mp_msg( MSGT_DEMUX, MSGL_DBG3, "ty:XDS %04x\n", b);
+         mp_msg( MSGT_DEMUX, MSGL_DBG3, "ty:%s %04x\n", type == 1 ? "CC" : "XDS", b);
 
 			lastXDS[ 0x00 ] = 0x00;
 			lastXDS[ 0x01 ] = 0x00;
@@ -923,7 +894,7 @@
 			lastXDS[ 0x03 ] = 0xb2;
 			lastXDS[ 0x04 ] = 'T';
 			lastXDS[ 0x05 ] = 'Y';
-			lastXDS[ 0x06 ] = 0x02;
+			lastXDS[ 0x06 ] = type;
 			lastXDS[ 0x07 ] = b >> 8;
 			lastXDS[ 0x08 ] = b;
          if ( subcc_enabled )