basetextoverlay: Fix overlay never rendering again if width reaches 1px

If text width ever reached 1px, for example after resizing the output window, the overlay would stop rendering
and never return again. The 1px condition itself does not seem to make much sense here anyway.

This was a chain of events: width reached 1, so the composition was set to NULL. Then, after resizing the output window,
push_frame() was called but would not attempt to renegotiate because composition is NULL. This caused the width/height
to never be updated again, as that only happens during negotiation, so the overlay was gone for good.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5623>
This commit is contained in:
Piotr Brzeziński 2023-11-07 00:27:57 +01:00 committed by Tim-Philipp Müller
parent 6d81b5bd85
commit 3dcb02ac64

View file

@ -1656,7 +1656,7 @@ gst_base_text_overlay_set_composition (GstBaseTextOverlay * overlay)
gint xpos, ypos;
GstVideoOverlayRectangle *rectangle;
if (overlay->text_image && overlay->text_width != 1) {
if (overlay->text_image) {
gint render_width, render_height;
gst_base_text_overlay_get_pos (overlay, &xpos, &ypos);