webrtc_source_private: Fix caps for OPUS codec 48/319248/1 accepted/tizen/unified/20250210.160157 accepted/tizen/unified/x/20250212.043852
authorSangchul Lee <sc11.lee@samsung.com>
Thu, 6 Feb 2025 08:47:07 +0000 (17:47 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Thu, 6 Feb 2025 08:48:18 +0000 (17:48 +0900)
opus selection menu is also added to webrtc_test
for testing webrtc_media_packet_source_set_format().

[Version] 1.1.46
[Issue Type] Bug fix

Change-Id: Ia932a134b15554e99fe917705835c8b086f9cc06
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
packaging/capi-media-webrtc.spec
src/webrtc_source_private.c
test/webrtc_test.c
test/webrtc_test_menu.c

index 8c4026f5e7476b6d8e4fe082f10d48ea8f518e5f..57e083cb3fc3eb9c41788787b316beada4c28633 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    1.1.45
+Version:    1.1.46
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index f9af92b6ac57d4b53e60151f5fb5239b69d420b7..22ad6845115d6ef9122c48b7762292321dedee6c 100644 (file)
@@ -123,8 +123,12 @@ GstCaps *_get_caps_from_encoded_audio_media_type(const char *media_type, int cha
                        "channels", G_TYPE_INT, channels,
                        NULL);
 
-       if (!strcmp(media_type, MEDIA_TYPE_AUDIO_OPUS) ||
-               !strcmp(media_type, MEDIA_TYPE_AUDIO_VORBIS))
+       if (!strcmp(media_type, MEDIA_TYPE_AUDIO_OPUS))
+               return gst_caps_new_simple(media_type,
+                       "channel-mapping-family", G_TYPE_INT, 0,
+                       NULL);
+
+       if (!strcmp(media_type, MEDIA_TYPE_AUDIO_VORBIS))
                return gst_caps_new_simple(media_type, NULL, NULL);
 
        LOG_ERROR_IF_REACHED("invalid media_type(%s)", media_type);
index 8384ac894d3d62f614d06dc15a53886e3da47d38..232ac446a5dd98231643cd4f6fed681ffb862475 100644 (file)
@@ -658,9 +658,11 @@ static int __create_formats(media_format_mimetype_e type, media_format_h *format
 
        if (type & MEDIA_FORMAT_AUDIO) {
                ret = media_format_set_audio_mime(*format, type);
-               ret |= media_format_set_audio_channel(*format, AUDIO_CHANNEL);
-               ret |= media_format_set_audio_samplerate(*format, AUDIO_SAMPLERATE);
-               ret |= media_format_set_audio_bit(*format, 16);
+               if (type != MEDIA_FORMAT_OPUS) {
+                       ret |= media_format_set_audio_channel(*format, AUDIO_CHANNEL);
+                       ret |= media_format_set_audio_samplerate(*format, AUDIO_SAMPLERATE);
+                       ret |= media_format_set_audio_bit(*format, 16);
+               }
                if (ret != MEDIA_FORMAT_ERROR_NONE) {
                        g_print("failed to set audio format\n");
                        goto error;
@@ -710,9 +712,12 @@ static void _webrtc_media_packet_source_set_format(int index, unsigned int sourc
                type = MEDIA_FORMAT_PCM_S16LE;
                break;
        case 4:
-               type = MEDIA_FORMAT_H264_SP;
+               type = MEDIA_FORMAT_OPUS;
                break;
        case 5:
+               type = MEDIA_FORMAT_H264_SP;
+               break;
+       case 6:
                type = MEDIA_FORMAT_VP8;
                break;
        default:
index 16b2d17fc88a9dfa44c4bf608a852547fbdc2a87..9804a8c8f596567c97c0a17e9fc2ac4cbd6e4d09 100644 (file)
@@ -475,7 +475,7 @@ void display_menu_webrtc_media_source(void)
                if (get_appdata()->input_count == 0)
                        g_print("*** input source id.\n");
                else if (get_appdata()->input_count == 1)
-                       g_print("*** input media format.(1:I420 2:NV12 3:PCM_S16LE 4:H264 5:VP8)\n");
+                       g_print("*** input media format.(1:I420 2:NV12 3:PCM_S16LE 4:OPUS 5:H264 6:VP8)\n");
                break;
        case CURRENT_STATUS_START_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE:
                g_print("*** input media packet source id to start pushing packet.\n");