Message ID | 20221102180810.267252-1-jernej.skrabec@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | media: cedrus: Format handling improvements and 10-bit HEVC support | expand |
Hi Jernej, On 02/11/2022 19:07, Jernej Skrabec wrote: > While my first intention was to just add 10-bit HEVC handling, I noticed > a few format handling issues and a bit of redundancy in some cases. Final > result is that driver now sticks to stateless decoder rules better. > > Format handling improvements: > 1. Default format selection is now based on HW capabilities. Before, MPEG2 > was hardcoded but some Cedrus variants don't actually support it. > 2. Controls are registered only if related codec is supported by HW. > 3. Untiled output format is preferred, if supported, over tiled one. All > display engine cores support untiled format, but only first generation > supports tiled one. > > I hope this makes Cedrus eligible for destaging. > > Best regards, > Jernej > > Changes from v1: > - collected acks, except for patch 5, which was changed > - use cedrus_is_capable() for cedrus_find_format() too (patch 4) > - tightly pack control pointers in ctx->ctrls[] (patch 5) > > Jernej Skrabec (11): > media: cedrus: remove superfluous call > media: cedrus: Add format reset helpers > media: cedrus: use helper to set default formats > media: cedrus: Add helper for checking capabilities > media: cedrus: Filter controls based on capability > media: cedrus: set codec ops immediately > media: cedrus: Remove cedrus_codec enum > media: cedrus: prefer untiled capture format > media: cedrus: initialize controls a bit later I'm going to merge the first 9 patches, but leave out the last two. It's weird what happens there, and I think those two need a bit more work. Regards, Hans > media: cedrus: Adjust buffer size based on control values > media: cedrus: h265: Support decoding 10-bit frames > > drivers/staging/media/sunxi/cedrus/cedrus.c | 102 +++++---- > drivers/staging/media/sunxi/cedrus/cedrus.h | 22 +- > .../staging/media/sunxi/cedrus/cedrus_dec.c | 4 +- > .../staging/media/sunxi/cedrus/cedrus_h264.c | 2 +- > .../staging/media/sunxi/cedrus/cedrus_h265.c | 37 +++- > .../staging/media/sunxi/cedrus/cedrus_hw.c | 18 +- > .../staging/media/sunxi/cedrus/cedrus_hw.h | 2 +- > .../staging/media/sunxi/cedrus/cedrus_mpeg2.c | 2 +- > .../staging/media/sunxi/cedrus/cedrus_regs.h | 16 ++ > .../staging/media/sunxi/cedrus/cedrus_video.c | 200 ++++++++++-------- > .../staging/media/sunxi/cedrus/cedrus_video.h | 2 + > .../staging/media/sunxi/cedrus/cedrus_vp8.c | 2 +- > 12 files changed, 244 insertions(+), 165 deletions(-) > > -- > 2.38.1 >