summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaju Babannavar <raju.babannavar@gmail.com>2020-12-21 14:06:53 +0530
committerTim-Philipp Müller <tim@centricular.com>2021-01-13 13:19:56 +0000
commitc85d6f2429d8c4167f03fe41d13bbbb1a5ecaa63 (patch)
tree3e704615af6b842b26a9e38acb3b13882d540e0f
parent2afc46b5b724276d1e02eb91accdc6fa2badac38 (diff)
downloadgstreamer-plugins-bad-c85d6f2429d8c4167f03fe41d13bbbb1a5ecaa63.tar.gz
dvbsuboverlay: Add support for dynamic resolution update.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1487 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1954>
-rw-r--r--gst/dvbsuboverlay/dvb-sub.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/gst/dvbsuboverlay/dvb-sub.c b/gst/dvbsuboverlay/dvb-sub.c
index 3c056326e..6a0b322c0 100644
--- a/gst/dvbsuboverlay/dvb-sub.c
+++ b/gst/dvbsuboverlay/dvb-sub.c
@@ -1139,6 +1139,7 @@ _dvb_sub_parse_display_definition_segment (DvbSub * dvb_sub, guint8 * buf,
gint buf_size)
{
int dds_version, info_byte;
+ int display_width, display_height;
if (buf_size < 5)
return -1;
@@ -1146,14 +1147,23 @@ _dvb_sub_parse_display_definition_segment (DvbSub * dvb_sub, guint8 * buf,
info_byte = *buf++;
dds_version = info_byte >> 4;
+ display_width = GST_READ_UINT16_BE (buf) + 1;
+ buf += 2;
+ display_height = GST_READ_UINT16_BE (buf) + 1;
+ buf += 2;
+
+ if ((display_width != dvb_sub->display_def.display_width)
+ || (display_height != dvb_sub->display_def.display_height)) {
+ dvb_sub->display_def.display_width = display_width;
+ dvb_sub->display_def.display_height = display_height;
+
+ dvb_sub->display_def.version = -1;
+ }
+
if (dvb_sub->display_def.version == dds_version)
return 0; /* already have this display definition version */
dvb_sub->display_def.version = dds_version;
- dvb_sub->display_def.display_width = GST_READ_UINT16_BE (buf) + 1;
- buf += 2;
- dvb_sub->display_def.display_height = GST_READ_UINT16_BE (buf) + 1;
- buf += 2;
dvb_sub->display_def.window_flag = info_byte & 1 << 3;