radeonsi: VCE/UVD encoding rework
What does this MR do and why?
Encoding rework for VCE and UVD and implementing additional features that were only supported for VCN before.
VCE and UVD:
- App DPB management (long term references, P hierarchy, reference invalidation, ...)
- Slice encoding (128 maximum slices)
- VBAQ
- Quality presets (Speed, Balanced, Quality)
- Min/Max QP
- Max frame size
- Intra refresh
- Raw packed headers
UVD only:
- Pre-Encode
- Temporal layer rate control
First commit moves bitstream encoding functions from radeon_vcn_enc
to radeon_bitstream
, which is now used for VCE/UVD too. Also includes some small fixes and cleanups.