+ sout_mux_sys_t *p_sys = p_mux->p_sys;
+ ps_stream_t *p_stream;
+
+
+ msg_Dbg( p_mux, "adding input codec=%4.4s",
+ (char*)&p_input->p_fmt->i_codec );
+
+ p_input->p_sys = p_stream = malloc( sizeof( ps_stream_t ) );
+ p_stream->i_stream_type = 0x81;
+
+ /* Init this new stream */
+ switch( p_input->p_fmt->i_codec )
+ {
+ case VLC_FOURCC( 'm', 'p', '1', 'v' ):
+ p_stream->i_stream_id =
+ StreamIdGet( p_sys->stream_id_mpgv, 0xe0, 0xef );
+ p_stream->i_stream_type = 0x01; /* ISO/IEC 11172 Video */
+ break;
+ case VLC_FOURCC( 'm', 'p', '2', 'v' ):
+ case VLC_FOURCC( 'm', 'p', 'g', 'v' ):
+ p_stream->i_stream_id =
+ StreamIdGet( p_sys->stream_id_mpgv, 0xe0, 0xef );
+ p_stream->i_stream_type = 0x02; /* ISO/IEC 13818 Video */
+ break;
+ case VLC_FOURCC( 'm', 'p', '4', 'v' ):
+ p_stream->i_stream_id =
+ StreamIdGet( p_sys->stream_id_mpgv, 0xe0, 0xef );
+ p_stream->i_stream_type = 0x10;
+ break;
+ case VLC_FOURCC( 'h', '2', '6', '4' ):
+ p_stream->i_stream_id =
+ StreamIdGet( p_sys->stream_id_mpgv, 0xe0, 0xef );
+ p_stream->i_stream_type = 0x1b;
+ break;
+ case VLC_FOURCC( 'l', 'p', 'c', 'm' ):
+ p_stream->i_stream_id =
+ 0xbd00 | StreamIdGet( p_sys->stream_id_lpcm, 0xa0, 0xaf );
+ break;
+ case VLC_FOURCC( 'd', 't', 's', ' ' ):
+ p_stream->i_stream_id =
+ 0xbd00 | StreamIdGet( p_sys->stream_id_dts, 0x88, 0x8f );
+ break;
+ case VLC_FOURCC( 'a', '5', '2', ' ' ):
+ p_stream->i_stream_id =
+ 0xbd00 | StreamIdGet( p_sys->stream_id_a52, 0x80, 0x87 );
+ break;
+ case VLC_FOURCC( 'm', 'p', 'g', 'a' ):
+ p_stream->i_stream_id =
+ StreamIdGet( p_sys->stream_id_mpga, 0xc0, 0xcf );
+ p_stream->i_stream_type = 0x03; /* ISO/IEC 11172 Audio */
+ break;
+ case VLC_FOURCC( 'm', 'p', '4', 'a' ):
+ p_stream->i_stream_id =
+ StreamIdGet( p_sys->stream_id_mpga, 0xc0, 0xcf );
+ p_stream->i_stream_type = 0x0f;
+ break;
+ case VLC_FOURCC( 's', 'p', 'u', ' ' ):
+ p_stream->i_stream_id =
+ 0xbd00 | StreamIdGet( p_sys->stream_id_spu, 0x20, 0x3f );
+ break;
+ default:
+ goto error;
+ }