summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2018-10-01 19:13:39 +0300
committerSebastian Dröge <sebastian@centricular.com>2018-10-01 19:21:12 +0300
commit1d271f9a15b1a814035fd77e05d6e35b90825b93 (patch)
tree4c167419a1195496bdad455baa66967c3c66cbf4
parente9579466a3eadd3457f12ba89e05e55b10d2bb9b (diff)
downloadgst-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.c24
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;