After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 776446 - rawvideoparse internal data stream error with bt2020 colorimetry if resolution is not 4k
rawvideoparse internal data stream error with bt2020 colorimetry if resolutio...
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-12-23 15:37 UTC by Florent Thiéry
Modified: 2018-11-03 14:02 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
fix caps negotiation failing due to default colorimetry (1.23 KB, patch)
2017-03-21 15:19 UTC, Vincent Penquerc'h
none Details | Review
fix assert on large width/height (999 bytes, patch)
2017-03-22 11:00 UTC, Vincent Penquerc'h
committed Details | Review
fix caps negotiation failing due to default colorimetry (6.74 KB, patch)
2017-03-22 14:30 UTC, Vincent Penquerc'h
none Details | Review
fix caps negotiation failing due to default colorimetry (8.67 KB, patch)
2017-03-27 13:55 UTC, Vincent Penquerc'h
none Details | Review
fix caps negotiation failing due to default colorimetry (17.49 KB, patch)
2017-03-30 10:07 UTC, Vincent Penquerc'h
none Details | Review

Description Florent Thiéry 2016-12-23 15:37:18 UTC
gst-launch-1.0 filesrc location=/dev/zero blocksize=3110400 num-buffers=1000 ! rawvideoparse width=1920 height=1080 framerate=30 format=nv12 ! "video/x-raw, format=(string)NV12, colorimetry=(string)bt2020" ! fakesink -v
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data stream error.

The following works okay:
gst-launch-1.0 filesrc location=/dev/zero blocksize=12441600 num-buffers=1000 ! rawvideoparse width=3840 height=2160 framerate=30 format=nv12 ! "video/x-raw, format=(string)NV12, colorimetry=(string)bt2020" ! fakesink -v
Comment 1 Vincent Penquerc'h 2017-03-21 15:19:54 UTC
Created attachment 348419 [details] [review]
fix caps negotiation failing due to default colorimetry
Comment 2 Sebastian Dröge (slomo) 2017-03-21 20:19:46 UTC
Comment on attachment 348419 [details] [review]
fix caps negotiation failing due to default colorimetry

It seems completely intentional and expected that this fails. However there should instead be a property on rawvideoparse to set colorimetry and chroma-site for having control over that instead of just always taking the default for the resolution.
Comment 3 Vincent Penquerc'h 2017-03-22 10:57:51 UTC
These are arbitrary AFAICT. Just set as default without any looking at any data, and just ending up preventing caps intersection for no reason.
I'll change it to use properties though. It just seemed nice to work with caps negotiation.
Comment 4 Vincent Penquerc'h 2017-03-22 11:00:29 UTC
Created attachment 348466 [details] [review]
fix assert on large width/height

I just noticed I'd uploaded just one of the patches.
Comment 5 Vincent Penquerc'h 2017-03-22 14:30:31 UTC
Created attachment 348494 [details] [review]
fix caps negotiation failing due to default colorimetry

The erroring pipeline in the report now works if you add " colorimetry=bt2020" in the properties.
Comment 6 Sebastian Dröge (slomo) 2017-03-27 07:45:17 UTC
Review of attachment 348494 [details] [review]:

It might make sense to have some kind of "none" mode where it is just not added to the caps and the default handling happens

::: gst/rawparse/gstrawvideoparse.c
@@ +330,3 @@
+  g_object_class_install_property (object_class,
+      PROP_COLORIMETRY,
+      g_param_spec_string ("colorimetry", "Colorimetry", "Colorimetry",

This is a product of enums, not a string: GstVideoColorRange, GstVideoColorMatrix, GstVideoTransferFunction, GstVideoColorPrimaries

@@ +336,3 @@
+      PROP_CHROMA_SITE,
+      g_param_spec_string ("chroma-site", "Chroma site", "Chroma site",
+          DEFAULT_CHROMA_SITE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)

This is an enum: GstVideoChromaSite
Comment 7 Vincent Penquerc'h 2017-03-27 10:31:30 UTC
How would you want the colorimetry property made ? 4 different properties for each of the subtypes, and error out if 1, 2, or 3 are set ?
Comment 8 Vincent Penquerc'h 2017-03-27 13:55:25 UTC
Created attachment 348803 [details] [review]
fix caps negotiation failing due to default colorimetry

Here's the chroma site property made into an enum, I'll do the colorimetry one once you said how you want it done.
Comment 9 Vincent Penquerc'h 2017-03-30 10:07:39 UTC
Created attachment 348982 [details] [review]
fix caps negotiation failing due to default colorimetry

Well, I've done it this way then.
Comment 10 GStreamer system administrator 2018-11-03 14:02:22 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/500.