Title: [294586] releases/WebKitGTK/webkit-2.36/Source/WebCore
- Revision
- 294586
- Author
- ape...@igalia.com
- Date
- 2022-05-20 15:00:19 -0700 (Fri, 20 May 2022)
Log Message
Merge r294243 - REGRESSION(r294104): [GStreamer][VideoCapture] Webcam raw streams may hang up the video capture pipeline
https://bugs.webkit.org/show_bug.cgi?id=240456
Patch by Loïc Le Page <llep...@igalia.com> on 2022-05-16
Reviewed by Philippe Normand.
When capturing a raw stream from a webcam, the pipeline may hang up because the decodebin3 cannot fix the upstream caps.
The webcam capsfilter should not only specify the captured mime-type (video/x-raw) but also the capture image dimensions.
Manually tested.
* platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.36/Source/WebCore/ChangeLog (294585 => 294586)
--- releases/WebKitGTK/webkit-2.36/Source/WebCore/ChangeLog 2022-05-20 21:59:13 UTC (rev 294585)
+++ releases/WebKitGTK/webkit-2.36/Source/WebCore/ChangeLog 2022-05-20 22:00:19 UTC (rev 294586)
@@ -1,3 +1,17 @@
+2022-05-16 Loïc Le Page <llep...@igalia.com>
+
+ REGRESSION(r294104): [GStreamer][VideoCapture] Webcam raw streams may hang up the video capture pipeline
+ https://bugs.webkit.org/show_bug.cgi?id=240456
+
+ Reviewed by Philippe Normand.
+
+ When capturing a raw stream from a webcam, the pipeline may hang up because the decodebin3 cannot fix the upstream caps.
+ The webcam capsfilter should not only specify the captured mime-type (video/x-raw) but also the capture image dimensions.
+
+ Manually tested.
+
+ * platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
+
2022-05-15 Philippe Normand <ph...@igalia.com>
REGRESSION(r294104): [GStreamer] getUserMedia broken
Modified: releases/WebKitGTK/webkit-2.36/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp (294585 => 294586)
--- releases/WebKitGTK/webkit-2.36/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp 2022-05-20 21:59:13 UTC (rev 294585)
+++ releases/WebKitGTK/webkit-2.36/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp 2022-05-20 22:00:19 UTC (rev 294586)
@@ -317,6 +317,9 @@
if (*width >= selector->stopCondition.width && *height >= selector->stopCondition.height
&& *frameRate >= selector->stopCondition.frameRate) {
+ selector->maxWidth = *width;
+ selector->maxHeight = *height;
+ selector->maxFrameRate = *frameRate;
selector->mimeType = gst_structure_get_name(structure);
selector->format = gst_structure_get_string(structure, "format");
return FALSE;
@@ -333,7 +336,8 @@
return TRUE;
}), &selector);
- auto caps = adoptGRef(gst_caps_new_empty_simple(selector.mimeType));
+ auto caps = adoptGRef(gst_caps_new_simple(selector.mimeType, "width", G_TYPE_INT, selector.maxWidth,
+ "height", G_TYPE_INT, selector.maxHeight, nullptr));
// Workaround for https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1793.
if (selector.format)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes