videodecoder: keep event order
Since events are pushed out in reverse order, newer events need to
be added at the front of event lists
https://bugzilla.gnome.org/show_bug.cgi?id=794192
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
index a003082..324e23d 100644
--- a/gst-libs/gst/video/gstvideodecoder.c
+++ b/gst-libs/gst/video/gstvideodecoder.c
@@ -2629,7 +2629,7 @@
GstVideoCodecFrame *tmp = l->data;
if (tmp->events) {
- events = g_list_concat (events, tmp->events);
+ events = g_list_concat (tmp->events, events);
tmp->events = NULL;
}
@@ -2640,7 +2640,7 @@
if (dropping || !decoder->priv->output_state) {
/* Push before the next frame that is not dropped */
decoder->priv->pending_events =
- g_list_concat (decoder->priv->pending_events, events);
+ g_list_concat (events, decoder->priv->pending_events);
} else {
gst_video_decoder_push_event_list (decoder, decoder->priv->pending_events);
decoder->priv->pending_events = NULL;
@@ -2822,7 +2822,7 @@
}
if (frame->events) {
dec->priv->pending_events =
- g_list_concat (dec->priv->pending_events, frame->events);
+ g_list_concat (frame->events, dec->priv->pending_events);
frame->events = NULL;
}
GST_VIDEO_DECODER_STREAM_UNLOCK (dec);