mirror of https://git.ffmpeg.org/ffmpeg.git
avfilter/af_volume: fix precision=fixed and volume=0 case
When precision is fixed and volume is 0, filter_frame does not perform any operation on the output buffer. This works if the output buffer has been allocated and zeroed with ff_get_audio_buffer but not if the input buffer is used as output buffer. Fix this by not using the input buffer as output buffer if precision is fixed and volume is 0. Signed-off-by: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
5cb6b53050
commit
dcf19008a6
|
@ -402,7 +402,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
|
|||
}
|
||||
|
||||
/* do volume scaling in-place if input buffer is writable */
|
||||
if (av_frame_is_writable(buf)) {
|
||||
if (av_frame_is_writable(buf)
|
||||
&& (vol->precision != PRECISION_FIXED || vol->volume_i > 0)) {
|
||||
out_buf = buf;
|
||||
} else {
|
||||
out_buf = ff_get_audio_buffer(inlink, nb_samples);
|
||||
|
|
Loading…
Reference in New Issue