]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/v4l2_m2m.c
avformat/aviobuf: End grace period of allowing 0 from read_packet
[ffmpeg] / libavcodec / v4l2_m2m.c
index 944c1a2823016e06bf46b4161d2e4bf2590c28fb..cdfd579810f21f89ea933a0f7bc2e41bcef8d8d0 100644 (file)
@@ -329,6 +329,7 @@ static void v4l2_m2m_destroy_context(void *opaque, uint8_t *context)
     sem_destroy(&s->refsync);
 
     close(s->fd);
+    av_frame_unref(s->frame);
     av_frame_free(&s->frame);
     av_packet_unref(&s->buf_pkt);
 
@@ -344,13 +345,13 @@ int ff_v4l2_m2m_codec_end(V4L2m2mPriv *priv)
         return 0;
 
     if (s->fd >= 0) {
-    ret = ff_v4l2_context_set_status(&s->output, VIDIOC_STREAMOFF);
-    if (ret)
-        av_log(s->avctx, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->output.name);
+        ret = ff_v4l2_context_set_status(&s->output, VIDIOC_STREAMOFF);
+        if (ret)
+            av_log(s->avctx, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->output.name);
 
-    ret = ff_v4l2_context_set_status(&s->capture, VIDIOC_STREAMOFF);
-    if (ret)
-        av_log(s->avctx, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->capture.name);
+        ret = ff_v4l2_context_set_status(&s->capture, VIDIOC_STREAMOFF);
+        if (ret)
+            av_log(s->avctx, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->capture.name);
     }
 
     ff_v4l2_context_release(&s->output);