qtdemux: support seeking of CENC encrypted streams
authorAlex Ashley <bugzilla@ashley-family.net>
Tue, 9 Feb 2016 17:17:09 +0000 (17:17 +0000)
committerThiago Santos <thiagoss@osg.samsung.com>
Wed, 20 Apr 2016 15:19:51 +0000 (12:19 -0300)
commit0c4cc1453357fa456f94119ce218fc900f77db56
tree3fa3de5bd9b25a3c1a0fddcf8768edc18bf1b001
parent76506190e9632e6d4b3736eeb559fe4e19e3a6d1
qtdemux: support seeking of CENC encrypted streams

When playing a stream that has been protected by DASH CENC, playback
will fail if a seek is performed. Qtdemux produces the error "stream
is protected using cenc, but no cenc protection system information
has been found" and playback stops.

The problem is that gst_qtdemux_reset() gets called as part of the
FLUSH during a seek. This function frees the protection_system_ids
array. When gst_qtdemux_configure_protected_caps() is called after the
seek has completed, the protection_system_ids array is empty and
qtdemux is unable to create the correct output caps for the protected
stream.

This commit changes it to only free the protection_system_ids on
hard resets.

https://bugzilla.gnome.org/show_bug.cgi?id=761787
gst/isomp4/qtdemux.c