d3d11h264dec: Keep track of actually configured DPB size
authorSeungha Yang <seungha@centricular.com>
Thu, 4 Mar 2021 08:42:28 +0000 (17:42 +0900)
committerSeungha Yang <seungha@centricular.com>
Thu, 4 Mar 2021 08:57:14 +0000 (17:57 +0900)
commit3730ea33660a56537998e8e061d91f4b4b4b18ef
tree0aa859b1f93760c54bb980446b891269c9d56cb6
parent766bd655fc6da557f732f6a82e4f8ab542ba5b65
d3d11h264dec: Keep track of actually configured DPB size

... instead of the largest we ever seen.
Note that d3d11h264dec element holds previously configured DPB size
for later decoder object re-open decision.

This is to fix below case:
1) Initial SPS, required DPB size is 6
  - decoder object is opened with DPB size 6
  - max_dpb_size is now 6
2) SPS update with resolution change, required DPB size is 1
  - decoder object is re-opened with DPB size 1
  - max_dpb_size should be updated to 1, but it didn't happen (BUG)
3) SPS update without resolution change, only required DPB size is updated to 6
  - decoder object should be re-opened but didn't happen
    because we didn't update max_dpb_size at 2).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2056>
sys/d3d11/gstd3d11h264dec.c