/*****************************************************************************
* Local prototypes
*****************************************************************************/
+static const char *const ppsz_teletext_type[] = {
+ "",
+ N_("Teletext"),
+ N_("Teletext subtitles"),
+ N_("Teletext additional information"),
+ N_("Teletext programme schedule"),
+ N_("Teletext hearing impaired subtitles")
+};
typedef struct
{
/* */
bool b_meta;
+
+ /* */
+ bool b_start_record;
};
static int Demux ( demux_t *p_demux );
p_sys->b_udp_out = false;
p_sys->i_ts_read = 50;
p_sys->csa = NULL;
+ p_sys->b_start_record = false;
/* Init PAT handler */
pat = &p_sys->pid[0];
}
}
+ if( p_sys->b_start_record )
+ {
+ /* Enable recording once synchronized */
+ stream_Control( p_demux->s, STREAM_SET_RECORD_STATE, true, "ts" );
+ p_sys->b_start_record = false;
+ }
+
if( p_sys->b_udp_out )
{
memcpy( &p_sys->buffer[i_pkt * p_sys->i_packet_size],
{
demux_sys_t *p_sys = p_demux->p_sys;
double f, *pf;
+ bool b_bool, *pb_bool;
int64_t i64;
int64_t *pi64;
int i_int;
return VLC_SUCCESS;
}
+ case DEMUX_CAN_RECORD:
+ pb_bool = (bool*)va_arg( args, bool * );
+ *pb_bool = true;
+ return VLC_SUCCESS;
+
+ case DEMUX_SET_RECORD_STATE:
+ b_bool = (bool)va_arg( args, int );
+
+ if( !b_bool )
+ stream_Control( p_demux->s, STREAM_SET_RECORD_STATE, false );
+ p_sys->b_start_record = b_bool;
+ return VLC_SUCCESS;
+
case DEMUX_GET_FPS:
case DEMUX_SET_TIME:
default:
for( n = 0; n < sub->i_pages_number; n++ )
{
dvbpsi_teletextpage_t *p_page = &sub->p_pages[n];
- if( (p_page->i_teletext_type == 0x2)
- || (p_page->i_teletext_type == 0x5) )
+ if( p_page->i_teletext_type > 0x0 &&
+ p_page->i_teletext_type < 0x6 )
{
ts_es_t *p_es;
p_page->i_iso6392_language_code, 3 );
p_es->fmt.psz_language[3] = 0;
}
- switch( p_page->i_teletext_type )
- {
- case 0x2:
- p_es->fmt.psz_description =
- strdup(_("Teletext subtitles"));
- msg_Dbg( p_demux,
- " * sub lan=%s page=%d%x",
- p_es->fmt.psz_language,
- p_page->i_teletext_magazine_number,
- p_page->i_teletext_page_number );
- break;
+ p_es->fmt.psz_description = strdup(_(ppsz_teletext_type[p_page->i_teletext_type]));
- case 0x5:
- p_es->fmt.psz_description =
- strdup(_("Teletext hearing impaired subtitles"));
- msg_Dbg( p_demux,
- " * hearing impaired lan=%s page=%d%x",
+ msg_Dbg( p_demux,
+ " * ttxt type=%s lan=%s page=%d%02x",
+ p_es->fmt.psz_description,
p_es->fmt.psz_language,
p_page->i_teletext_magazine_number,
p_page->i_teletext_page_number );
- break;
- default:
- break;
- }
+ /* Hack, FIXME This stores the initial page for this track,
+ so that it can be used by the telx and zvbi decoders. */
p_es->fmt.subs.dvb.i_id =
p_page->i_teletext_page_number;
- /* Hack, FIXME */
p_es->fmt.subs.dvb.i_id |=
- ((int)p_page->i_teletext_magazine_number << 16);
+ ((int)p_page->i_teletext_magazine_number << 16);
i++;
}