Package: rust-gst-plugin-gtk4
Version: 0.14.2-1

Right now only the `gtk_v4_14` feature is enabled, implicitly via `dmabuf`. This results in YCbCr formats not being supported natively, making apps like Snapshot (the Gnome Camera app) not benefiting from performance and HDR related improvements done in GTK 4.20.

Fixing this should only require adding gtk_v4_20 to the features list.

This can hopefully be done in the 0.14.3 update :)

Corresponding Fedora issue: https://bugzilla.redhat.com/show_bug.cgi?id=2408887

STR:
 - run `gst-inspect-1.0 gtk4paintablesink`
 - check the supported formats in the "Pad Templates" section

Current results: Only RGB formats are supported

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:DMABuf, meta:GstVideoOverlayComposition)
                 format: DMA_DRM
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(memory:DMABuf)
                 format: DMA_DRM
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition)
                 format: { (string)RGBA, (string)RGB }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
         texture-target: 2D
      video/x-raw(memory:GLMemory)
                 format: { (string)RGBA, (string)RGB }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
         texture-target: 2D
      video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition)
format: { (string)BGRx, (string)xRGB, (string)RGBx, (string)xBGR, (string)BGRA, (string)ARGB, (string)RGBA, (string)ABGR, (string)RGB, (string)BGR }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(meta:GstVideoOverlayComposition)
format: { (string)BGRx, (string)xRGB, (string)RGBx, (string)xBGR, (string)BGRA, (string)ARGB, (string)RGBA, (string)ABGR, (string)RGB, (string)BGR }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw
format: { (string)BGRx, (string)xRGB, (string)RGBx, (string)xBGR, (string)BGRA, (string)ARGB, (string)RGBA, (string)ABGR, (string)RGB, (string)BGR }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

Expected results: YCbCr formats are supported

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:DMABuf, meta:GstVideoOverlayComposition)
                 format: DMA_DRM (gchararray)
                  width: [ 1, 2147483647 ] (GstIntRange)
                 height: [ 1, 2147483647 ] (GstIntRange)
              framerate: [ 0/1, 2147483647/1 ] (GstFractionRange)
      video/x-raw(memory:DMABuf)
                 format: DMA_DRM (gchararray)
                  width: [ 1, 2147483647 ] (GstIntRange)
                 height: [ 1, 2147483647 ] (GstIntRange)
              framerate: [ 0/1, 2147483647/1 ] (GstFractionRange)
      video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition)
                 format: { (string)RGBA, (string)RGB } (GstValueList)
                  width: [ 1, 2147483647 ] (GstIntRange)
                 height: [ 1, 2147483647 ] (GstIntRange)
              framerate: [ 0/1, 2147483647/1 ] (GstFractionRange)
         texture-target: 2D (gchararray)
      video/x-raw(memory:GLMemory)
                 format: { (string)RGBA, (string)RGB } (GstValueList)
                  width: [ 1, 2147483647 ] (GstIntRange)
                 height: [ 1, 2147483647 ] (GstIntRange)
              framerate: [ 0/1, 2147483647/1 ] (GstFractionRange)
         texture-target: 2D (gchararray)
      video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition)
format: { (string)YUY2, (string)YVYU, (string)UYVY, (string)VYUY, (string)NV12, (string)NV21, (string)NV16, (string)NV61, (string)NV24, (string)P010_10LE, (string)P010_10BE, (string)P012_LE, (string)P012_BE, (string)P016_LE, (string)P016_BE, (string)YUV9, (string)YVU9, (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)Y444, (string)I420_10LE, (string)I420_10BE, (string)I422_10LE, (string)I422_10BE, (string)Y444_10LE, (string)Y444_10BE, (string)I420_12LE, (string)I420_12BE, (string)I422_12LE, (string)I422_12BE, (string)Y444_12LE, (string)Y444_12BE, (string)Y444_16LE, (string)Y444_16BE, (string)BGRx, (string)xRGB, (string)RGBx, (string)xBGR, (string)BGRA, (string)ARGB, (string)RGBA, (string)ABGR, (string)RGB, (string)BGR } (GstValueList)
                  width: [ 1, 2147483647 ] (GstIntRange)
                 height: [ 1, 2147483647 ] (GstIntRange)
              framerate: [ 0/1, 2147483647/1 ] (GstFractionRange)
      video/x-raw(meta:GstVideoOverlayComposition)
format: { (string)YUY2, (string)YVYU, (string)UYVY, (string)VYUY, (string)NV12, (string)NV21, (string)NV16, (string)NV61, (string)NV24, (string)P010_10LE, (string)P010_10BE, (string)P012_LE, (string)P012_BE, (string)P016_LE, (string)P016_BE, (string)YUV9, (string)YVU9, (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)Y444, (string)I420_10LE, (string)I420_10BE, (string)I422_10LE, (string)I422_10BE, (string)Y444_10LE, (string)Y444_10BE, (string)I420_12LE, (string)I420_12BE, (string)I422_12LE, (string)I422_12BE, (string)Y444_12LE, (string)Y444_12BE, (string)Y444_16LE, (string)Y444_16BE, (string)BGRx, (string)xRGB, (string)RGBx, (string)xBGR, (string)BGRA, (string)ARGB, (string)RGBA, (string)ABGR, (string)RGB, (string)BGR } (GstValueList)
                  width: [ 1, 2147483647 ] (GstIntRange)
                 height: [ 1, 2147483647 ] (GstIntRange)
              framerate: [ 0/1, 2147483647/1 ] (GstFractionRange)
      video/x-raw
format: { (string)YUY2, (string)YVYU, (string)UYVY, (string)VYUY, (string)NV12, (string)NV21, (string)NV16, (string)NV61, (string)NV24, (string)P010_10LE, (string)P010_10BE, (string)P012_LE, (string)P012_BE, (string)P016_LE, (string)P016_BE, (string)YUV9, (string)YVU9, (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)Y444, (string)I420_10LE, (string)I420_10BE, (string)I422_10LE, (string)I422_10BE, (string)Y444_10LE, (string)Y444_10BE, (string)I420_12LE, (string)I420_12BE, (string)I422_12LE, (string)I422_12BE, (string)Y444_12LE, (string)Y444_12BE, (string)Y444_16LE, (string)Y444_16BE, (string)BGRx, (string)xRGB, (string)RGBx, (string)xBGR, (string)BGRA, (string)ARGB, (string)RGBA, (string)ABGR, (string)RGB, (string)BGR } (GstValueList)
                  width: [ 1, 2147483647 ] (GstIntRange)
                 height: [ 1, 2147483647 ] (GstIntRange)
              framerate: [ 0/1, 2147483647/1 ] (GstFractionRange)

Best regards,
Robert Mader

Reply via email to