After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 721835 - videodecoder: do not drop events when releasing frames
videodecoder: do not drop events when releasing frames
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.2.2
Other All
: Normal normal
: 1.2.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-01-08 23:10 UTC by Aleix Conchillo Flaqué
Modified: 2014-01-16 05:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
with GST_DEBUG=4 (206.46 KB, text/x-log)
2014-01-08 23:16 UTC, Aleix Conchillo Flaqué
  Details
videodecoder logs for the same problem (14.94 KB, text/plain)
2014-01-09 12:55 UTC, Eric
  Details
set segments to GST_FORMAT_TIME when resetting (1.29 KB, patch)
2014-01-09 19:53 UTC, Aleix Conchillo Flaqué
none Details | Review
process segment events before chaining (2.36 KB, patch)
2014-01-09 23:25 UTC, Aleix Conchillo Flaqué
needs-work Details | Review
videodecoder: do not lose events when dropping frames (1.11 KB, patch)
2014-01-11 04:32 UTC, Thiago Sousa Santos
committed Details | Review
tests: videodecoder: check that segment events are not dropped (3.64 KB, patch)
2014-01-11 04:32 UTC, Thiago Sousa Santos
committed Details | Review

Description Aleix Conchillo Flaqué 2014-01-08 23:10:29 UTC
The client pipeline is something like:

rtspsrc location=... latency=200 drop-on-latency=true ! decodebin ! videoconvert ! ximagesink

Sometimes I am getting this repeatedly:

(lt-basic-test:35942): GStreamer-CRITICAL **: gst_segment_clip: assertion 'segment->format == format' failed

It seems that the video decoder starts pushing frame before we get a segment.

See the stack trace and the prints of the variables at the frame in question.

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 140736875980544 (LWP 35984)

  • #0 g_logv
    at gmessages.c line 1019
  • #1 g_log
    at gmessages.c line 1059
  • #2 gst_segment_clip
    at gstsegment.c line 575
  • #3 gst_video_decoder_clip_and_push_buf
    at gstvideodecoder.c line 2546
  • #4 gst_video_decoder_finish_frame
    at gstvideodecoder.c line 2513
  • #5 gst_ffmpegviddec_video_frame
    at gstavviddec.c line 1313
  • #6 gst_ffmpegviddec_frame
    at gstavviddec.c line 1370
  • #7 gst_ffmpegviddec_handle_frame
    at gstavviddec.c line 1490
  • #8 gst_video_decoder_decode_frame
    at gstvideodecoder.c line 2773
  • #9 gst_video_decoder_chain_forward
    at gstvideodecoder.c line 1755
  • #10 gst_video_decoder_chain
    at gstvideodecoder.c line 2002
  • #11 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #12 gst_pad_push_data
    at gstpad.c line 3941
  • #13 gst_base_transform_chain
    at gstbasetransform.c line 2237
  • #14 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #15 gst_pad_push_data
    at gstpad.c line 3941
  • #16 gst_base_parse_push_frame
    at gstbaseparse.c line 2289
  • #17 gst_base_parse_chain
    at gstbaseparse.c line 2767
  • #18 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #19 gst_pad_push_data
    at gstpad.c line 3941
  • #20 gst_rtp_base_depayload_push
    at gstrtpbasedepayload.c line 608
  • #21 gst_rtp_base_depayload_chain
    at gstrtpbasedepayload.c line 356
  • #22 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #23 gst_pad_push_data
    at gstpad.c line 3941
  • #24 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #25 gst_pad_push_data
    at gstpad.c line 3941
  • #26 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #27 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #28 gst_pad_push_data
    at gstpad.c line 3941
  • #29 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #30 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #31 gst_pad_push_data
    at gstpad.c line 3941
  • #32 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #33 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #34 gst_pad_push_data
    at gstpad.c line 3941
  • #35 gst_rtp_pt_demux_chain
    at gstrtpptdemux.c line 444
  • #36 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #37 gst_pad_push_data
    at gstpad.c line 3941
  • #38 pop_and_push_next
    at gstrtpjitterbuffer.c line 2326
  • #39 handle_next_buffer
    at gstrtpjitterbuffer.c line 2397
  • #40 gst_rtp_jitter_buffer_loop
    at gstrtpjitterbuffer.c line 2724
  • #41 gst_task_func
    at gsttask.c line 316
  • #42 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #43 g_thread_proxy
    at gthread.c line 798
  • #44 start_thread
    at pthread_create.c line 308
  • #45 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #46 ??
  • #3 gst_video_decoder_clip_and_push_buf
    at gstvideodecoder.c line 2546

(gdb) p *segment
$2 = {flags = GST_SEGMENT_FLAG_NONE, rate = 1, applied_rate = 1, format = GST_FORMAT_UNDEFINED, base = 0, offset = 0, start = 0, stop = 18446744073709551615, time = 0, position = 0, 
  duration = 18446744073709551615, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}
Comment 1 Aleix Conchillo Flaqué 2014-01-08 23:16:34 UTC
Created attachment 265798 [details]
with GST_DEBUG=4
Comment 2 Aleix Conchillo Flaqué 2014-01-08 23:22:06 UTC
It always happens when this error shows up:

0:00:00.410876184 36813 0x7f18fc001e30 INFO              GST_STATES gstelement.c:2233:_priv_gst_element_state_changed:<decodebin0> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.411473829 36813 0x7f18fc001e30 INFO               GST_EVENT gstevent.c:628:gst_event_new_caps: creating caps event video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1
0:00:00.420487459 36813 0x7f18fc001e30 ERROR                  libav :0:: Missing reference picture
0:00:00.420551846 36813 0x7f18fc001e30 ERROR                  libav :0:: decode_slice_header error
0:00:00.420837758 36813 0x7f18fc001e30 INFO                   libav :0:: concealing 8160 DC, 8160 AC, 8160 MV errors
0:00:00.476357212 36813 0x7f18fc001e30 INFO           basetransform gstbasetransform.c:1335:gst_base_transform_setcaps:<capsfilter0> reuse caps


The server (gst-rtsp-server based) has a dynamic payloader. May be that's something to look at.
Comment 3 Aleix Conchillo Flaqué 2014-01-09 08:35:03 UTC
Now that I look at the description, it seems I missed to paste a bunch of text. 

Just in case it's not obvious from the other comments and to keep it short: the playback is streaming H.264 video (generated by x264enc) from a gst-rtsp-server based server. The server uses dynamic payloading.
Comment 4 Eric 2014-01-09 12:55:37 UTC
Created attachment 265839 [details]
videodecoder logs for the same problem

I can experiment the same behavior while seeking using GST_FORMAT_TIME from my source.
Comment 5 Eric 2014-01-09 12:57:53 UTC
It seems the gst_segment_clip fails because the videodecoder's output_segment format is GST_FORMAT_UNDEFINED
Comment 6 Aleix Conchillo Flaqué 2014-01-09 18:30:27 UTC
(In reply to comment #4)
> Created an attachment (id=265839) [details]
> videodecoder logs for the same problem
> 
> I can experiment the same behavior while seeking using GST_FORMAT_TIME from my
> source.

Your bug seems exactly bug 681634.

Same function is called and same error occurs, but it seems to me different ways to trigger it.
Comment 7 Aleix Conchillo Flaqué 2014-01-09 19:53:35 UTC
Created attachment 265872 [details] [review]
set segments to GST_FORMAT_TIME when resetting

This fixes it for me.
Comment 8 Nicolas Dufresne (ndufresne) 2014-01-09 20:13:52 UTC
I can reproduce this too, though resetting the segment to TIME format only hides the issue. We should have received the segment before we received any new encoded buffers, which is way before we reach the point we need to push a buffer.
Comment 9 Thiago Sousa Santos 2014-01-09 21:11:48 UTC
This also seems to be related to https://bugzilla.gnome.org/show_bug.cgi?id=721666

I'm working on a patch for it, should be available soon.
Comment 10 Aleix Conchillo Flaqué 2014-01-09 23:25:06 UTC
Created attachment 265885 [details] [review]
process segment events before chaining

A similar patch for bug 721666 which also seems to work

  https://bugzilla.gnome.org/attachment.cgi?id=265712&action=edit

No UT or comments added yet.
Comment 11 Aleix Conchillo Flaqué 2014-01-10 02:44:07 UTC
(In reply to comment #10)
> Created an attachment (id=265885) [details] [review]
> process segment events before chaining
> 
> A similar patch for bug 721666 which also seems to work
> 
>   https://bugzilla.gnome.org/attachment.cgi?id=265712&action=edit
> 

Similar to this one, sorry.

  https://bugzilla.gnome.org/attachment.cgi?id=265711&action=edit

The difference is that the processing of the events is done in the chain function.
Comment 12 Sebastian Dröge (slomo) 2014-01-10 08:29:54 UTC
Comment on attachment 265885 [details] [review]
process segment events before chaining

Doing the processing in the chain function is not ideal as we should only apply the output segment on the output side of the decoder. You could now apply the new output segment already while the decoder is still working on the previous segment and outputting buffers for that. Does Thiago's patch fix it for your case too?
Comment 13 Thiago Sousa Santos 2014-01-10 13:22:26 UTC
Can you try the latest patch at https://bugzilla.gnome.org/show_bug.cgi?id=721666 please?
Comment 14 Eric 2014-01-10 13:26:36 UTC
(In reply to comment #13)
> Can you try the latest patch at
> https://bugzilla.gnome.org/show_bug.cgi?id=721666 please?

Is there a way to apply the patch to 1.2.2 version of gstreamer?
It seems I can't play my media with HEAD build...
Comment 15 Thiago Sousa Santos 2014-01-10 13:28:42 UTC
(In reply to comment #14)
> (In reply to comment #13)
> > Can you try the latest patch at
> > https://bugzilla.gnome.org/show_bug.cgi?id=721666 please?
> 
> Is there a way to apply the patch to 1.2.2 version of gstreamer?
> It seems I can't play my media with HEAD build...

The patch for videodecoder applies cleanly on 1.2.2, the other one is just an unit test, so you don't need it.
Comment 16 Eric 2014-01-10 13:50:38 UTC
(In reply to comment #15)
> (In reply to comment #14)
> > (In reply to comment #13)
> > > Can you try the latest patch at
> > > https://bugzilla.gnome.org/show_bug.cgi?id=721666 please?
> > 
> > Is there a way to apply the patch to 1.2.2 version of gstreamer?
> > It seems I can't play my media with HEAD build...
> 
> The patch for videodecoder applies cleanly on 1.2.2, the other one is just an
> unit test, so you don't need it.

How should I apply it? I tried downloading and aply it with patch and git apply with no chance?

patch give this error : 

|diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
|index de39b8f..5d41534 100644
|--- a/gst-libs/gst/video/gstvideodecoder.c
|+++ b/gst-libs/gst/video/gstvideodecoder.c
--------------------------
File to patch: gst-libs/gst/video/gstvideodecoder.c
patching file gst-libs/gst/video/gstvideodecoder.c
Hunk #1 succeeded at 1868 with fuzz 2 (offset -70 lines).
patch unexpectedly ends in middle of line


and git :
error: patch failed: gst-libs/gst/video/gstvideodecoder.c:1938
error: gst-libs/gst/video/gstvideodecoder.c: patch does not apply
Comment 17 Thiago Sousa Santos 2014-01-10 14:06:44 UTC
Did the patch download successfully? The 'patch unexpectedly ends in middle of line' error is very weird. I applied it here using 'git am file.patch' and it went cleanly.
Comment 18 Eric 2014-01-10 14:35:09 UTC
(In reply to comment #17)
> Did the patch download successfully? The 'patch unexpectedly ends in middle of
> line' error is very weird. I applied it here using 'git am file.patch' and it
> went cleanly.

I used 'git apply';
Tried 'git am' but doesn't seem to apply.
i think it might be due to the fact I juste downloaded the source for the tar.gz, not from git.
Comment 19 Thiago Sousa Santos 2014-01-10 14:38:16 UTC
(In reply to comment #18)
> (In reply to comment #17)
> > Did the patch download successfully? The 'patch unexpectedly ends in middle of
> > line' error is very weird. I applied it here using 'git am file.patch' and it
> > went cleanly.
> 
> I used 'git apply';
> Tried 'git am' but doesn't seem to apply.
> i think it might be due to the fact I juste downloaded the source for the
> tar.gz, not from git.

In this case try:
patch -p1 < thepatchfile.patch

(from the extracted source directory)
Comment 20 Eric 2014-01-10 15:25:10 UTC
my apology. I used 'save' from the browser to I had some piece of html in the patch file.

So I could apply the patch, but I still have the message : 

(GStreamerPlayer3:23837): GStreamer-CRITICAL **: gst_segment_clip: assertion `segment->format == format' failed

Maybe I can provide some more logs?
Comment 21 Thiago Sousa Santos 2014-01-10 15:37:34 UTC
Yes, please. Is there an easy way to reproduce the issue?
Comment 22 Aleix Conchillo Flaqué 2014-01-10 19:03:38 UTC
(In reply to comment #13)
> Can you try the latest patch at
> https://bugzilla.gnome.org/show_bug.cgi?id=721666 please?

I still can reproduce it (see below). I think the patch only solves the problem for reverse playback. In this bug there's no reverse playback involved (if I understand what reverse playback means, rate < 0?).

My patch in comment 10 I think solved the issue for both cases, but as Sebastian pointed out in comment 12 that patch is not correct.

-----

:00:00.393383184 12882 0x7f0394001e30 INFO               GST_EVENT gstevent.c:628:gst_event_new_caps: creating caps event video/x-raw, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fra
0:00:00.400924137 12882 0x7f0394001e30 ERROR                  libav :0:: Missing reference picture
0:00:00.400963067 12882 0x7f0394001e30 ERROR                  libav :0:: decode_slice_header error
0:00:00.401251100 12882 0x7f0394001e30 INFO                   libav :0:: concealing 8160 DC, 8160 AC, 8160 MV errors
0:00:00.457880494 12882 0x7f0394001e30 INFO           basetransform gstbasetransform.c:1335:gst_base_transform_setcaps:<capsfilter0> reuse caps

(gst-launch-1.0:12882): GStreamer-CRITICAL **: gst_segment_clip: assertion 'segment->format == format' failed

(gst-launch-1.0:12882): GStreamer-CRITICAL **: gst_segment_clip: assertion 'segment->format == format' failed

(gst-launch-1.0:12882): GStreamer-CRITICAL **: gst_segment_clip: assertion 'segment->format == format' failed

(gst-launch-1.0:12882): GStreamer-CRITICAL **: gst_segment_clip: assertion 'segment->format == format' failed

(gst-launch-1.0:12882): GStreamer-CRITICAL **: gst_segment_clip: assertion 'segment->format == format' failed

(gst-launch-1.0:12882): GStreamer-CRITICAL **: gst_segment_clip: assertion 'segment->format == format' failed

(gst-launch-1.0:12882): GStreamer-CRITICAL **: gst_segment_clip: assertion 'segment->format == format' failed
Comment 23 Thiago Sousa Santos 2014-01-11 04:32:15 UTC
Created attachment 265987 [details] [review]
videodecoder: do not lose events when dropping frames

Finally understood what is possibly happening here.

1) after the seek, the videodecoder is flushed
2) videodecoder gets a new segment
3) videodecoder receives its first buffer and attaches the segment event to it
4) avdec_h264 tries to decode this buffer, but it is not a keyframe and it can't
   be decoded, so it skips it
5) videodecoder receives more buffers and still can't decode any of those buffers
6) videodecoder finally gets a keyframe and is now able to decode this buffer,
   after decoding it, avdec_h264 goes over the list of pending frames and drops
   those that won't be useful anymore. The segment event is now lost
7) assertion!

Let's hope this is the case. Could you please test this patch?
Comment 24 Thiago Sousa Santos 2014-01-11 04:32:25 UTC
Created attachment 265988 [details] [review]
tests: videodecoder: check that segment events are not dropped

Adds a test that simulates a scenario where the first buffers after
a segment can't be decoded and the decoder asks for those frames
to be released. The videodecoder base class should make sure that
the events attached to those first buffers are pushed even if the
buffers aren't going to be.
Comment 25 Aleix Conchillo Flaqué 2014-01-11 05:52:13 UTC
(In reply to comment #23)
> Created an attachment (id=265987) [details] [review]
> videodecoder: do not lose events when dropping frames
> 
> Finally understood what is possibly happening here.
> 
> 1) after the seek, the videodecoder is flushed
> 2) videodecoder gets a new segment
> 3) videodecoder receives its first buffer and attaches the segment event to it
> 4) avdec_h264 tries to decode this buffer, but it is not a keyframe and it
> can't
>    be decoded, so it skips it
> 5) videodecoder receives more buffers and still can't decode any of those
> buffers
> 6) videodecoder finally gets a keyframe and is now able to decode this buffer,
>    after decoding it, avdec_h264 goes over the list of pending frames and drops
>    those that won't be useful anymore. The segment event is now lost
> 7) assertion!
> 
> Let's hope this is the case. Could you please test this patch?

Yes, this all sounds great. As I mentioned in comment 2 it only happens when first frames can't be decoded.

I see if I can try it over the weekend but I don't promise anything as my failing test case is at work.

Thanks for the work!
Comment 26 Sebastian Dröge (slomo) 2014-01-11 10:38:41 UTC
Review of attachment 265987 [details] [review]:

While this generally makes sense, why isn't the pending_events code in gst_video_decoder_prepare_finish_frame() taking care of this already? That's why it is there :)
Comment 27 Thiago Sousa Santos 2014-01-11 12:36:55 UTC
(In reply to comment #26)
> Review of attachment 265987 [details] [review]:
> 
> While this generally makes sense, why isn't the pending_events code in
> gst_video_decoder_prepare_finish_frame() taking care of this already? That's
> why it is there :)

It is because the frame that has the segment event never gets to _prepare_finish_frame, libav decoder will call _release_frame that just discards the frame and everything with it. IIRC if it called _drop_frame it would go into _prepare_finish_frame before dropping, but it has other side effects like updating the position and stuff like that.

Anyway I guess it is dangerous that the base class allows those events to be dropped in _release_frame.
Comment 28 Sebastian Dröge (slomo) 2014-01-11 12:40:38 UTC
Comment on attachment 265987 [details] [review]
videodecoder: do not lose events when dropping frames

Makes sense, get it in :) Also thanks for creating a test for this too
Comment 29 RajuB 2014-01-13 05:01:32 UTC
I am also seeing similar issue. There are two patches given.

https://bugzilla.gnome.org/attachment.cgi?id=265987
https://bugzilla.gnome.org/review?bug=721835&attachment=265988

Should I apply both patches.?
Comment 30 Eric 2014-01-13 08:42:40 UTC
the latest patch fixes the issue I had thx!
Comment 31 RajuB 2014-01-13 08:50:20 UTC
Eric,
1. You meant this patch https://bugzilla.gnome.org/attachment.cgi?id=265987 ??
2. Is this patch given to 1.2.1 version??
3. I see line number mismatch between the given patch and the code downloaded from here  http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.2.2.tar.xz.
Am I missing any other previous patches??

Thank you for your help. Good day.
Comment 32 Eric 2014-01-13 09:14:10 UTC
(In reply to comment #31)
> Eric,
> 1. You meant this patch https://bugzilla.gnome.org/attachment.cgi?id=265987 ??
Yes, this one

> 2. Is this patch given to 1.2.1 version??

I applied it on 1.2.2

> 3. I see line number mismatch between the given patch and the code downloaded
> from here 
> http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.2.2.tar.xz.
> Am I missing any other previous patches??

I have also applied the patch for reverse playback, but this doesn't do anything as I am playing forward, and thus the code isn't called.

> 
> Thank you for your help. Good day.
Comment 33 Thiago Sousa Santos 2014-01-13 09:22:40 UTC
Patches pushed to master.

commit 561a4fff158c6ab718b574d39bb7e5383129fb23
Author: Thiago Santos <ts.santos@sisa.samsung.com>
Date:   Sat Jan 11 01:14:19 2014 -0300

    tests: videodecoder: check that segment events are not dropped
    
    Adds a test that simulates a scenario where the first buffers after
    a segment can't be decoded and the decoder asks for those frames
    to be released. The videodecoder base class should make sure that
    the events attached to those first buffers are pushed even if the
    buffers aren't going to be.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=721835

commit 672cda66db65174489e315ad8937f8e0ea7c7d81
Author: Thiago Santos <ts.santos@sisa.samsung.com>
Date:   Sat Jan 11 01:24:44 2014 -0300

    videodecoder: do not lose events when dropping frames
    
    Events must be persisted after a frame is dropped to avoid
    losing obligatory information for the stream.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=721835
Comment 34 Thiago Sousa Santos 2014-01-13 11:14:05 UTC
Pushed to 1.2

commit cb49884b6aae52adb08b0349775386e39af37cfe
Author: Thiago Santos <ts.santos@sisa.samsung.com>
Date:   Sat Jan 11 01:14:19 2014 -0300

    tests: videodecoder: check that segment events are not dropped
    
    Adds a test that simulates a scenario where the first buffers after
    a segment can't be decoded and the decoder asks for those frames
    to be released. The videodecoder base class should make sure that
    the events attached to those first buffers are pushed even if the
    buffers aren't going to be.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=721835

commit 2acde77b6c642985862ce735d6865009a01505ba
Author: Thiago Santos <ts.santos@sisa.samsung.com>
Date:   Sat Jan 11 01:24:44 2014 -0300

    videodecoder: do not lose events when dropping frames
    
    Events must be persisted after a frame is dropped to avoid
    losing obligatory information for the stream.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=721835
Comment 35 Aleix Conchillo Flaqué 2014-01-13 19:19:21 UTC
Just wanted to confirm that this also fixes things for me. Thanks!
Comment 36 Aleix Conchillo Flaqué 2014-01-16 00:45:20 UTC
(In reply to comment #34)
> Pushed to 1.2
> 

Any reason why all these patches didn't make it to master?
Comment 37 Thiago Sousa Santos 2014-01-16 01:25:43 UTC
(In reply to comment #36)
> (In reply to comment #34)
> > Pushed to 1.2
> > 
> 
> Any reason why all these patches didn't make it to master?

They were pushed both to master and 1.2 branch
Comment 38 Aleix Conchillo Flaqué 2014-01-16 05:44:59 UTC
(In reply to comment #37)
> (In reply to comment #36)
> > (In reply to comment #34)
> > > Pushed to 1.2
> > > 
> > 
> > Any reason why all these patches didn't make it to master?
> 
> They were pushed both to master and 1.2 branch

Yes, I see now, sorry about that. I pulled from another master branch that was not updated and I was sure it was the right one... didn't double check or check cgit. Anyway, sorry again.