return psz_outstring;
}
-static void EITCallBack( demux_t *p_demux, dvbpsi_eit_t *p_eit )
+static void EITCallBack( demux_t *p_demux,
+ dvbpsi_eit_t *p_eit, bool b_current_following )
{
demux_sys_t *p_sys = p_demux->p_sys;
dvbpsi_eit_event_t *p_evt;
}
if( p_epg->i_event > 0 )
{
- if( p_eit->i_service_id == p_sys->i_current_program )
+ if( p_eit->i_service_id == p_sys->i_current_program && b_current_following )
{
p_sys->i_dvb_length = 0;
p_sys->i_dvb_start = 0;
dvbpsi_DeleteEIT( p_eit );
}
+static void EITCallBackCurrentFollowing( demux_t *p_demux, dvbpsi_eit_t *p_eit )
+{
+ EITCallBack( p_demux, p_eit, true );
+}
+static void EITCallBackSchedule( demux_t *p_demux, dvbpsi_eit_t *p_eit )
+{
+ EITCallBack( p_demux, p_eit, false );
+}
static void PSINewTableCallBack( demux_t *p_demux, dvbpsi_handle h,
uint8_t i_table_id, uint16_t i_extension )
msg_Dbg( p_demux, "PSINewTableCallBack: table 0x%x(%d) ext=0x%x(%d)",
i_table_id, i_table_id, i_extension, i_extension );
- dvbpsi_AttachEIT( h, i_table_id, i_extension,
- (dvbpsi_eit_callback)EITCallBack, p_demux );
+ dvbpsi_eit_callback cb = i_table_id == 0x4e ?
+ (dvbpsi_eit_callback)EITCallBackCurrentFollowing :
+ (dvbpsi_eit_callback)EITCallBackSchedule;
+ dvbpsi_AttachEIT( h, i_table_id, i_extension, cb, p_demux );
}
}
#endif
case 0x11: /* ... on 4:3 AR monitor */
case 0x12: /* ... on 16:9 AR monitor */
case 0x13: /* ... on 2.21:1 AR monitor */
+ case 0x14: /* ... for display on a high definition monitor */
case 0x20: /* DVB Subtitle (impaired) with no monitor AR critical */
case 0x21: /* ... on 4:3 AR monitor */
case 0x22: /* ... on 16:9 AR monitor */
case 0x23: /* ... on 2.21:1 AR monitor */
+ case 0x24: /* ... for display on a high definition monitor */
PMTSetupEsDvbSubtitle( p_demux, pid, p_es );
break;
default:
- msg_Err( p_demux, "Unrecognized DVB subtitle type" );
+ msg_Err( p_demux, "Unrecognized DVB subtitle type (0x%x)",
+ p_sub->p_subtitle[i].i_subtitling_type );
break;
}
}
case 0x83: /* TrueHD AC3 */
p_fmt->i_cat = AUDIO_ES;
- p_fmt->i_codec = VLC_CODEC_MLP;
+ p_fmt->i_codec = VLC_CODEC_TRUEHD;
break;
case 0x84: /* E-AC3 */
}
else if( p_dr->i_tag == 0x05 )
{
- if( p_dr->i_tag == 0x05 )
+ /* Registration Descriptor */
+ if( p_dr->i_length != 4 )
{
- /* Registration Descriptor */
- if( p_dr->i_length != 4 )
- {
- msg_Warn( p_demux, "invalid Registration Descriptor" );
- }
- else
+ msg_Warn( p_demux, "invalid Registration Descriptor" );
+ }
+ else
+ {
+ msg_Dbg( p_demux, " * descriptor : registration %4.4s", p_dr->p_data );
+ if( !memcmp( p_dr->p_data, "HDMV", 4 ) )
{
- msg_Dbg( p_demux, " * descriptor : registration %4.4s", p_dr->p_data );
- if( !memcmp( p_dr->p_data, "HDMV", 4 ) )
- {
- /* Blu-Ray */
- b_hdmv = true;
- }
+ /* Blu-Ray */
+ b_hdmv = true;
}
}
}