Commit 70e6edc2 authored by Christophe Massiot's avatar Christophe Massiot

* modules/mux/mpeg/ts.c: New --sout-ts-es-id-pid which allows to use

  the ES ID as TS PID (contrary of --ts-es-id-pid).
parent 22cdb37f
...@@ -86,6 +86,9 @@ static void Close ( vlc_object_t * ); ...@@ -86,6 +86,9 @@ static void Close ( vlc_object_t * );
#define TSID_TEXT N_("TS ID") #define TSID_TEXT N_("TS ID")
#define TSID_LONGTEXT N_("Assigns a fixed Transport Stream ID.") #define TSID_LONGTEXT N_("Assigns a fixed Transport Stream ID.")
#define PID_TEXT N_("Set PID to id of ES")
#define PID_LONGTEXT N_("set PID to id of es")
#define SHAPING_TEXT N_("Shaping delay (ms)") #define SHAPING_TEXT N_("Shaping delay (ms)")
#define SHAPING_LONGTEXT N_("If enabled, the TS muxer will cut the " \ #define SHAPING_LONGTEXT N_("If enabled, the TS muxer will cut the " \
"stream in slices of the given duration, and ensure a constant bitrate " \ "stream in slices of the given duration, and ensure a constant bitrate " \
...@@ -143,6 +146,8 @@ vlc_module_begin(); ...@@ -143,6 +146,8 @@ vlc_module_begin();
PMTPID_LONGTEXT, VLC_TRUE ); PMTPID_LONGTEXT, VLC_TRUE );
add_integer( SOUT_CFG_PREFIX "tsid", 0, NULL, TSID_TEXT, add_integer( SOUT_CFG_PREFIX "tsid", 0, NULL, TSID_TEXT,
TSID_LONGTEXT, VLC_TRUE ); TSID_LONGTEXT, VLC_TRUE );
add_bool( SOUT_CFG_PREFIX "es-id-pid", 0, NULL, PID_TEXT, PID_LONGTEXT,
VLC_TRUE );
add_integer( SOUT_CFG_PREFIX "shaping", 200, NULL,SHAPING_TEXT, add_integer( SOUT_CFG_PREFIX "shaping", 200, NULL,SHAPING_TEXT,
SHAPING_LONGTEXT, VLC_TRUE ); SHAPING_LONGTEXT, VLC_TRUE );
...@@ -171,8 +176,9 @@ vlc_module_end(); ...@@ -171,8 +176,9 @@ vlc_module_end();
* Local data structures * Local data structures
*****************************************************************************/ *****************************************************************************/
static const char *ppsz_sout_options[] = { static const char *ppsz_sout_options[] = {
"pid-video", "pid-audio", "pid-spu", "pid-pmt", "tsid", "shaping", "pcr", "pid-video", "pid-audio", "pid-spu", "pid-pmt", "tsid", "es-id-pid",
"bmin", "bmax", "use-key-frames", "dts-delay", "csa-ck", "crypt-audio", "shaping", "pcr", "bmin", "bmax", "use-key-frames", "dts-delay",
"csa-ck", "crypt-audio",
NULL NULL
}; };
...@@ -275,6 +281,7 @@ struct sout_mux_sys_t ...@@ -275,6 +281,7 @@ struct sout_mux_sys_t
int i_audio_bound; int i_audio_bound;
int i_video_bound; int i_video_bound;
vlc_bool_t b_es_id_pid;
int i_pid_video; int i_pid_video;
int i_pid_audio; int i_pid_audio;
int i_pid_spu; int i_pid_spu;
...@@ -404,6 +411,9 @@ static int Open( vlc_object_t *p_this ) ...@@ -404,6 +411,9 @@ static int Open( vlc_object_t *p_this )
p_sys->i_pid_free = p_sys->pmt.i_pid + 1; p_sys->i_pid_free = p_sys->pmt.i_pid + 1;
var_Get( p_mux, SOUT_CFG_PREFIX "es-id-pid", &val );
p_sys->b_es_id_pid = val.b_bool;
var_Get( p_mux, SOUT_CFG_PREFIX "pid-video", &val ); var_Get( p_mux, SOUT_CFG_PREFIX "pid-video", &val );
p_sys->i_pid_video = val.i_int; p_sys->i_pid_video = val.i_int;
if ( p_sys->i_pid_video > p_sys->i_pid_free ) if ( p_sys->i_pid_video > p_sys->i_pid_free )
...@@ -585,6 +595,9 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input ) ...@@ -585,6 +595,9 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
p_input->p_sys = p_stream = malloc( sizeof( ts_stream_t ) ); p_input->p_sys = p_stream = malloc( sizeof( ts_stream_t ) );
/* Init this new stream */ /* Init this new stream */
if ( p_sys->b_es_id_pid )
p_stream->i_pid = p_input->p_fmt->i_id & 0x1fff;
else
p_stream->i_pid = AllocatePID( p_sys, p_input->p_fmt->i_cat ); p_stream->i_pid = AllocatePID( p_sys, p_input->p_fmt->i_cat );
p_stream->i_codec = p_input->p_fmt->i_codec; p_stream->i_codec = p_input->p_fmt->i_codec;
p_stream->i_continuity_counter = 0; p_stream->i_continuity_counter = 0;
......
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