Commit 9229335a authored by Rafaël Carré's avatar Rafaël Carré

TS mux: simplify unsupported codec path

parent 13b4e116
...@@ -925,120 +925,105 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input ) ...@@ -925,120 +925,105 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
msg_Dbg( p_mux, "adding input codec=%4.4s pid=%d", msg_Dbg( p_mux, "adding input codec=%4.4s pid=%d",
(char*)&p_stream->i_codec, p_stream->i_pid ); (char*)&p_stream->i_codec, p_stream->i_pid );
switch( p_input->p_fmt->i_cat ) p_stream->i_stream_type = -1;
switch( p_input->p_fmt->i_codec )
{ {
case VIDEO_ES: /* VIDEO */
switch( p_input->p_fmt->i_codec )
{ case VLC_CODEC_MPGV:
case VLC_CODEC_MPGV: /* TODO: do we need to check MPEG-I/II ? */
/* TODO: do we need to check MPEG-I/II ? */ p_stream->i_stream_type = 0x02;
p_stream->i_stream_type = 0x02; p_stream->i_stream_id = 0xe0;
p_stream->i_stream_id = 0xe0; break;
break; case VLC_CODEC_MP4V:
case VLC_CODEC_MP4V: p_stream->i_stream_type = 0x10;
p_stream->i_stream_type = 0x10; p_stream->i_stream_id = 0xe0;
p_stream->i_stream_id = 0xe0; p_stream->i_es_id = p_stream->i_pid;
p_stream->i_es_id = p_stream->i_pid; break;
break; case VLC_CODEC_H264:
case VLC_CODEC_H264: p_stream->i_stream_type = 0x1b;
p_stream->i_stream_type = 0x1b; p_stream->i_stream_id = 0xe0;
p_stream->i_stream_id = 0xe0; break;
break; /* XXX dirty dirty but somebody want crapy MS-codec XXX */
/* XXX dirty dirty but somebody want crapy MS-codec XXX */ case VLC_CODEC_H263I:
case VLC_CODEC_H263I: case VLC_CODEC_H263:
case VLC_CODEC_H263: case VLC_CODEC_WMV3:
case VLC_CODEC_WMV3: case VLC_CODEC_WMV2:
case VLC_CODEC_WMV2: case VLC_CODEC_WMV1:
case VLC_CODEC_WMV1: case VLC_CODEC_DIV3:
case VLC_CODEC_DIV3: case VLC_CODEC_DIV2:
case VLC_CODEC_DIV2: case VLC_CODEC_DIV1:
case VLC_CODEC_DIV1: case VLC_CODEC_MJPG:
case VLC_CODEC_MJPG: p_stream->i_stream_type = 0xa0; /* private */
p_stream->i_stream_type = 0xa0; /* private */ p_stream->i_stream_id = 0xa0; /* beurk */
p_stream->i_stream_id = 0xa0; /* beurk */ p_stream->i_bih_codec = p_input->p_fmt->i_codec;
p_stream->i_bih_codec = p_input->p_fmt->i_codec; p_stream->i_bih_width = p_input->p_fmt->video.i_width;
p_stream->i_bih_width = p_input->p_fmt->video.i_width; p_stream->i_bih_height = p_input->p_fmt->video.i_height;
p_stream->i_bih_height = p_input->p_fmt->video.i_height; break;
break; case VLC_CODEC_DIRAC:
case VLC_CODEC_DIRAC: /* stream_id makes use of stream_id_extension */
/* stream_id makes use of stream_id_extension */ p_stream->i_stream_id = (PES_EXTENDED_STREAM_ID << 8) | 0x60;
p_stream->i_stream_id = (PES_EXTENDED_STREAM_ID << 8) | 0x60; p_stream->i_stream_type = 0xd1;
p_stream->i_stream_type = 0xd1;
break;
default:
free( p_stream );
return VLC_EGENERIC;
}
break; break;
case AUDIO_ES: /* AUDIO */
switch( p_input->p_fmt->i_codec )
{ case VLC_CODEC_MPGA:
case VLC_CODEC_MPGA: p_stream->i_stream_type =
p_stream->i_stream_type = p_input->p_fmt->audio.i_rate >= 32000 ? 0x03 : 0x04;
p_input->p_fmt->audio.i_rate >= 32000 ? 0x03 : 0x04; p_stream->i_stream_id = 0xc0;
p_stream->i_stream_id = 0xc0; break;
break; case VLC_CODEC_A52:
case VLC_CODEC_A52: p_stream->i_stream_type = 0x81;
p_stream->i_stream_type = 0x81; p_stream->i_stream_id = 0xbd;
p_stream->i_stream_id = 0xbd; break;
break; case VLC_CODEC_EAC3:
case VLC_CODEC_EAC3: p_stream->i_stream_type = 0x06;
p_stream->i_stream_type = 0x06; p_stream->i_stream_id = 0xbd;
p_stream->i_stream_id = 0xbd; break;
break; case VLC_CODEC_DVD_LPCM:
case VLC_CODEC_DVD_LPCM: p_stream->i_stream_type = 0x83;
p_stream->i_stream_type = 0x83; p_stream->i_stream_id = 0xbd;
p_stream->i_stream_id = 0xbd; break;
break; case VLC_CODEC_DTS:
case VLC_CODEC_DTS: p_stream->i_stream_type = 0x06;
p_stream->i_stream_type = 0x06; p_stream->i_stream_id = 0xbd;
p_stream->i_stream_id = 0xbd; break;
break; case VLC_CODEC_MP4A:
case VLC_CODEC_MP4A: /* XXX: make that configurable in some way when LOAS
/* XXX: make that configurable in some way when LOAS * is implemented for AAC in TS */
* is implemented for AAC in TS */ //p_stream->i_stream_type = 0x11; /* LOAS/LATM */
//p_stream->i_stream_type = 0x11; /* LOAS/LATM */ p_stream->i_stream_type = 0x0f; /* ADTS */
p_stream->i_stream_type = 0x0f; /* ADTS */ p_stream->i_stream_id = 0xc0;
p_stream->i_stream_id = 0xc0; p_sys->i_mpeg4_streams++;
p_sys->i_mpeg4_streams++; p_stream->i_es_id = p_stream->i_pid;
p_stream->i_es_id = p_stream->i_pid;
break;
default:
free( p_stream );
return VLC_EGENERIC;
}
break; break;
case SPU_ES: /* TEXT */
switch( p_input->p_fmt->i_codec )
{ case VLC_CODEC_SPU:
case VLC_CODEC_SPU: p_stream->i_stream_type = 0x82;
p_stream->i_stream_type = 0x82; p_stream->i_stream_id = 0xbd;
p_stream->i_stream_id = 0xbd;
break;
case VLC_CODEC_SUBT:
p_stream->i_stream_type = 0x12;
p_stream->i_stream_id = 0xfa;
p_sys->i_mpeg4_streams++;
p_stream->i_es_id = p_stream->i_pid;
break;
case VLC_CODEC_DVBS:
p_stream->i_stream_type = 0x06;
p_stream->i_es_id = p_input->p_fmt->subs.dvb.i_id;
p_stream->i_stream_id = 0xbd;
break;
case VLC_CODEC_TELETEXT:
p_stream->i_stream_type = 0x06;
p_stream->i_stream_id = 0xbd; /* FIXME */
break;
default:
free( p_stream );
return VLC_EGENERIC;
}
break; break;
case VLC_CODEC_SUBT:
p_stream->i_stream_type = 0x12;
p_stream->i_stream_id = 0xfa;
p_sys->i_mpeg4_streams++;
p_stream->i_es_id = p_stream->i_pid;
break;
case VLC_CODEC_DVBS:
p_stream->i_stream_type = 0x06;
p_stream->i_es_id = p_input->p_fmt->subs.dvb.i_id;
p_stream->i_stream_id = 0xbd;
break;
case VLC_CODEC_TELETEXT:
p_stream->i_stream_type = 0x06;
p_stream->i_stream_id = 0xbd; /* FIXME */
break;
}
default: if (p_stream->i_stream_type == -1)
{
free( p_stream ); free( p_stream );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
......
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