]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/buffersrc.c
lavfi/swapuv: switch to filter_frame API
[ffmpeg] / libavfilter / buffersrc.c
index a88cc463dae2cbc630558e94ac5cac4692fe2198..7949098c84d77c91ffadfb40d8b4b4a14c50688a 100644 (file)
  * memory buffer source filter
  */
 
+#include "libavutil/channel_layout.h"
+#include "libavutil/common.h"
+#include "libavutil/fifo.h"
+#include "libavutil/imgutils.h"
+#include "libavutil/opt.h"
+#include "libavutil/samplefmt.h"
 #include "audio.h"
 #include "avfilter.h"
 #include "buffersrc.h"
 #include "video.h"
 #include "avcodec.h"
 
-#include "libavutil/audioconvert.h"
-#include "libavutil/common.h"
-#include "libavutil/fifo.h"
-#include "libavutil/imgutils.h"
-#include "libavutil/opt.h"
-#include "libavutil/samplefmt.h"
-
 typedef struct {
     const AVClass    *class;
     AVFifoBuffer     *fifo;
@@ -372,20 +371,7 @@ static int request_frame(AVFilterLink *link)
     }
     av_fifo_generic_read(c->fifo, &buf, sizeof(buf), NULL);
 
-    switch (link->type) {
-    case AVMEDIA_TYPE_VIDEO:
-        if ((ret = ff_start_frame(link, buf)) < 0 ||
-            (ret = ff_draw_slice(link, 0, link->h, 1)) < 0 ||
-            (ret = ff_end_frame(link)) < 0)
-            return ret;
-        break;
-    case AVMEDIA_TYPE_AUDIO:
-        ret = ff_filter_samples(link, buf);
-        break;
-    default:
-        avfilter_unref_bufferp(&buf);
-        return AVERROR(EINVAL);
-    }
+    ff_filter_frame(link, buf);
 
     return ret;
 }