mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-08 23:42:28 +00:00
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:
parent
896c49cf49
commit
cb75eda13b
1 changed files with 10 additions and 1 deletions
|
@ -5740,9 +5740,18 @@ check_field (GQuark field_id, const GValue * value, gpointer user_data)
|
||||||
|
|
||||||
if (g_strcmp0 (name, "video/x-h264") == 0 ||
|
if (g_strcmp0 (name, "video/x-h264") == 0 ||
|
||||||
g_strcmp0 (name, "video/x-h265") == 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) {
|
if (g_strcmp0 (g_quark_to_string (field_id), "codec_data") == 0) {
|
||||||
return TRUE;
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue