From 2954813b86fba0ee85d1aa0dd37ff95ce1858b2d Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Thu, 19 Mar 2015 10:48:15 +0000 Subject: [PATCH] audio,video: use gst_segment_is_equal instead of memcmp memcmp will blindly compare the reserved fields, as well as any padding the compiler may choose to sprinkle in GstSegment. Fixes valgrind complaints in unit tests, as well as some found via https://bugzilla.gnome.org/show_bug.cgi?id=738216 --- gst-libs/gst/audio/gstaudiodecoder.c | 4 ++-- gst-libs/gst/video/gstvideodecoder.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c index a4a184bb76..36ba2a82c5 100644 --- a/gst-libs/gst/audio/gstaudiodecoder.c +++ b/gst-libs/gst/audio/gstaudiodecoder.c @@ -622,7 +622,7 @@ gst_audio_decoder_push_event (GstAudioDecoder * dec, GstEvent * event) dec->output_segment = seg; dec->priv->in_out_segment_sync = - (memcmp (&dec->input_segment, &seg, sizeof (seg)) == 0); + gst_segment_is_equal (&dec->input_segment, &seg); GST_AUDIO_DECODER_STREAM_UNLOCK (dec); break; } @@ -1113,7 +1113,7 @@ apply_pending_events (GstAudioDecoder * dec) dec->output_segment = seg; dec->priv->in_out_segment_sync = - (memcmp (&dec->input_segment, &seg, sizeof (seg)) == 0); + gst_segment_is_equal (&dec->input_segment, &seg); GST_AUDIO_DECODER_STREAM_UNLOCK (dec); break; } diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index 6a6105f7b7..3f30656079 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -909,7 +909,7 @@ gst_video_decoder_push_event (GstVideoDecoder * decoder, GstEvent * event) GST_VIDEO_DECODER_STREAM_LOCK (decoder); decoder->output_segment = segment; decoder->priv->in_out_segment_sync = - (memcmp (&decoder->input_segment, &segment, sizeof (segment)) == 0); + gst_segment_is_equal (&decoder->input_segment, &segment); decoder->priv->last_timestamp_out = GST_CLOCK_TIME_NONE; GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); break; @@ -2093,7 +2093,7 @@ gst_video_decoder_flush_parse (GstVideoDecoder * dec, gboolean at_eos) if (segment.format == GST_FORMAT_TIME) { dec->output_segment = segment; dec->priv->in_out_segment_sync = - (memcmp (&dec->input_segment, &segment, sizeof (segment)) == 0); + gst_segment_is_equal (&dec->input_segment, &segment); } } dec->priv->pending_events =