Merge commit '39c2880eeae6930b1036ce1f479afc1e1152c13f'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 24 Feb 2014 21:13:42 +0000 (22:13 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 24 Feb 2014 21:13:42 +0000 (22:13 +0100)
* commit '39c2880eeae6930b1036ce1f479afc1e1152c13f':
  af_volume: preserve frame properties

Conflicts:
libavfilter/af_volume.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavfilter/af_volume.c

@@@ -324,25 -229,10 +324,26 @@@ static int filter_frame(AVFilterLink *i
      AVFilterLink *outlink = inlink->dst->outputs[0];
      int nb_samples        = buf->nb_samples;
      AVFrame *out_buf;
 +    int64_t pos;
+     int ret;
  
 -    if (vol->volume == 1.0 || vol->volume_i == 256)
 -        return ff_filter_frame(outlink, buf);
 +    if (isnan(vol->var_values[VAR_STARTPTS])) {
 +        vol->var_values[VAR_STARTPTS] = TS2D(buf->pts);
 +        vol->var_values[VAR_STARTT  ] = TS2T(buf->pts, inlink->time_base);
 +    }
 +    vol->var_values[VAR_PTS] = TS2D(buf->pts);
 +    vol->var_values[VAR_T  ] = TS2T(buf->pts, inlink->time_base);
 +    vol->var_values[VAR_N  ] = inlink->frame_count;
 +
 +    pos = av_frame_get_pkt_pos(buf);
 +    vol->var_values[VAR_POS] = pos == -1 ? NAN : pos;
 +    if (vol->eval_mode == EVAL_MODE_FRAME)
 +        set_volume(ctx);
 +
 +    if (vol->volume == 1.0 || vol->volume_i == 256) {
 +        out_buf = buf;
 +        goto end;
 +    }
  
      /* do volume scaling in-place if input buffer is writable */
      if (av_frame_is_writable(buf)) {