| @@ -1007,12 +1007,9 @@ static av_cold int vorbis_decode_init(AVCodecContext *avccontext) | |||||
| avccontext->channels = vc->audio_channels; | avccontext->channels = vc->audio_channels; | ||||
| avccontext->sample_rate = vc->audio_samplerate; | avccontext->sample_rate = vc->audio_samplerate; | ||||
| avccontext->frame_size = FFMIN(vc->blocksize[0], vc->blocksize[1]) >> 2; | avccontext->frame_size = FFMIN(vc->blocksize[0], vc->blocksize[1]) >> 2; | ||||
| /* ffdshow custom code */ | |||||
| #if CONFIG_AUDIO_FLOAT | |||||
| avccontext->sample_fmt = AV_SAMPLE_FMT_FLT; | |||||
| #else | |||||
| avccontext->sample_fmt = AV_SAMPLE_FMT_S16; | |||||
| #endif | |||||
| avccontext->sample_fmt = | |||||
| avccontext->request_sample_fmt == AV_SAMPLE_FMT_FLT ? | |||||
| AV_SAMPLE_FMT_FLT : AV_SAMPLE_FMT_S16; | |||||
| return 0 ; | return 0 ; | ||||
| } | } | ||||
| @@ -1640,15 +1637,15 @@ static int vorbis_decode_frame(AVCodecContext *avccontext, | |||||
| len * ff_vorbis_channel_layout_offsets[vc->audio_channels - 1][i]; | len * ff_vorbis_channel_layout_offsets[vc->audio_channels - 1][i]; | ||||
| } | } | ||||
| /* ffdshow custom code */ | |||||
| #if CONFIG_AUDIO_FLOAT | |||||
| float_interleave(data, channel_ptrs, len, vc->audio_channels); | |||||
| *data_size = len * sizeof(float) * vc->audio_channels; | |||||
| #else | |||||
| vc->fmt_conv.float_to_int16_interleave(data, channel_ptrs, len, | |||||
| vc->audio_channels); | |||||
| *data_size = len * 2 * vc->audio_channels; | |||||
| #endif | |||||
| *data_size = len * vc->audio_channels; | |||||
| if (avccontext->sample_fmt == AV_SAMPLE_FMT_FLT) { | |||||
| float_interleave(data, channel_ptrs, len, vc->audio_channels); | |||||
| *data_size *= sizeof(float); | |||||
| } else { | |||||
| vc->fmt_conv.float_to_int16_interleave(data, channel_ptrs, len, | |||||
| vc->audio_channels); | |||||
| *data_size *= 2; | |||||
| } | |||||
| return buf_size ; | return buf_size ; | ||||
| } | } | ||||