ffmpeg | branch: master | Mark Thompson <s...@jkqxz.net> | Mon Oct 31 22:14:04 2016 +0000| [7433feb82f75827884d909de34d341a1c4401d4a] | committer: Mark Thompson
lavfi: Make default get_video_buffer work with hardware frames > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7433feb82f75827884d909de34d341a1c4401d4a --- libavfilter/video.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/libavfilter/video.c b/libavfilter/video.c index cadac50..533946a 100644 --- a/libavfilter/video.c +++ b/libavfilter/video.c @@ -20,6 +20,7 @@ #include <stdio.h> #include "libavutil/buffer.h" +#include "libavutil/hwcontext.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; - 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); _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog