diff options
author | Mark Thompson <sw@jkqxz.net> | 2017-08-05 22:10:46 +0100 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2018-02-11 22:11:10 +0000 |
commit | c6bc18bc121ea66df715123c59f7ef9542c0914a (patch) | |
tree | a6b4d6aeba3df36b5cf627f343efbe0c86f73eb8 /libavfilter/vf_hwupload.c | |
parent | e4cdef00263dc8b3c8de9d34ceacd00dc68979c0 (diff) | |
download | ffmpeg-c6bc18bc121ea66df715123c59f7ef9542c0914a.tar.gz |
vf_hwupload/hwmap: Support setting a fixed pool size
These filters do not directly know whether the API they are using will
support dynamic frame pools, so this is somewhat tricky. If the user
sets extra_hw_frames, we assume that they are aware of the problem and
set a fixed size based on that. If not, most cases use dynamic sizing
just like they did previously. The hardware-reverse-mapping case for
hwmap previously had a large fixed size (64) here, primarily as a hack
for QSV use - this is removed and extra_hw_frames will need to be set
for QSV to work since it requires fixed-size pools (as the other cases
do, and which didn't work before).
Diffstat (limited to 'libavfilter/vf_hwupload.c')
-rw-r--r-- | libavfilter/vf_hwupload.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libavfilter/vf_hwupload.c b/libavfilter/vf_hwupload.c index 8cca9f42e2..af4ff9b81f 100644 --- a/libavfilter/vf_hwupload.c +++ b/libavfilter/vf_hwupload.c @@ -133,6 +133,9 @@ static int hwupload_config_output(AVFilterLink *outlink) ctx->hwframes->width = inlink->w; ctx->hwframes->height = inlink->h; + if (avctx->extra_hw_frames >= 0) + ctx->hwframes->initial_pool_size = 2 + avctx->extra_hw_frames; + err = av_hwframe_ctx_init(ctx->hwframes_ref); if (err < 0) goto fail; |