Commit aaf991fc authored by Ilkka Ollakka's avatar Ilkka Ollakka

avcodec: try to find packet sample format for encoding

parent b4f6e77d
...@@ -593,6 +593,22 @@ int OpenEncoder( vlc_object_t *p_this ) ...@@ -593,6 +593,22 @@ int OpenEncoder( vlc_object_t *p_this )
p_context->sample_fmt = p_codec->sample_fmts ? p_context->sample_fmt = p_codec->sample_fmts ?
p_codec->sample_fmts[0] : p_codec->sample_fmts[0] :
AV_SAMPLE_FMT_S16; AV_SAMPLE_FMT_S16;
// Try if we can use interleaved format for codec input as VLC doesn't really do planar audio yet
// FIXME: Remove when planar/interleaved audio in vlc is equally supported
if( av_sample_fmt_is_planar( p_context->sample_fmt ) )
{
msg_Dbg( p_enc, "Trying to find packet sample format instead of %s", av_get_sample_fmt_name( p_context->sample_fmt ) );
for( unsigned int i=0; p_codec->sample_fmts[i] != -1; i++ )
{
if( !av_sample_fmt_is_planar( p_codec->sample_fmts[i] ) )
{
p_context->sample_fmt = p_codec->sample_fmts[i];
msg_Dbg( p_enc, "Using %s as new sample format", av_get_sample_fmt_name( p_context->sample_fmt ) );
break;
}
}
}
p_enc->fmt_in.i_codec = GetVlcAudioFormat( p_context->sample_fmt ); p_enc->fmt_in.i_codec = GetVlcAudioFormat( p_context->sample_fmt );
p_context->sample_rate = p_enc->fmt_out.audio.i_rate; p_context->sample_rate = p_enc->fmt_out.audio.i_rate;
......
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