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
This commit is contained in:
Vincent Penquerc'h 2015-03-19 10:48:15 +00:00
parent 964ea678da
commit 2954813b86
2 changed files with 4 additions and 4 deletions

View file

@ -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;
}

View file

@ -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 =