]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[core] Add switch_core_media_get_engine() and switch_core_media_get_codec() functions 2108/head
authorJakub Karolczyk <jakub.karolczyk@signalwire.com>
Fri, 9 Jun 2023 18:25:25 +0000 (18:25 +0000)
committerJakub Karolczyk <jakub.karolczyk@signalwire.com>
Fri, 9 Jun 2023 18:25:25 +0000 (18:25 +0000)
src/include/switch_core_media.h
src/switch_core_media.c

index 8694a0bc88a68bb003b1ca56ffe8cb1a69792829..1c1c321cb361efae0d4bbb3c9b16227cf721ebbb 100644 (file)
@@ -399,6 +399,10 @@ SWITCH_DECLARE(void) switch_core_media_set_smode(switch_core_session_t *session,
 SWITCH_DECLARE(void) switch_core_media_set_resolveice(switch_bool_t resolve_ice);
 SWITCH_DECLARE(switch_bool_t) switch_core_media_has_resolveice(void);
 
+typedef struct switch_rtp_engine_s switch_rtp_engine_t;
+SWITCH_DECLARE(switch_rtp_engine_t *) switch_core_media_get_engine(switch_core_session_t *session, int media_type);
+SWITCH_DECLARE(switch_codec_t*) switch_core_media_get_codec(switch_core_session_t *session, switch_media_type_t type);
+
 SWITCH_END_EXTERN_C
 #endif
 /* For Emacs:
index 912d5a501239181b43a01ff18d10cf013ca69450..ae5dbf6d45094714a3af9e099af8b763d01d49bd 100644 (file)
@@ -110,7 +110,7 @@ struct switch_rtp_text_factory_s {
 };
 
 
-typedef struct switch_rtp_engine_s {
+struct switch_rtp_engine_s {
        switch_secure_settings_t ssec[CRYPTO_INVALID+1];
        switch_rtp_crypto_key_type_t crypto_type;
 
@@ -204,7 +204,7 @@ typedef struct switch_rtp_engine_s {
        void *engine_user_data;
        int8_t engine_function_running;
        switch_frame_buffer_t *write_fb;
-} switch_rtp_engine_t;
+};
 
 #define MAX_REJ_STREAMS 10
 
@@ -16421,7 +16421,21 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
        return status;
 }
 
+SWITCH_DECLARE(switch_rtp_engine_t *) switch_core_media_get_engine(switch_core_session_t *session, int media_type)
+{
+    if (!session) return NULL;
+
+    return &session->media_handle->engines[media_type];
+}
+
+SWITCH_DECLARE(switch_codec_t*) switch_core_media_get_codec(switch_core_session_t *session, switch_media_type_t type)
+{
+    switch_rtp_engine_t *engine = switch_core_media_get_engine(session, type);
+
+    if (!engine) return NULL;
 
+    return &engine->read_codec;
+}
 
 /* For Emacs:
  * Local Variables: