d3d11vp9dec: Add support for internal frame resizing
authorSeungha Yang <seungha.yang@navercorp.com>
Sat, 7 Mar 2020 10:41:53 +0000 (19:41 +0900)
committerSeungha Yang <seungha@centricular.com>
Mon, 9 Mar 2020 14:44:12 +0000 (23:44 +0900)
commit58a4c33a0e4f4e5415d8578166716e0d65c0c27e
treeb9dda1eeb634335bb7b962f17047c36a837d3d83
parentc10b5f06a5f46ea426fd20be81570e1f7417c6fd
d3d11vp9dec: Add support for internal frame resizing

VP9 codec allows resizing reference frame by spec. Handling this case
is a bit tricky especially when the resizing happens on non-keyframe,
because pre-allocated decoder textures (i.e., dpb) have negotiated
resolution and to change resolution meanwhile decoding on non-keyframe,
each texture might need to be re-created, copied to new dpb somehow,
and re-negotiated with downstream.

Due to the complicated requirement of negotiation driven
resizing handling, this commit adds shader into d3d11decoder object
to resize only corresponding frames. Note that if the resolution change
is detected on keyframe, decoder will re-negotiate with downstream.
sys/d3d11/gstd3d11decoder.c
sys/d3d11/gstd3d11decoder.h
sys/d3d11/gstd3d11h264dec.c
sys/d3d11/gstd3d11h265dec.c
sys/d3d11/gstd3d11vp9dec.c