Commit 88697581 authored by Christophe Massiot's avatar Christophe Massiot

* modules/demux/ts.c: Fixed stream output mode detection.

parent 7ea8f3e2
......@@ -94,6 +94,7 @@ struct es_out_t
int (*pf_send) ( es_out_t *, es_out_id_t *, block_t * );
void (*pf_del) ( es_out_t *, es_out_id_t * );
int (*pf_control)( es_out_t *, int i_query, va_list );
vlc_bool_t b_sout;
es_out_sys_t *p_sys;
};
......
......@@ -3025,12 +3025,9 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
&& DVBPSI_VERSION_INT > ((0<<16)+(1<<8)+5)
pid->es->fmt.i_group = p_pmt->i_program_number;
/* If i_dvb_program == -1 it means the user specified
* --sout-all or --programs, so she want to stream, and
* she doesn't want to stream several identical ESes
* with different language descriptors. So for -1 we
* just enable descriptor pass-through. --Meuuh */
if( p_sys->i_dvb_program != -1 )
/* In stream output mode, only enable descriptor
* pass-through. */
if( !p_demux->out->b_sout )
{
uint16_t n, i = 0;
dvbpsi_teletext_dr_t *sub;
......@@ -3110,10 +3107,12 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
if( !i )
pid->es->fmt.i_cat = UNKNOWN_ES;
}
#else
pid->es->fmt.subs.dvb.i_id = -1;
pid->es->fmt.psz_description = strdup( "Teletext" );
else
#endif /* defined _DVBPSI_DR_56_H_ && DVBPSI_VERSION(0,1,6) */
{
pid->es->fmt.subs.dvb.i_id = -1;
pid->es->fmt.psz_description = strdup( "Teletext" );
}
}
else if( p_dr->i_tag == 0x59 )
{
......@@ -3128,12 +3127,9 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
#ifdef _DVBPSI_DR_59_H_
pid->es->fmt.i_group = p_pmt->i_program_number;
/* If i_dvb_program == -1 it means the user specified
* --sout-all or --programs, so she want to stream, and
* she doesn't want to stream several identical ESes
* with different language descriptors. So for -1 we
* just enable descriptor pass-through. --Meuuh */
if( p_sys->i_dvb_program != -1 )
/* In stream output mode, only enable descriptor
* pass-through. */
if( !p_demux->out->b_sout )
{
uint16_t n, i = 0;
dvbpsi_subtitling_dr_t *sub;
......@@ -3220,7 +3216,12 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
if( !i )
pid->es->fmt.i_cat = UNKNOWN_ES;
}
else
#endif /* _DVBPSI_DR_59_H_ */
{
pid->es->fmt.subs.dvb.i_id = -1;
pid->es->fmt.psz_description = strdup( "DVB subtitles" );
}
}
}
}
......
......@@ -151,6 +151,7 @@ es_out_t *input_EsOutNew( input_thread_t *p_input )
out->pf_del = EsOutDel;
out->pf_control = EsOutControl;
out->p_sys = p_sys;
out->b_sout = (p_input->p->p_sout != NULL ? VLC_TRUE : VLC_FALSE);
p_sys->p_input = p_input;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment