Commit 138f098d authored by Laurent Aimar's avatar Laurent Aimar

Used vlc_fourcc_GetCodecAudio when applicable.

parent 4de16278
...@@ -266,85 +266,6 @@ static int DecoderOpen( vlc_object_t *p_this ) ...@@ -266,85 +266,6 @@ static int DecoderOpen( vlc_object_t *p_this )
p_dec->fmt_out.i_codec = p_dec->fmt_in.i_codec; p_dec->fmt_out.i_codec = p_dec->fmt_in.i_codec;
p_dec->fmt_in.audio.i_bitspersample = 8; p_dec->fmt_in.audio.i_bitspersample = 8;
} }
else if( p_dec->fmt_in.i_codec == VLC_FOURCC( 'a', 'f', 'l', 't' ) )
{
switch( ( p_dec->fmt_in.audio.i_bitspersample + 7 ) / 8 )
{
case 4:
p_dec->fmt_out.i_codec = VLC_CODEC_FL32;
break;
case 8:
p_dec->fmt_out.i_codec = VLC_CODEC_FL64;
break;
default:
msg_Err( p_dec, "bad parameters(bits/sample)" );
return VLC_EGENERIC;
}
}
else if( p_dec->fmt_in.i_codec == VLC_FOURCC( 'a', 'r', 'a', 'w' ) ||
p_dec->fmt_in.i_codec == VLC_FOURCC( 'p', 'c', 'm', ' ' ) )
{
switch( ( p_dec->fmt_in.audio.i_bitspersample + 7 ) / 8 )
{
case 1:
p_dec->fmt_out.i_codec = VLC_CODEC_U8;
break;
case 2:
p_dec->fmt_out.i_codec = VLC_CODEC_S16L;
break;
case 3:
p_dec->fmt_out.i_codec = VLC_CODEC_S24L;
break;
case 4:
p_dec->fmt_out.i_codec = VLC_CODEC_S32L;
break;
default:
msg_Err( p_dec, "bad parameters(bits/sample)" );
return VLC_EGENERIC;
}
}
else if( p_dec->fmt_in.i_codec == VLC_FOURCC( 't', 'w', 'o', 's' ) )
{
switch( ( p_dec->fmt_in.audio.i_bitspersample + 7 ) / 8 )
{
case 1:
p_dec->fmt_out.i_codec = VLC_CODEC_S8;
break;
case 2:
p_dec->fmt_out.i_codec = VLC_CODEC_S16B;
break;
case 3:
p_dec->fmt_out.i_codec = VLC_CODEC_S24B;
break;
case 4:
p_dec->fmt_out.i_codec = VLC_CODEC_S32B;
break;
default:
msg_Err( p_dec, "bad parameters(bits/sample)" );
return VLC_EGENERIC;
}
}
else if( p_dec->fmt_in.i_codec == VLC_FOURCC( 's', 'o', 'w', 't' ) )
{
switch( ( p_dec->fmt_in.audio.i_bitspersample + 7 ) / 8 )
{
case 1:
p_dec->fmt_out.i_codec = VLC_CODEC_S8;
break;
case 2:
p_dec->fmt_out.i_codec = VLC_CODEC_S16L;
break;
case 3:
p_dec->fmt_out.i_codec = VLC_CODEC_S24L;
break;
case 4:
p_dec->fmt_out.i_codec = VLC_CODEC_S32L;
break;
default:
msg_Err( p_dec, "bad parameters(bits/sample)" );
return VLC_EGENERIC;
}
}
else if( p_dec->fmt_in.i_codec == VLC_CODEC_ALAW ) else if( p_dec->fmt_in.i_codec == VLC_CODEC_ALAW )
{ {
p_dec->fmt_out.i_codec = VLC_CODEC_S16N; p_dec->fmt_out.i_codec = VLC_CODEC_S16N;
...@@ -357,7 +278,17 @@ static int DecoderOpen( vlc_object_t *p_this ) ...@@ -357,7 +278,17 @@ static int DecoderOpen( vlc_object_t *p_this )
p_sys->p_logtos16 = ulawtos16; p_sys->p_logtos16 = ulawtos16;
p_dec->fmt_in.audio.i_bitspersample = 8; p_dec->fmt_in.audio.i_bitspersample = 8;
} }
else return VLC_EGENERIC; else
{
p_dec->fmt_out.i_codec =
vlc_fourcc_GetCodecAudio( p_dec->fmt_in.i_codec,
p_dec->fmt_in.audio.i_bitspersample );
if( !p_dec->fmt_out.i_codec )
{
msg_Err( p_dec, "bad parameters(bits/sample)" );
return VLC_EGENERIC;
}
}
/* Set output properties */ /* Set output properties */
p_dec->fmt_out.i_cat = AUDIO_ES; p_dec->fmt_out.i_cat = AUDIO_ES;
......
...@@ -87,71 +87,16 @@ static int Open( vlc_object_t *p_this ) ...@@ -87,71 +87,16 @@ static int Open( vlc_object_t *p_this )
/* Create the output format */ /* Create the output format */
es_format_Copy( &p_dec->fmt_out, &p_dec->fmt_in ); es_format_Copy( &p_dec->fmt_out, &p_dec->fmt_in );
/* Fix the value of the fourcc */ /* Fix the value of the fourcc for audio */
switch( p_dec->fmt_in.i_codec ) if( p_dec->fmt_in.i_cat == AUDIO_ES )
{ {
case VLC_FOURCC( 'a', 'r', 'a', 'w' ): p_dec->fmt_out.i_codec = vlc_fourcc_GetCodecAudio( p_dec->fmt_in.i_codec,
switch( ( p_dec->fmt_in.audio.i_bitspersample + 7 ) / 8 ) p_dec->fmt_in.audio.i_bitspersample );
{ if( !p_dec->fmt_out.i_codec )
case 1: {
p_dec->fmt_out.i_codec = VLC_CODEC_U8; msg_Err( p_dec, "unknown raw audio sample size" );
break; return VLC_EGENERIC;
case 2: }
p_dec->fmt_out.i_codec = VLC_CODEC_S16L;
break;
case 3:
p_dec->fmt_out.i_codec = VLC_CODEC_S24L;
break;
case 4:
p_dec->fmt_out.i_codec = VLC_CODEC_S32L;
break;
default:
msg_Err( p_dec, "unknown raw audio sample size" );
return VLC_EGENERIC;
}
break;
case VLC_FOURCC( 't', 'w', 'o', 's' ):
switch( ( p_dec->fmt_in.audio.i_bitspersample + 7 ) / 8 )
{
case 1:
p_dec->fmt_out.i_codec = VLC_CODEC_S8;
break;
case 2:
p_dec->fmt_out.i_codec = VLC_CODEC_S16B;
break;
case 3:
p_dec->fmt_out.i_codec = VLC_CODEC_S24B;
break;
case 4:
p_dec->fmt_out.i_codec = VLC_CODEC_S32B;
break;
default:
msg_Err( p_dec, "unknown raw audio sample size" );
return VLC_EGENERIC;
}
break;
case VLC_FOURCC( 's', 'o', 'w', 't' ):
switch( ( p_dec->fmt_in.audio.i_bitspersample + 7 ) / 8 )
{
case 1:
p_dec->fmt_out.i_codec = VLC_CODEC_S8;
break;
case 2:
p_dec->fmt_out.i_codec = VLC_CODEC_S16L;
break;
case 3:
p_dec->fmt_out.i_codec = VLC_CODEC_S24L;
break;
case 4:
p_dec->fmt_out.i_codec = VLC_CODEC_S32L;
break;
default:
msg_Err( p_dec, "unknown raw audio sample size" );
return VLC_EGENERIC;
}
break;
} }
p_dec->p_sys = p_sys = malloc( sizeof(*p_sys) ); p_dec->p_sys = p_sys = malloc( sizeof(*p_sys) );
......
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