rtphdrext-rfc6464: Put max level if the audio is beyond it
authorOlivier CrĂȘte <olivier.crete@collabora.com>
Wed, 18 Aug 2021 23:36:07 +0000 (19:36 -0400)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 30 Aug 2021 17:01:15 +0000 (17:01 +0000)
Otherwise, it just fails to add the extension, which makes no
sense. And our level element produces levels higher than 127 in some
cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>

gst/rtpmanager/gstrtphdrext-rfc6464.c

index 3aefa3c..1dc1f0f 100644 (file)
@@ -219,6 +219,7 @@ gst_rtp_header_extension_rfc6464_write (GstRTPHeaderExtension * ext,
     GstBuffer * output, guint8 * data, gsize size)
 {
   GstAudioLevelMeta *meta;
+  guint level;
 
   g_return_val_if_fail (size >=
       gst_rtp_header_extension_rfc6464_get_max_size (ext, NULL), -1);
@@ -231,10 +232,11 @@ gst_rtp_header_extension_rfc6464_write (GstRTPHeaderExtension * ext,
     return 0;
   }
 
-  if (meta->level > 127) {
-    GST_WARNING_OBJECT (ext, "level from meta is higher than 127: %d",
+  level = meta->level;
+  if (level > 127) {
+    GST_LOG_OBJECT (ext, "level from meta is higher than 127: %d, cropping",
         meta->level);
-    return -1;
+    level = 127;
   }
 
   GST_LOG_OBJECT (ext, "writing ext (level: %d voice: %d)", meta->level,