isomp4/qtmux: allow renegotiating when tier / level / profile change

Those are carried either in codec_data or in-band SPS (for avc3),
and it is OK for those to change, though decoders obviously need
to support it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047>
This commit is contained in:
Mathieu Duponchelle 2021-08-10 00:51:36 +02:00 committed by GStreamer Marge Bot
parent 896c49cf49
commit cb75eda13b

View file

@ -5740,9 +5740,18 @@ check_field (GQuark field_id, const GValue * value, gpointer user_data)
if (g_strcmp0 (name, "video/x-h264") == 0 ||
g_strcmp0 (name, "video/x-h265") == 0) {
/* we support muxing multiple codec_data structures */
/* We support muxing multiple codec_data structures, and the new SPS
* will contain updated tier / level / profiles, which means we do
* not need to fail renegotiation when those change.
*/
if (g_strcmp0 (g_quark_to_string (field_id), "codec_data") == 0) {
return TRUE;
} else if (g_strcmp0 (g_quark_to_string (field_id), "tier") == 0) {
return TRUE;
} else if (g_strcmp0 (g_quark_to_string (field_id), "level") == 0) {
return TRUE;
} else if (g_strcmp0 (g_quark_to_string (field_id), "profile") == 0) {
return TRUE;
}
}