From 6d60b52cae3aba8e4f7c8ecf95f1e83cf5869018 Mon Sep 17 00:00:00 2001 From: Gilbok Lee Date: Tue, 15 Sep 2020 16:25:49 +0900 Subject: [PATCH] adaptivedemux/mpegdemux : Fix coverity issue (Missing unlock) Change-Id: I51fea48a0d00b2a38e136e03fa5f7b3a537440da --- gst-libs/gst/adaptivedemux/gstadaptivedemux.c | 5 ++++- gst/mpegdemux/gstmpegdemux.c | 9 ++++++++- packaging/gst-plugins-bad.spec | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c index f8ad42a15..ebf26aa97 100644 --- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c +++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c @@ -1008,6 +1008,9 @@ gst_adaptive_demux_handle_message (GstBin * bin, GstMessage * msg) if (stream == NULL) { GST_WARNING_OBJECT (demux, "Failed to locate stream for errored element"); +#ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION + GST_MANIFEST_UNLOCK (demux); +#endif break; } } @@ -2620,7 +2623,7 @@ gst_adaptive_demux_stream_push_buffer (GstAdaptiveDemuxStream * stream, GstEvent *pending_caps = NULL, *pending_segment = NULL, *pending_tags = NULL; GList *pending_events = NULL; - /* FIXME : + /* FIXME : * This is duplicating *exactly* the same thing as what is done at the beginning * of _src_chain if starting_fragment is TRUE */ if (stream->first_fragment_buffer) { diff --git a/gst/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c index cbcfb79d6..2cc024ea2 100644 --- a/gst/mpegdemux/gstmpegdemux.c +++ b/gst/mpegdemux/gstmpegdemux.c @@ -773,7 +773,7 @@ gst_ps_demux_handle_dvd_event (GstPsDemux * demux, GstEvent * event) /* Create a video pad to ensure have it before emit no more pads */ (void) gst_ps_demux_get_stream (demux, 0xe0, ST_VIDEO_MPEG2); - /* Read out the languages for audio streams and request each one that + /* Read out the languages for audio streams and request each one that * is present */ for (i = 0; i < MAX_DVD_AUDIO_STREAMS; i++) { gint stream_format; @@ -1281,7 +1281,11 @@ gst_ps_demux_handle_seek_pull (GstPsDemux * demux, GstEvent * event) if (flush || seeksegment.position != demux->src_segment.position) { /* Do the actual seeking */ if (!gst_ps_demux_do_seek (demux, &seeksegment)) { +#ifdef TIZEN_FEATURE_MPEGDEMUX_MODIFICATION + goto seek_error; +#else return FALSE; +#endif } } @@ -1346,6 +1350,9 @@ no_scr_rate: seek_error: { GST_WARNING_OBJECT (demux, "couldn't perform seek"); +#ifdef TIZEN_FEATURE_MPEGDEMUX_MODIFICATION + GST_PAD_STREAM_UNLOCK (demux->sinkpad); +#endif gst_event_unref (event); return FALSE; } diff --git a/packaging/gst-plugins-bad.spec b/packaging/gst-plugins-bad.spec index bab10eacb..0ebdb4e3b 100644 --- a/packaging/gst-plugins-bad.spec +++ b/packaging/gst-plugins-bad.spec @@ -4,7 +4,7 @@ Name: gst-plugins-bad Version: 1.16.2 -Release: 2 +Release: 3 Summary: GStreamer Streaming-Media Framework Plug-Ins License: LGPL-2.0+ Group: Multimedia/Framework @@ -83,6 +83,7 @@ export CFLAGS+=" -Wall -g -fPIC\ -DTIZEN_FEATURE_ADAPTIVE_MODIFICATION\ -DTIZEN_FEATURE_TSDEMUX_MODIFICATION\ -DTIZEN_FEATURE_OALSINK_MODIFICATION\ + -DTIZEN_FEATURE_MPEGDEMUX_MODIFICATION\ -DTIZEN_FEATURE_UPSTREAM\ -fstack-protector-strong\ -Wl,-z,relro\ -- 2.34.1