[Webkit-unassigned] [Bug 205117] [GStreamer][MSE] Player stalling too soon

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Dec 15 16:42:43 PST 2019


https://bugs.webkit.org/show_bug.cgi?id=205117

--- Comment #1 from Alicia Boya García <aboya at igalia.com> ---
This bug is caused by the way some multi-threaded decoder elements like avdec_h264 are implemented: When a h264 frame is received (in the decoder chain function):

1. The new h264 frame is added to a queue that is read from one of many threads that does the actual decoding.
2. Frames that have finished decoding in these threads also go to a queue. The decoder element uses this moment to poll this queue and push downstream *all* the decoded frames in the queue. This is also done when a EOS event is received.

The downside of this design is that a case where there is an interruption of data flow (in the MSE case: no appends), there is a point where there are a lot of decoded frames but they will never go downstream because there is no code getting notified or polling the decoded frame queue.

0:00:02.390591895 582428      0x1d7dde0 TRACE              webkitmse MediaPlayerPrivateGStreamerMSE.cpp:148:debugDataProbe: avdec_h264-0:sink buffer: 0x7fc1c4bc9ea0, pts 0:00:03.000000000, dts 0:00:02.958333333, dur 0:00:00.041666666, size 1024, offset 170374, offset_end none, flags 0x2400
0:00:02.392881899 582428      0x1d7dde0 TRACE              webkitmse MediaPlayerPrivateGStreamerMSE.cpp:148:debugDataProbe: avdec_h264-0:src buffer: 0x7fc1c4bcf900, pts 0:00:01.333333333, dts 99:99:99.999999999, dur 0:00:00.041666666, size 464000, offset none, offset_end none, flags 0x0

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20191216/d32b34a8/attachment-0001.htm>


More information about the webkit-unassigned mailing list