|
 |
228e4d |
From 106a8d40c33ce0bf927054a7ea4e9c6fe6f341d5 Mon Sep 17 00:00:00 2001
|
|
 |
228e4d |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolan.mcnamara@collabora.com>
|
|
 |
228e4d |
Date: Fri, 3 Nov 2023 14:20:07 +0000
|
|
 |
228e4d |
Subject: [PATCH] escape url passed to gstreamer
|
|
 |
228e4d |
|
|
 |
228e4d |
Change-Id: I3c93ee34800cc8563370f75ef3ef6f8a9220e6ec
|
|
 |
228e4d |
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158894
|
|
 |
228e4d |
Tested-by: Jenkins
|
|
 |
228e4d |
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
 |
228e4d |
(cherry picked from commit f41dcadf6492a6ffd32696d50f818e44355b9ad9)
|
|
 |
228e4d |
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159583
|
|
 |
228e4d |
|
|
 |
228e4d |
erAck: backported to 7.1.8.1
|
|
 |
228e4d |
erAck: backported to 6.0.6.1
|
|
 |
228e4d |
---
|
|
 |
228e4d |
avmedia/source/gstreamer/gstframegrabber.cxx | 15 ++++++++++-----
|
|
 |
228e4d |
1 file changed, 10 insertions(+), 5 deletions(-)
|
|
 |
228e4d |
|
|
 |
228e4d |
diff --git a/avmedia/source/gstreamer/gstframegrabber.cxx b/avmedia/source/gstreamer/gstframegrabber.cxx
|
|
 |
228e4d |
index db2f203..a525e9b 100644
|
|
 |
228e4d |
--- a/avmedia/source/gstreamer/gstframegrabber.cxx
|
|
 |
228e4d |
+++ b/avmedia/source/gstreamer/gstframegrabber.cxx
|
|
 |
228e4d |
@@ -56,18 +56,17 @@ void FrameGrabber::disposePipeline()
|
|
 |
228e4d |
FrameGrabber::FrameGrabber( const OUString &rURL ) :
|
|
 |
228e4d |
FrameGrabber_BASE()
|
|
 |
228e4d |
{
|
|
 |
228e4d |
- gchar *pPipelineStr;
|
|
 |
228e4d |
- pPipelineStr = g_strdup_printf(
|
|
 |
228e4d |
#ifdef AVMEDIA_GST_0_10
|
|
 |
228e4d |
+ const char pPipelineStr[] =
|
|
 |
228e4d |
"uridecodebin uri=%s ! ffmpegcolorspace ! videoscale ! appsink "
|
|
 |
228e4d |
"name=sink caps=\"video/x-raw-rgb,format=RGB,pixel-aspect-ratio=1/1,"
|
|
 |
228e4d |
"bpp=(int)24,depth=(int)24,endianness=(int)4321,"
|
|
 |
228e4d |
- "red_mask=(int)0xff0000, green_mask=(int)0x00ff00, blue_mask=(int)0x0000ff\"",
|
|
 |
228e4d |
+ "red_mask=(int)0xff0000, green_mask=(int)0x00ff00, blue_mask=(int)0x0000ff\"";
|
|
 |
228e4d |
#else
|
|
 |
228e4d |
+ const char pPipelineStr[] =
|
|
 |
228e4d |
"uridecodebin uri=%s ! videoconvert ! videoscale ! appsink "
|
|
 |
228e4d |
- "name=sink caps=\"video/x-raw,format=RGB,pixel-aspect-ratio=1/1\"",
|
|
 |
228e4d |
+ "name=sink caps=\"video/x-raw,format=RGB,pixel-aspect-ratio=1/1\"";
|
|
 |
228e4d |
#endif
|
|
 |
228e4d |
- OUStringToOString( rURL, RTL_TEXTENCODING_UTF8 ).getStr() );
|
|
 |
228e4d |
|
|
 |
228e4d |
GError *pError = nullptr;
|
|
 |
228e4d |
mpPipeline = gst_parse_launch( pPipelineStr, &pError );
|
|
 |
228e4d |
@@ -78,6 +77,12 @@ FrameGrabber::FrameGrabber( const OUString &rURL ) :
|
|
 |
228e4d |
}
|
|
 |
228e4d |
|
|
 |
228e4d |
if( mpPipeline ) {
|
|
 |
228e4d |
+
|
|
 |
228e4d |
+ if (GstElement *pUriDecode = gst_bin_get_by_name(GST_BIN(mpPipeline), "source"))
|
|
 |
228e4d |
+ g_object_set(pUriDecode, "uri", OUStringToOString(rURL, RTL_TEXTENCODING_UTF8).getStr(), nullptr);
|
|
 |
228e4d |
+ else
|
|
 |
228e4d |
+ g_warning("Missing 'source' element in gstreamer pipeline");
|
|
 |
228e4d |
+
|
|
 |
228e4d |
// pre-roll
|
|
 |
228e4d |
switch( gst_element_set_state( mpPipeline, GST_STATE_PAUSED ) ) {
|
|
 |
228e4d |
case GST_STATE_CHANGE_FAILURE:
|
|
 |
228e4d |
--
|
|
 |
228e4d |
2.44.0
|
|
 |
228e4d |
|