summaryrefslogtreecommitdiff
path: root/libavfilter/vf_setpts.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter/vf_setpts.c')
-rw-r--r--libavfilter/vf_setpts.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavfilter/vf_setpts.c b/libavfilter/vf_setpts.c
index cef467ac1a..4e2c8f83b9 100644
--- a/libavfilter/vf_setpts.c
+++ b/libavfilter/vf_setpts.c
@@ -92,12 +92,15 @@ static int config_input(AVFilterLink *inlink)
#define D2TS(d) (isnan(d) ? AV_NOPTS_VALUE : (int64_t)(d))
#define TS2D(ts) ((ts) == AV_NOPTS_VALUE ? NAN : (double)(ts))
-static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
+static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
{
SetPTSContext *setpts = inlink->dst->priv;
double d;
AVFilterBufferRef *outpicref = avfilter_ref_buffer(inpicref, ~0);
+ if (!outpicref)
+ return AVERROR(ENOMEM);
+
if (isnan(setpts->var_values[VAR_STARTPTS]))
setpts->var_values[VAR_STARTPTS] = TS2D(inpicref->pts);
@@ -121,7 +124,7 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
setpts->var_values[VAR_N] += 1.0;
setpts->var_values[VAR_PREV_INPTS ] = TS2D(inpicref ->pts);
setpts->var_values[VAR_PREV_OUTPTS] = TS2D(outpicref->pts);
- ff_start_frame(inlink->dst->outputs[0], outpicref);
+ return ff_start_frame(inlink->dst->outputs[0], outpicref);
}
static av_cold void uninit(AVFilterContext *ctx)