- p_es->psz_rtpmap = malloc( strlen( "L16/*/*" ) + 20+1 );
- sprintf( p_es->psz_rtpmap, "L16/%d/%d", p_fmt->audio.i_rate,
- p_fmt->audio.i_channels );
- break;
- case VLC_FOURCC( 'u', '8', ' ', ' ' ):
- p_es->i_payload_type = p_media->i_payload_type++;
- p_es->psz_rtpmap = malloc( strlen( "L8/*/*" ) + 20+1 );
- sprintf( p_es->psz_rtpmap, "L8/%d/%d", p_fmt->audio.i_rate,
- p_fmt->audio.i_channels );
- break;
- case VLC_FOURCC( 'm', 'p', 'g', 'a' ):
- p_es->i_payload_type = 14;
- p_es->psz_rtpmap = strdup( "MPA/90000" );
- break;
- case VLC_FOURCC( 'm', 'p', 'g', 'v' ):
- p_es->i_payload_type = 32;
- p_es->psz_rtpmap = strdup( "MPV/90000" );
- break;
- case VLC_FOURCC( 'a', '5', '2', ' ' ):
- p_es->i_payload_type = p_media->i_payload_type++;
- p_es->psz_rtpmap = strdup( "ac3/90000" );
- break;
- case VLC_FOURCC( 'H', '2', '6', '3' ):
- p_es->i_payload_type = p_media->i_payload_type++;
- p_es->psz_rtpmap = strdup( "H263-1998/90000" );
- break;
- case VLC_FOURCC( 'm', 'p', '4', 'v' ):
- p_es->i_payload_type = p_media->i_payload_type++;
- p_es->psz_rtpmap = strdup( "MP4V-ES/90000" );
- if( p_fmt->i_extra > 0 )
- {
- char *p_hexa = malloc( 2 * p_fmt->i_extra + 1 );
- p_es->psz_fmtp = malloc( 100 + 2 * p_fmt->i_extra );
- sprintf_hexa( p_hexa, p_fmt->p_extra, p_fmt->i_extra );
- sprintf( p_es->psz_fmtp,
- "profile-level-id=3; config=%s;", p_hexa );
- free( p_hexa );
- }
- break;
- case VLC_FOURCC( 'm', 'p', '4', 'a' ):
- p_es->i_payload_type = p_media->i_payload_type++;
- p_es->psz_rtpmap = malloc( strlen( "mpeg4-generic/" ) + 12 );
- sprintf( p_es->psz_rtpmap, "mpeg4-generic/%d", p_fmt->audio.i_rate );
- if( p_fmt->i_extra > 0 )
- {
- char *p_hexa = malloc( 2 * p_fmt->i_extra + 1 );
- p_es->psz_fmtp = malloc( 200 + 2 * p_fmt->i_extra );
- sprintf_hexa( p_hexa, p_fmt->p_extra, p_fmt->i_extra );
- sprintf( p_es->psz_fmtp,
- "streamtype=5; profile-level-id=15; mode=AAC-hbr; "
- "config=%s; SizeLength=13;IndexLength=3; "
- "IndexDeltaLength=3; Profile=1;", p_hexa );
- free( p_hexa );
- }
- break;
- case VLC_FOURCC( 'm', 'p', '2', 't' ):
- p_media->psz_mux = "ts";
- p_es->i_payload_type = 33;
- p_es->psz_rtpmap = strdup( "MP2T/90000" );
- break;
- case VLC_FOURCC( 'm', 'p', '2', 'p' ):
- p_media->psz_mux = "ps";
- p_es->i_payload_type = p_media->i_payload_type++;
- p_es->psz_rtpmap = strdup( "MP2P/90000" );
- break;
- case VLC_FOURCC( 's', 'a', 'm', 'r' ):
- p_es->i_payload_type = p_media->i_payload_type++;
- p_es->psz_rtpmap = strdup( p_fmt->audio.i_channels == 2 ?
- "AMR/8000/2" : "AMR/8000" );
- p_es->psz_fmtp = strdup( "octet-align=1" );
- break;
- case VLC_FOURCC( 's', 'a', 'w', 'b' ):
- p_es->i_payload_type = p_media->i_payload_type++;
- p_es->psz_rtpmap = strdup( p_fmt->audio.i_channels == 2 ?
- "AMR-WB/16000/2" : "AMR-WB/16000" );
- p_es->psz_fmtp = strdup( "octet-align=1" );
- break;
-
- default:
- msg_Err( p_vod, "cannot add this stream (unsupported "
- "codec: %4.4s)", (char*)&p_fmt->i_codec );
- free( p_es );
- return VLC_EGENERIC;