diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2018-10-01 19:13:39 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2018-10-01 19:21:12 +0300 |
commit | 1d271f9a15b1a814035fd77e05d6e35b90825b93 (patch) | |
tree | 4c167419a1195496bdad455baa66967c3c66cbf4 | |
parent | e9579466a3eadd3457f12ba89e05e55b10d2bb9b (diff) | |
download | gst-plugins-base-1d271f9a15b1a814035fd77e05d6e35b90825b93.tar.gz gst-plugins-base-1d271f9a15b1a814035fd77e05d6e35b90825b93.tar.xz |
basetextoverlay: Append our rectangle to the upstream composition, not the other way around
Upstream is supposed to be painted first, and only then our rectangle.
-rw-r--r-- | ext/pango/gstbasetextoverlay.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c index c37705fbf..ded822a33 100644 --- a/ext/pango/gstbasetextoverlay.c +++ b/ext/pango/gstbasetextoverlay.c @@ -1668,25 +1668,17 @@ gst_base_text_overlay_set_composition (GstBaseTextOverlay * overlay) if (overlay->composition) gst_video_overlay_composition_unref (overlay->composition); - overlay->composition = gst_video_overlay_composition_new (rectangle); - gst_video_overlay_rectangle_unref (rectangle); - if (overlay->upstream_composition) { - guint num_overlays = - gst_video_overlay_composition_n_rectangles - (overlay->upstream_composition); - guint i; - - for (i = 0; i < num_overlays; i++) { - GstVideoOverlayRectangle *rectangle; - rectangle = - gst_video_overlay_composition_get_rectangle - (overlay->upstream_composition, i); - gst_video_overlay_composition_add_rectangle (overlay->composition, - rectangle); - } + overlay->composition = + gst_video_overlay_composition_copy (overlay->upstream_composition); + gst_video_overlay_composition_add_rectangle (overlay->composition, + rectangle); + } else { + overlay->composition = gst_video_overlay_composition_new (rectangle); } + gst_video_overlay_rectangle_unref (rectangle); + } else if (overlay->composition) { gst_video_overlay_composition_unref (overlay->composition); overlay->composition = NULL; |