diff options
author | Mark Thompson <sw@jkqxz.net> | 2017-03-04 23:57:39 +0000 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2017-06-14 22:27:07 +0100 |
commit | ec3dbeae8139a8bbd8b0fa4514a3cf349de7f335 (patch) | |
tree | ceb18aebaecbd705dbed1beab13224c9974e37e4 /libavutil/hwcontext.c | |
parent | 045ff8d30a6942b72c8be064c3b8415b037dab02 (diff) | |
download | ffmpeg-ec3dbeae8139a8bbd8b0fa4514a3cf349de7f335.tar.gz |
hwcontext: Add frame context mapping for nontrivial contexts
Some frames contexts are not usable without additional format-specific
state in hwctx. This change adds new functions frames_derive_from and
frames_derive_to to initialise this state appropriately when deriving
a frames context which will require it to be set.
(cherry picked from commit 27978155bc661eec9f22bcf82c9cfc099cff4365)
Diffstat (limited to 'libavutil/hwcontext.c')
-rw-r--r-- | libavutil/hwcontext.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libavutil/hwcontext.c b/libavutil/hwcontext.c index b845658b40..ed09c49f2d 100644 --- a/libavutil/hwcontext.c +++ b/libavutil/hwcontext.c @@ -819,7 +819,14 @@ int av_hwframe_ctx_create_derived(AVBufferRef **derived_frame_ctx, goto fail; } - ret = av_hwframe_ctx_init(dst_ref); + ret = AVERROR(ENOSYS); + if (src->internal->hw_type->frames_derive_from) + ret = src->internal->hw_type->frames_derive_from(dst, src, flags); + if (ret == AVERROR(ENOSYS) && + dst->internal->hw_type->frames_derive_to) + ret = dst->internal->hw_type->frames_derive_to(dst, src, flags); + if (ret == AVERROR(ENOSYS)) + ret = 0; if (ret) goto fail; |