Xpra: Ticket #1310: vpx 10-bit colour encoding support

Follow up from #909, we may want to wait for vp10 to come out too. The API documentation is very limited but both gstreamer and ffmpeg have support for it - which we could re-use via the enc_ffmpeg encoder (#1107).



Wed, 08 Feb 2017 10:25:15 GMT - Antoine Martin:

libvpx needs to be compiled with --enable-vp9-highbitdepth, CONFIG_VP9_HIGHBITDEPTH should be set and the image formats we can use are "Image uses 16bit framebuffer":

VPX_IMG_FMT_I42016    = VPX_IMG_FMT_I420 | VPX_IMG_FMT_HIGHBITDEPTH
VPX_IMG_FMT_I42216    = VPX_IMG_FMT_I422 | VPX_IMG_FMT_HIGHBITDEPTH
VPX_IMG_FMT_I44416    = VPX_IMG_FMT_I444 | VPX_IMG_FMT_HIGHBITDEPTH
VPX_IMG_FMT_I44016    = VPX_IMG_FMT_I440 | VPX_IMG_FMT_HIGHBITDEPTH

I believe those formats store the the YUV channels in the high 10/12 bits of each 16bit value. Wasting quite a bit of space and requiring a CSC step to go from R210 to this format.. sigh.

Note: vpx now also supports alpha channel: VPX_IMG_FMT_HAS_ALPHA.

Also worth considering colorspace bits (#1155): vpx_color_space.


Sun, 19 Feb 2017 06:37:50 GMT - Antoine Martin: milestone changed

Somewhat blocked by rpath issues: #1405


Fri, 28 Apr 2017 04:46:37 GMT - Antoine Martin: status, milestone changed

re-scheduling - the 16-bit per channel reformatting constraint is costly.


Wed, 28 Mar 2018 05:18:05 GMT - Antoine Martin: milestone changed


Wed, 20 Mar 2019 05:06:15 GMT - Antoine Martin: milestone changed

Milestone renamed


Sat, 21 Sep 2019 12:08:19 GMT - Antoine Martin: milestone changed


Wed, 15 Jul 2020 08:32:43 GMT - Antoine Martin: status changed; resolution set

Done in r26980.

Found a new scaling related bug: #2845.

For further reference, see wiki/ImageDepth.


Sat, 23 Jan 2021 05:20:46 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1310