]> git.sesse.net Git - ffmpeg/commitdiff
lavfi/select: correctly set prev_t and prev_pts
authorStefano Sabatini <stefasab@gmail.com>
Thu, 7 Feb 2013 20:16:11 +0000 (21:16 +0100)
committerStefano Sabatini <stefasab@gmail.com>
Thu, 7 Feb 2013 20:28:46 +0000 (21:28 +0100)
In particular, fix trac ticket #2248.

libavfilter/f_select.c

index fabddefcc91e7fa5e253b84507e20c2c32d118aa..0f211454ef78b711025f9d24af0f2343083969f4 100644 (file)
@@ -184,6 +184,7 @@ static int config_input(AVFilterLink *inlink)
     select->var_values[VAR_PREV_PTS]          = NAN;
     select->var_values[VAR_PREV_SELECTED_PTS] = NAN;
     select->var_values[VAR_PREV_SELECTED_T]   = NAN;
+    select->var_values[VAR_PREV_T]            = NAN;
     select->var_values[VAR_START_PTS]         = NAN;
     select->var_values[VAR_START_T]           = NAN;
 
@@ -273,7 +274,6 @@ static int select_frame(AVFilterContext *ctx, AVFilterBufferRef *ref)
     select->var_values[VAR_PTS] = TS2D(ref->pts);
     select->var_values[VAR_T  ] = TS2D(ref->pts) * av_q2d(inlink->time_base);
     select->var_values[VAR_POS] = ref->pos == -1 ? NAN : ref->pos;
-    select->var_values[VAR_PREV_PTS] = TS2D(ref ->pts);
 
     switch (inlink->type) {
     case AVMEDIA_TYPE_AUDIO:
@@ -334,6 +334,8 @@ static int select_frame(AVFilterContext *ctx, AVFilterBufferRef *ref)
     }
 
     select->var_values[VAR_N] += 1.0;
+    select->var_values[VAR_PREV_PTS] = select->var_values[VAR_PTS];
+    select->var_values[VAR_PREV_T]   = select->var_values[VAR_T];
 
     return res;
 }