[dvblast-devel] [PATCH] Preserve original TS_id

Marian Ďurkovič md at bts.sk
Thu Sep 10 09:07:23 CEST 2009


Hi,

  the attached patch changes DVBlast to preserve the original TS_id value
as seen on the DVB source. Multiple DVB feeds transmit broken EPG not
conformant to ETSI EN 300 468 Annex A, and with some broadcasters the only
chance to identify such source is by checking the TS_id (unless we want to
put all channel names into the source). All those feeds seem to be using
MediaHighway plaform from NDS.


   With kind regards,

       M.
-------------- next part --------------
Index: demux.c
===================================================================
--- demux.c	(revision 17)
+++ demux.c	(working copy)
@@ -733,8 +733,6 @@
     {
         if ( pp_outputs[i]->i_maddr && pp_outputs[i]->i_sid == i_sid )
         {
-            p_section->p_data[8]  = (i_sid >> 8) & 0xff;
-            p_section->p_data[9]  = i_sid & 0xff;
             p_section->p_data[13] = pp_outputs[i]->i_eit_last_table_id;
             dvbpsi_BuildPSISection( p_section );
 
@@ -785,7 +783,7 @@
         return;
     }
 
-    dvbpsi_InitPAT( &pat, p_output->i_sid, p_output->i_pat_version, 1 );
+    dvbpsi_InitPAT( &pat, p_current_pat->i_ts_id, p_output->i_pat_version, 1 );
     dvbpsi_PATAddProgram( &pat, p_output->i_sid, p_program->i_pid );
 
     p_output->p_pat_section = dvbpsi_GenPATSections( &pat, 0 );
@@ -1282,7 +1280,7 @@
             {
                 p_new_sdt = malloc(sizeof(dvbpsi_sdt_t));
 
-                dvbpsi_InitSDT( p_new_sdt, p_service->i_service_id,
+                dvbpsi_InitSDT( p_new_sdt, p_sdt->i_ts_id,
                                 p_sdt->i_version, p_sdt->b_current_next,
                                 p_sdt->i_network_id );
                 p_new_service = dvbpsi_SDTAddService( p_new_sdt,


More information about the dvblast-devel mailing list