#define SPLIT_ES_TEXT N_("Separate sub-streams")
#define SPLIT_ES_LONGTEXT N_( \
- "Separate teletex/dvbs pages into independant ES. " \
- "It can be usefull to turn off this option when using stream output." )
+ "Separate teletex/dvbs pages into independent ES. " \
+ "It can be useful to turn off this option when using stream output." )
vlc_module_begin ()
set_description( N_("MPEG Transport Stream demuxer") )
/* If in dump mode, then close the file */
if( p_sys->b_file_out )
{
- msg_Info( p_demux ,"closing %s (%"PRId64" Kbytes dumped)",
+ msg_Info( p_demux ,"closing %s (%"PRId64" KiB dumped)",
p_sys->psz_file, p_sys->i_write / 1024 );
if( p_sys->p_file != stdout )
{
dvbpsi_short_event_dr_t *pE = dvbpsi_DecodeShortEventDr( p_dr );
- if( pE )
+ /* Only take first description, as we don't handle language-info
+ for epg atm*/
+ if( pE && psz_name == NULL)
{
psz_name = EITConvertToUTF8( pE->i_event_name, pE->i_event_name_length,
p_sys->b_broken_charset );
}
#ifdef _DVBPSI_DR_52_H_
- /* FIXME is it usefull ? */
+ /* FIXME is it useful ? */
if( PMTEsFindDescriptor( p_es, 0x52 ) )
{
dvbpsi_descriptor_t *p_dr = PMTEsFindDescriptor( p_es, 0x52 );
break;
}
}
+
+static void PMTSetupEsRegistration( demux_t *p_demux, ts_pid_t *pid,
+ const dvbpsi_pmt_es_t *p_es )
+{
+ static const struct
+ {
+ char psz_tag[5];
+ int i_cat;
+ vlc_fourcc_t i_codec;
+ } p_regs[] = {
+ { "AC-3", AUDIO_ES, VLC_CODEC_A52 },
+ { "DTS1", AUDIO_ES, VLC_CODEC_DTS },
+ { "DTS2", AUDIO_ES, VLC_CODEC_DTS },
+ { "DTS3", AUDIO_ES, VLC_CODEC_DTS },
+ { "BSSD", AUDIO_ES, VLC_CODEC_302M },
+ { "VC-1", VIDEO_ES, VLC_CODEC_VC1 },
+ { "drac", VIDEO_ES, VLC_CODEC_DIRAC },
+ { "", UNKNOWN_ES, 0 }
+ };
+ es_format_t *p_fmt = &pid->es->fmt;
+
+ for( int i = 0; p_regs[i].i_cat != UNKNOWN_ES; i++ )
+ {
+ if( PMTEsHasRegistration( p_demux, p_es, p_regs[i].psz_tag ) )
+ {
+ p_fmt->i_cat = p_regs[i].i_cat;
+ p_fmt->i_codec = p_regs[i].i_codec;
+ break;
+ }
+ }
+}
+
static void PMTParseEsIso639( demux_t *p_demux, ts_pid_t *pid,
const dvbpsi_pmt_es_t *p_es )
{
{
PMTSetupEsHDMV( p_demux, pid, p_es );
}
+ else if( p_es->i_type >= 0x80 )
+ {
+ PMTSetupEsRegistration( p_demux, pid, p_es );
+ }
if( pid->es->fmt.i_cat == AUDIO_ES ||
( pid->es->fmt.i_cat == SPU_ES &&