Guest User

Untitled

a guest
Jul 21st, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. +switch_codec_implementation_t* add_codec(switch_core_session_t *session, char * name){
  2. + switch_codec_implementation_t* codec = switch_core_alloc(switch_core_session_get_pool(session), sizeof(switch_codec_implementation_t));
  3. + codec->iananame = name;
  4. + return codec;
  5. +}
  6. +
  7. switch_status_t rtmp_tech_init(rtmp_private_t *tech_pvt, rtmp_session_t *rtmp_session, switch_core_session_t *session)
  8. {
  9. +
  10. switch_assert(rtmp_session && session && tech_pvt);
  11.  
  12. tech_pvt->read_frame.data = tech_pvt->databuf;
  13. @@ -100,12 +107,32 @@ switch_status_t rtmp_tech_init(rtmp_private_t *tech_pvt, rtmp_session_t *rtmp_se
  14. switch_buffer_create_dynamic(&tech_pvt->readbuf, 512, 512, 1024000);
  15. //switch_buffer_add_mutex(tech_pvt->readbuf, tech_pvt->readbuf_mutex);
  16.  
  17. + //TODO: probably need to init this once a codec is negotiated
  18. switch_core_timer_init(&tech_pvt->timer, "soft", 20, (16000 / (1000 / 20)), switch_core_session_get_pool(session));
  19.  
  20. tech_pvt->session = session;
  21. tech_pvt->rtmp_session = rtmp_session;
  22. tech_pvt->channel = switch_core_session_get_channel(session);
  23. -
  24. + tech_pvt->num_codecs = 0;
  25. +
  26. + //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Codecs: %i\n", tech_pvt->rtmp_session->audioCodecs);
  27. + if((tech_pvt->rtmp_session->audioCodecs | SUPPORT_SND_G711A) == tech_pvt->rtmp_session->audioCodecs){
  28. + tech_pvt->codecs[tech_pvt->num_codecs++] = add_codec(session, "PCMA");
  29. + }
  30. +
  31. + if((tech_pvt->rtmp_session->audioCodecs | SUPPORT_SND_G711U) == tech_pvt->rtmp_session->audioCodecs){
  32. + tech_pvt->codecs[tech_pvt->num_codecs++] = add_codec(session, "PCMU");
  33. + }
  34. +
  35. + if((tech_pvt->rtmp_session->audioCodecs | SUPPORT_SND_SPEEX) == tech_pvt->rtmp_session->audioCodecs){
  36. + tech_pvt->codecs[tech_pvt->num_codecs++] = add_codec(session, "SPEEX");
  37. + }
  38. +
  39. + for(int i = 0; i < tech_pvt->num_codecs; i++){
  40. + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Supported %s\n", tech_pvt->codecs[i]->iananame);
  41. + }
  42. +
Add Comment
Please, Sign In to add comment