* [poky][PATCH 0/2] Add patches for gstreamer 1.6
@ 2016-01-28 9:02 Yuqing Zhu
2016-01-28 9:02 ` [poky][PATCH 1/2] gstreamer1.0-plugins-bad: Fix memory leak of navigation thread Yuqing Zhu
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Yuqing Zhu @ 2016-01-28 9:02 UTC (permalink / raw)
To: openembedded-core
As gstreamer has been upgraded from 1.6.2 to 1.6.3, and my former patches haven't
been accepted yet, need to recreate the patches based on new recipe.
---gstreamer1.0-plugins-base
Add video crop supporting when convert frame.
---gstreamer1.0-plugins-bad
Fix memory leak of navigation thread.
Yuqing Zhu (2):
gstreamer1.0-plugins-bad: Fix memory leak of navigation thread
gstreamer1.0-plugins-base: Add video crop supporting when convert
frame
...window-fix-memory-leak-of-navigation-thre.patch | 35 +++++
.../gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb | 1 +
...ame-Support-video-crop-when-convert-frame.patch | 143 +++++++++++++++++++++
.../gstreamer/gstreamer1.0-plugins-base_1.6.3.bb | 1 +
4 files changed, 180 insertions(+)
create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch
create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch
--
1.9.1
^ permalink raw reply [flat|nested] 5+ messages in thread* [poky][PATCH 1/2] gstreamer1.0-plugins-bad: Fix memory leak of navigation thread 2016-01-28 9:02 [poky][PATCH 0/2] Add patches for gstreamer 1.6 Yuqing Zhu @ 2016-01-28 9:02 ` Yuqing Zhu 2016-01-28 9:02 ` [poky][PATCH 2/2] gstreamer1.0-plugins-base: Add video crop supporting when convert frame Yuqing Zhu 2016-01-28 12:54 ` [poky][PATCH 0/2] Add patches for gstreamer 1.6 Alexander Kanavin 2 siblings, 0 replies; 5+ messages in thread From: Yuqing Zhu @ 2016-01-28 9:02 UTC (permalink / raw) To: openembedded-core When exit navigation thread, call g_thread_join() to release the resource hold by it. Signed-off-by: Yuqing Zhu <b54851@freescale.com> --- ...window-fix-memory-leak-of-navigation-thre.patch | 35 ++++++++++++++++++++++ .../gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb | 1 + 2 files changed, 36 insertions(+) create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch new file mode 100755 index 0000000..3491a15 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch @@ -0,0 +1,35 @@ +From 95cda7fbcf1a81289d9315c801c8e2b3d896f4cb Mon Sep 17 00:00:00 2001 +From: Haihua Hu <b55597@freescale.com> +Date: Mon, 30 Nov 2015 09:36:09 +0800 +Subject: [PATCH 2/5] [glplugin] glwindow: fix memory leak of navigation + thread + +When exit navigation thread, call g_thread_join() to release +the resource hold by it. + +Upstream-Status: Backport [1.7.1] + +bugzilla URL: https://bugzilla.gnome.org/show_bug.cgi?id=758820 + +Signed-off-by: Haihua Hu <b55597@freescale.com> +--- + gst-libs/gst/gl/gstglwindow.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/gst-libs/gst/gl/gstglwindow.c b/gst-libs/gst/gl/gstglwindow.c +index 44b74ca..42ef296 100644 +--- a/gst-libs/gst/gl/gstglwindow.c ++++ b/gst-libs/gst/gl/gstglwindow.c +@@ -343,6 +343,9 @@ gst_gl_window_finalize (GObject * object) + while (window->nav_alive) { + g_cond_wait (&window->nav_destroy_cond, &window->nav_lock); + } ++ /* release resource hold by navigation thread */ ++ g_thread_join(window->priv->navigation_thread); ++ window->priv->navigation_thread = NULL; + g_mutex_unlock (&window->nav_lock); + } + +-- +1.7.9.5 + diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb index 4b9143f..c51a637 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb @@ -9,6 +9,7 @@ SRC_URI = " \ http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ file://configure-allow-to-disable-libssh2.patch \ file://0001-glimagesink-Downrank-to-marginal.patch \ + file://0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch \ " SRC_URI[md5sum] = "4857adcafe41e4b9b8805cf88303bd55" -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [poky][PATCH 2/2] gstreamer1.0-plugins-base: Add video crop supporting when convert frame 2016-01-28 9:02 [poky][PATCH 0/2] Add patches for gstreamer 1.6 Yuqing Zhu 2016-01-28 9:02 ` [poky][PATCH 1/2] gstreamer1.0-plugins-bad: Fix memory leak of navigation thread Yuqing Zhu @ 2016-01-28 9:02 ` Yuqing Zhu 2016-01-28 12:54 ` [poky][PATCH 0/2] Add patches for gstreamer 1.6 Alexander Kanavin 2 siblings, 0 replies; 5+ messages in thread From: Yuqing Zhu @ 2016-01-28 9:02 UTC (permalink / raw) To: openembedded-core Getting thumbnail will use convertframe to convert video frame to desired video format and size. But haven't process crop meta on the video buffer. Need to add video crop support. Signed-off-by: Yuqing Zhu <b54851@freescale.com> --- ...ame-Support-video-crop-when-convert-frame.patch | 143 +++++++++++++++++++++ .../gstreamer/gstreamer1.0-plugins-base_1.6.3.bb | 1 + 2 files changed, 144 insertions(+) create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch new file mode 100755 index 0000000..096a6f4 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch @@ -0,0 +1,143 @@ +From 5be6ed00aad028d9cbb4e0c63af0be69d335c71e Mon Sep 17 00:00:00 2001 +From: Song Bing <b06498@freescale.com> +Date: Fri, 11 Dec 2015 21:42:00 +0800 +Subject: [PATCH] convertframe: Support video crop when convert frame + +Get thumbnail will user convertframe to convert video frame to +desired video format and size. But haven't process crop meta on +the video buffer. Add support video crop. + +https://bugzilla.gnome.org/show_bug.cgi?id=759329 + +Upstream-Status: Backport [1.7.1] + +--- + gst-libs/gst/video/convertframe.c | 65 +++++++++++++++++++++++++++++++++------ + 1 file changed, 56 insertions(+), 9 deletions(-) + +diff --git a/gst-libs/gst/video/convertframe.c b/gst-libs/gst/video/convertframe.c +index aa9c3d3..942a51e 100644 +--- a/gst-libs/gst/video/convertframe.c ++++ b/gst-libs/gst/video/convertframe.c +@@ -110,12 +110,23 @@ fail: + static GstElement * + build_convert_frame_pipeline (GstElement ** src_element, + GstElement ** sink_element, const GstCaps * from_caps, +- const GstCaps * to_caps, GError ** err) ++ GstVideoCropMeta * cmeta, const GstCaps * to_caps, GError ** err) + { +- GstElement *src = NULL, *csp = NULL, *vscale = NULL; +- GstElement *sink = NULL, *encoder = NULL, *pipeline; ++ GstElement *vcrop = NULL, *csp = NULL, *csp2 = NULL, *vscale = NULL; ++ GstElement *src = NULL, *sink = NULL, *encoder = NULL, *pipeline; ++ GstVideoInfo info; + GError *error = NULL; + ++ if (cmeta) { ++ if (!create_element ("videocrop", &vcrop, &error)) { ++ g_warning ++ ("build_convert_frame_pipeline: Buffer has crop metadata but videocrop element is not found. Cropping will be disabled"); ++ } else { ++ if (!create_element ("videoconvert", &csp2, &error)) ++ goto no_elements; ++ } ++ } ++ + /* videoscale is here to correct for the pixel-aspect-ratio for us */ + GST_DEBUG ("creating elements"); + if (!create_element ("appsrc", &src, &error) || +@@ -133,15 +144,42 @@ build_convert_frame_pipeline (GstElement ** src_element, + + GST_DEBUG ("adding elements"); + gst_bin_add_many (GST_BIN (pipeline), src, csp, vscale, sink, NULL); ++ if (vcrop) ++ gst_bin_add_many (GST_BIN (pipeline), vcrop, csp2, NULL); + + /* set caps */ + g_object_set (src, "caps", from_caps, NULL); ++ if (vcrop) { ++ gst_video_info_from_caps (&info, from_caps); ++ g_object_set (vcrop, "left", cmeta->x, NULL); ++ g_object_set (vcrop, "top", cmeta->y, NULL); ++ g_object_set (vcrop, "right", GST_VIDEO_INFO_WIDTH (&info) - cmeta->width, ++ NULL); ++ g_object_set (vcrop, "bottom", ++ GST_VIDEO_INFO_HEIGHT (&info) - cmeta->height, NULL); ++ GST_DEBUG ("crop meta [x,y,width,height]: %d %d %d %d", cmeta->x, cmeta->y, ++ cmeta->width, cmeta->height); ++ } + g_object_set (sink, "caps", to_caps, NULL); + + /* FIXME: linking is still way too expensive, profile this properly */ +- GST_DEBUG ("linking src->csp"); +- if (!gst_element_link_pads (src, "src", csp, "sink")) +- goto link_failed; ++ if (vcrop) { ++ GST_DEBUG ("linking src->csp2"); ++ if (!gst_element_link_pads (src, "src", csp2, "sink")) ++ goto link_failed; ++ ++ GST_DEBUG ("linking csp2->vcrop"); ++ if (!gst_element_link_pads (csp2, "src", vcrop, "sink")) ++ goto link_failed; ++ ++ GST_DEBUG ("linking vcrop->csp"); ++ if (!gst_element_link_pads (vcrop, "src", csp, "sink")) ++ goto link_failed; ++ } else { ++ GST_DEBUG ("linking src->csp"); ++ if (!gst_element_link_pads (src, "src", csp, "sink")) ++ goto link_failed; ++ } + + GST_DEBUG ("linking csp->vscale"); + if (!gst_element_link_pads_full (csp, "src", vscale, "sink", +@@ -193,8 +231,12 @@ no_elements: + { + if (src) + gst_object_unref (src); ++ if (vcrop) ++ gst_object_unref (vcrop); + if (csp) + gst_object_unref (csp); ++ if (csp2) ++ gst_object_unref (csp2); + if (vscale) + gst_object_unref (vscale); + if (sink) +@@ -209,7 +251,11 @@ no_elements: + no_pipeline: + { + gst_object_unref (src); ++ if (vcrop) ++ gst_object_unref (vcrop); + gst_object_unref (csp); ++ if (csp2) ++ gst_object_unref (csp2); + gst_object_unref (vscale); + gst_object_unref (sink); + +@@ -282,7 +328,8 @@ gst_video_convert_sample (GstSample * sample, const GstCaps * to_caps, + } + + pipeline = +- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, &err); ++ build_convert_frame_pipeline (&src, &sink, from_caps, ++ gst_buffer_get_video_crop_meta (buf), to_caps_copy, &err); + if (!pipeline) + goto no_pipeline; + +@@ -646,8 +693,8 @@ gst_video_convert_sample_async (GstSample * sample, + } + + pipeline = +- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, +- &error); ++ build_convert_frame_pipeline (&src, &sink, from_caps, ++ gst_buffer_get_video_crop_meta (buf), to_caps_copy, &error); + if (!pipeline) + goto no_pipeline; + +-- +2.5.0 + diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb index 95a012e..b9ed3f4 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb @@ -10,6 +10,7 @@ SRC_URI = " \ file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \ file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \ file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \ + file://0005-convertframe-Support-video-crop-when-convert-frame.patch \ " SRC_URI[md5sum] = "3ddde0ad598ef69f58d6a2e87f8b460f" -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [poky][PATCH 0/2] Add patches for gstreamer 1.6 2016-01-28 9:02 [poky][PATCH 0/2] Add patches for gstreamer 1.6 Yuqing Zhu 2016-01-28 9:02 ` [poky][PATCH 1/2] gstreamer1.0-plugins-bad: Fix memory leak of navigation thread Yuqing Zhu 2016-01-28 9:02 ` [poky][PATCH 2/2] gstreamer1.0-plugins-base: Add video crop supporting when convert frame Yuqing Zhu @ 2016-01-28 12:54 ` Alexander Kanavin 2016-01-31 14:13 ` Yuqing Zhu 2 siblings, 1 reply; 5+ messages in thread From: Alexander Kanavin @ 2016-01-28 12:54 UTC (permalink / raw) To: openembedded-core On 01/28/2016 11:02 AM, Yuqing Zhu wrote: > As gstreamer has been upgraded from 1.6.2 to 1.6.3, and my former patches haven't > been accepted yet, need to recreate the patches based on new recipe. The patches have not been accepted because you didn't answer the questions that oe-core maintainers had asked you. Alex ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [poky][PATCH 0/2] Add patches for gstreamer 1.6 2016-01-28 12:54 ` [poky][PATCH 0/2] Add patches for gstreamer 1.6 Alexander Kanavin @ 2016-01-31 14:13 ` Yuqing Zhu 0 siblings, 0 replies; 5+ messages in thread From: Yuqing Zhu @ 2016-01-31 14:13 UTC (permalink / raw) To: Alexander Kanavin, openembedded-core@lists.openembedded.org Hi Alex, Sorry for causing this misunderstanding. Actually I have replied the maintainer's email. And for some rejected patches, I said I would keep them in our internal layer. For these two following patches, Richard said the Backports might be ok, so I was waiting for these two patches' feedback. But I might regenerate a second version patches only with these two patches at that time. That was my inconsideration. Really sorry for this misunderstanding! Please help to review them again, thanks! B.R. Yuqing Zhu -----Original Message----- From: Alexander Kanavin [mailto:alexander.kanavin@linux.intel.com] Sent: Thursday, January 28, 2016 8:55 PM To: openembedded-core@lists.openembedded.org Cc: b54851@freescale.com Subject: Re: [OE-core] [poky][PATCH 0/2] Add patches for gstreamer 1.6 On 01/28/2016 11:02 AM, Yuqing Zhu wrote: > As gstreamer has been upgraded from 1.6.2 to 1.6.3, and my former > patches haven't been accepted yet, need to recreate the patches based on new recipe. The patches have not been accepted because you didn't answer the questions that oe-core maintainers had asked you. Alex ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-01-31 14:28 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-01-28 9:02 [poky][PATCH 0/2] Add patches for gstreamer 1.6 Yuqing Zhu 2016-01-28 9:02 ` [poky][PATCH 1/2] gstreamer1.0-plugins-bad: Fix memory leak of navigation thread Yuqing Zhu 2016-01-28 9:02 ` [poky][PATCH 2/2] gstreamer1.0-plugins-base: Add video crop supporting when convert frame Yuqing Zhu 2016-01-28 12:54 ` [poky][PATCH 0/2] Add patches for gstreamer 1.6 Alexander Kanavin 2016-01-31 14:13 ` Yuqing Zhu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox