]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_setpts.c
rtsp: Support mpegts in raw udp packets
[ffmpeg] / libavfilter / vf_setpts.c
index a0d60a5b075f65837b94ecf50a3c5bea8c5f363d..c4339b202a7f52c12c32c05f26efab31c124f813 100644 (file)
@@ -101,12 +101,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);
 
@@ -130,7 +133,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)