diff options
author | Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> | 2020-07-01 17:54:01 +0200 |
---|---|---|
committer | GStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2020-07-01 20:02:35 +0000 |
commit | afdde9fa402c6cce7b996497209fff27f74943b2 (patch) | |
tree | 908478eabe4f2e07052ab58f897f2b8644a0c433 /gst | |
parent | 01896c11d2d124fcb485e2d4417e06d5ef54f9fa (diff) | |
download | gstreamer-plugins-bad-afdde9fa402c6cce7b996497209fff27f74943b2.tar.gz |
videoparsers: Fix parsing ATSC bar data
It rejected the case of all bars being disabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1394>
Diffstat (limited to 'gst')
-rw-r--r-- | gst/videoparsers/gstvideoparseutils.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gst/videoparsers/gstvideoparseutils.c b/gst/videoparsers/gstvideoparseutils.c index 5bb7dc32f..20dae767c 100644 --- a/gst/videoparsers/gstvideoparseutils.c +++ b/gst/videoparsers/gstvideoparseutils.c @@ -220,6 +220,7 @@ gst_video_parse_user_data (GstElement * elt, GstVideoParseUserData * user_data, user_data->bar_data_size = bar_size; user_data->has_bar_data = TRUE; user_data->field = field; + GST_DEBUG_OBJECT (elt, "Bar data, %u bytes", bar_size); break; default: GST_DEBUG_OBJECT (elt, @@ -318,7 +319,7 @@ gst_video_parse_utils_parse_bar (const guint8 * data, gsize size, guint8 temp; int i = 0; guint8 bar_flags[4]; - guint16 bar_vals[4]; + guint16 bar_vals[4] = { 0, 0, 0, 0 }; GstBitReader bar_tender; /* there must be at least one byte, and not more than GST_VIDEO_BAR_MAX_BYTES bytes */ @@ -353,10 +354,10 @@ gst_video_parse_utils_parse_bar (const guint8 * data, gsize size, /* bars are signaled in pairs: either top/bottom or left/right, but not both */ if ((bar_flags[0] != bar_flags[1]) || (bar_flags[2] != bar_flags[3])) return FALSE; - if ((bar_flags[0] && bar_flags[1]) == (bar_flags[2] && bar_flags[3])) + if (bar_flags[0] && bar_flags[2]) return FALSE; - bar->is_letterbox = bar_flags[0] && bar_flags[1]; + bar->is_letterbox = bar_flags[0]; if (bar->is_letterbox) { bar->bar_data[0] = bar_vals[0]; bar->bar_data[1] = bar_vals[1]; |