qtdemux: only transform protected caps once
authorAlex Ashley <bugzilla@ashley-family.net>
Tue, 9 Feb 2016 13:17:00 +0000 (13:17 +0000)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 17 Feb 2016 15:04:25 +0000 (17:04 +0200)
commit97f6f7c71348dc49b32183f83c1000379ead2b77
tree30511ff3a6748195aa44d5556b3b9f21cb9a8c78
parentf2f31ec50f08d24fc8859b382a0f895ff330248f
qtdemux: only transform protected caps once

Commit 7873bede3134b15e5066e8d14e54d1f5054d2063
(https://bugzilla.gnome.org/show_bug.cgi?id=760774) changed the
behaviour of qtdemux to call gst_qtdemux_configure_stream() for
every new moof.

When playing a protected stream, gst_qtdemux_configure_stream()
calls gst_qtdemux_configure_protected_caps(). The
gst_qtdemux_configure_protected_caps() function takes the original
media format, puts this in a field called "original-media-type"
and then changes the caps to "application/x-cenc".

The gst_qtdemux_configure_protected_caps() did not handle the case
of being called multiple times, causing it to incorrectly set the
caps. The second call was causing the caps to be set to:

    application/x-cenc, original-media-type"application/x-cenc"

This commit makes gst_qtdemux_configure_protected_caps() check that
the caps have already been transformed, so that it only gets
changed once.

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