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