diff options
author | Mathieu Duponchelle <mathieu@centricular.com> | 2021-08-10 00:51:36 +0200 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-08-20 00:16:43 +0000 |
commit | cb75eda13b20b5633546e40e7d8fcc0d479ee901 (patch) | |
tree | 44081ed8c8d29013dafdb2bee5eb1d41fda0daf5 | |
parent | 896c49cf4959815badcb5dd538a5d522a1f1629e (diff) | |
download | gstreamer-plugins-good-cb75eda13b20b5633546e40e7d8fcc0d479ee901.tar.gz |
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>
-rw-r--r-- | gst/isomp4/gstqtmux.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index eb55e8059..bae5ff727 100644 --- a/gst/isomp4/gstqtmux.c +++ b/gst/isomp4/gstqtmux.c @@ -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; } } |