diff options
author | Anton Khirnov <anton@khirnov.net> | 2014-02-19 20:55:27 +0100 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2014-03-02 11:42:37 -0500 |
commit | 58556826a80eb6b59fe08c780080fb8f24c1bae9 (patch) | |
tree | 9f518a22fd38274de6aba6773c3ddd4cbec404e9 | |
parent | 7933039ade01b39638ec3d9e638b6ae06ee84984 (diff) | |
download | ffmpeg-58556826a80eb6b59fe08c780080fb8f24c1bae9.tar.gz |
af_volume: preserve frame properties
(cherry picked from commit 39c2880eeae6930b1036ce1f479afc1e1152c13f)
-rw-r--r-- | libavfilter/af_volume.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c index 85d7067132..12d496ed4d 100644 --- a/libavfilter/af_volume.c +++ b/libavfilter/af_volume.c @@ -229,6 +229,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) AVFilterLink *outlink = inlink->dst->outputs[0]; int nb_samples = buf->nb_samples; AVFrame *out_buf; + int ret; if (vol->volume == 1.0 || vol->volume_i == 256) return ff_filter_frame(outlink, buf); @@ -240,7 +241,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) out_buf = ff_get_audio_buffer(inlink, nb_samples); if (!out_buf) return AVERROR(ENOMEM); - out_buf->pts = buf->pts; + ret = av_frame_copy_props(out_buf, buf); + if (ret < 0) { + av_frame_free(&out_buf); + av_frame_free(&buf); + return ret; + } } if (vol->precision != PRECISION_FIXED || vol->volume_i > 0) { |