LE 12 on RPi 4: AV1 content doesn't switch bit-depth

  • After a couple years off from LibreELEC after being a long-time user of both RPi and x86, I'm back to do some testing. Armed with a newer TV (LG C2) and AVR (Denon S570BT) that makes it easy to see what is being output, I'm impressed with the bit-depth switching when changing videos. The black screen when switching output is noticeable, but not as long as a refresh rate change. In the plethora of files I've tested, I've seen the following output (in Denon language):

    - UI: 4k60 RGB 8-bit
    - H.264 8-bit (HW), HEVC 8-bit (HW): 4k60 RGB 8-bit
    - H.264 10-bit (SW), HEVC 10-bit (HW), HEVC 12-bit (SW): 4k60 4:2:2 12-bit

    The above are all 4K or 1080p SDR only, for the purpose of this question. (HDR works well, too.)

    My question is, with the same configuration, I've noticed that AV1 10-bit files, via dav1d, are still output as 4k60 RGB 8-bit. I would have expected them to also be 4k60 4:2:2 12-bit.

    Is this a bug, or a limitation of driver/software support as noted in the docs?

    Thanks.

  • Go to Best Answer
  • Try this:

    agabrean
    June 10, 2024 at 9:16 AM
  • Why would changing from Limited to Full RGB change this? Does the AV1 decoder have a dependency on Full RGB?


    I would prefer not to change from Limited, as I currently have all my devices (which run through the AVR) configured and calibrated accordingly.

  • Is this a bug, or a limitation of driver/software support as noted in the docs?

    It's a limitation. The only format that supports 10-bit output is P030 (three 10-bit pixels in a 32-bit word in a tiled format).

    P030 is native to the hevc decoder, and supported directly by the display.

    But AV1 is sw decoded, doesn't use that format, and ffmpeg doesn't support conversion to that format.

    So it uses the format it can do (8-bit YUV420).

    In theory a conversion to P030 could be written, but it would need to be written in Neon assembly to have the performance.