git.videolan.org
/
ffmpeg.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
2025d37
)
lavfi: Make default get_video_buffer work with hardware frames
author
Mark Thompson
<sw@jkqxz.net>
Mon, 31 Oct 2016 22:14:04 +0000
(22:14 +0000)
committer
Mark Thompson
<sw@jkqxz.net>
Wed, 2 Nov 2016 20:07:15 +0000
(20:07 +0000)
libavfilter/video.c
patch
|
blob
|
history
diff --git
a/libavfilter/video.c
b/libavfilter/video.c
index
cadac50
..
533946a
100644
(file)
--- a/
libavfilter/video.c
+++ b/
libavfilter/video.c
@@
-20,6
+20,7
@@
#include <stdio.h>
#include "libavutil/buffer.h"
#include <stdio.h>
#include "libavutil/buffer.h"
+#include "libavutil/hwcontext.h"
#include "libavutil/imgutils.h"
#include "libavutil/mem.h"
#include "libavutil/imgutils.h"
#include "libavutil/mem.h"
@@
-43,11
+44,16
@@
AVFrame *ff_default_get_video_buffer(AVFilterLink *link, int w, int h)
if (!frame)
return NULL;
if (!frame)
return NULL;
- frame->width = w;
- frame->height = h;
- frame->format = link->format;
+ if (link->hw_frames_ctx &&
+ ((AVHWFramesContext*)link->hw_frames_ctx->data)->format == link->format) {
+ ret = av_hwframe_get_buffer(link->hw_frames_ctx, frame, 0);
+ } else {
+ frame->width = w;
+ frame->height = h;
+ frame->format = link->format;
- ret = av_frame_get_buffer(frame, 32);
+ ret = av_frame_get_buffer(frame, 32);
+ }
if (ret < 0)
av_frame_free(&frame);
if (ret < 0)
av_frame_free(&frame);