GNOME Bugzilla – Bug 762542
matroskademux: CRITICAL when seeking on matroska files without buffers
Last modified: 2016-04-14 17:42:57 UTC
Created attachment 321988 [details] [review] Fix a memory leak matroskademux will raise a CRITICAL when performing a seek and the matroskafile lacks frames. If the seek arrives at the pad, it will silently return FALSE, but if the seek is sent to the demuxer directly a CRITICIAL is seen: CRITICAL **: gst_matroska_demux_search_pos: assertion 'current_state == GST_MATROSKA_READ_STATE_DATA' failed This will be the case even if the application waits for async-done (the pipeline will also be eos after that) and then sends a flushing seek. Attached a patch that makes the _send_event() function do the same sanity check as if the seek entered through a pad. Also found a memory leak that I fixed.
Created attachment 321989 [details] [review] Sanity check for seek event
commit a5691af31972df64350bbd52914fce1c3a7b5c0c Author: Linus Svensson <linussn@axis.com> Date: Tue Feb 23 15:57:18 2016 +0100 matroska-demux: Don't handle seek until ready https://bugzilla.gnome.org/show_bug.cgi?id=762542 commit 1a3986d0162b8c54107832f8e3e9e5416d78e52c Author: Linus Svensson <linussn@axis.com> Date: Tue Feb 23 15:55:13 2016 +0100 matroska-demux: Unref seek event https://bugzilla.gnome.org/show_bug.cgi?id=762542