#define VLC_CODEC_MP1V VLC_FOURCC('m','p','1','v')
/* MPEG-2 video */
#define VLC_CODEC_MP2V VLC_FOURCC('m','p','2','v')
+/* MPEG-I/II layer 2 audio */
+#define VLC_CODEC_MP2 VLC_FOURCC('m','p','2',' ')
/* MPEG-I/II layer 3 audio */
#define VLC_CODEC_MP3 VLC_FOURCC('m','p','3',' ')
char *psz_val;
int i_val;
- if( !GetFfmpegCodec( p_enc->fmt_out.i_codec, &i_cat, &i_codec_id,
+ if( p_enc->fmt_out.i_codec == VLC_CODEC_MP3 )
+ {
+ i_cat = AUDIO_ES;
+ i_codec_id = CODEC_ID_MP3;
+ psz_namecodec = "MPEG I/II Layer 3";
+ }
+ else if( p_enc->fmt_out.i_codec == VLC_CODEC_MP2 )
+ {
+ i_cat = AUDIO_ES;
+ i_codec_id = CODEC_ID_MP2;
+ psz_namecodec = "MPEG I/II Layer 2";
+ }
+ else if( !GetFfmpegCodec( p_enc->fmt_out.i_codec, &i_cat, &i_codec_id,
&psz_namecodec ) )
{
if( TestFfmpegChroma( -1, p_enc->fmt_out.i_codec ) != VLC_SUCCESS )
encoder_t *p_enc = (encoder_t*)p_this;
encoder_sys_t *p_sys;
- /* FIXME: what about layers 1 and 2 ? shine is an 'MP3' encoder */
- if( p_enc->fmt_out.i_codec != VLC_CODEC_MP3 ||
+ /* shine is an 'MP3' encoder */
+ if( (p_enc->fmt_out.i_codec != VLC_CODEC_MP3 && p_enc->fmt_out.i_codec != VLC_CODEC_MPGA) ||
p_enc->fmt_out.audio.i_channels > 2 )
return VLC_EGENERIC;
encoder_sys_t *p_sys;
int i_frequency;
- if( p_enc->fmt_out.i_codec != VLC_CODEC_MPGA &&
- p_enc->fmt_out.i_codec != VLC_FOURCC('m','p','2','a') &&
- p_enc->fmt_out.i_codec != VLC_FOURCC('m','p','2',' ') &&
+ if( p_enc->fmt_out.i_codec != VLC_CODEC_MP2 &&
+ p_enc->fmt_out.i_codec != VLC_CODEC_MPGA &&
!p_enc->b_force )
{
return VLC_EGENERIC;
if( p_sys->i_acodec )
{
if( ( p_sys->i_acodec == VLC_CODEC_MP3 ||
+ p_sys->i_acodec == VLC_CODEC_MP2 ||
p_sys->i_acodec == VLC_CODEC_MPGA ) && p_sys->i_channels > 2 )
{
- msg_Warn( p_stream, "%d channels invalid for mp3, forcing to 2",
+ msg_Warn( p_stream, "%d channels invalid for mp2/mp3, forcing to 2",
p_sys->i_channels );
p_sys->i_channels = 2;
}