265 Commits

Author SHA1 Message Date
Anthony Minessale
3c29d4e8a7 FS-7500: mark places to fix later 2015-05-28 12:46:44 -05:00
Anthony Minessale
659c1e474e FS-7500: Work in progress. Added codec config params that can be set from session and made vpx codec re-init on size change. Also add periodic key frame timer 2015-05-28 12:46:44 -05:00
Anthony Minessale
365a5dd820 FS-7500: major refactoring pass. Push concepts from mod_vlc as deep as possible and flesh out api to use everywhere else. Round 2 will be to convert the bridge and other places using the same code 2015-05-28 12:46:44 -05:00
Anthony Minessale
765fff3d75 FS-7500: add support for codec control and use it to pass messages down to the codec and use it to implement keyframe reset for fir, pli and nack. Later we will expand to handle nack correctly. 2015-05-28 12:46:44 -05:00
Seven Du
35ff4b5cda FS-7500: add ability to insert a custom callback to the core video thread
the callback will be called on each loop on read video frame, or
the callback function call run it's own loop to take over the core
loop so it can read video from session by itself.

the callback function can -

return SWITCH_STATUS_SUCCESS to wait another loop
return SWITCH_STATUS_CONTINUE to continue use the default behaviour
return anything else will break the core video loop and end the
       core thread
2015-05-28 12:46:43 -05:00
Seven Du
ea2f00b3d9 FS-7500: refactor to use switch_core_video
added switch_core_codec_encode_video and switch_core_codec_decode video and add separate video implementations
the switch_core_video code depends on libvpx, wraped into the switch_ namespace like switch_apr, need to figure out how to find the correct libvpx lib in autotools
2015-05-28 12:46:42 -05:00
liyang
90818f137e FS-7500: allow using the video thread externally - e.g. non rtp based video 2015-05-28 12:46:42 -05:00
Seven Du
998d933671 FS-7500: initial idea to decode video in core 2015-05-28 12:46:42 -05:00
Seven Du
416745e2cd FS-7500: move video bridge logic to switch_core_media so possible to do transcoding 2015-05-28 12:46:41 -05:00
Anthony Minessale
b5f75a0f43 FS-7582 #resolve #comment port from 1.6 its probably better to start working on 1.6 for any webrtc or dtls stuff 2015-05-27 16:48:16 -05:00
Anthony Minessale
2db8f94ab6 skip rtcp addr when mux is set 2015-05-27 06:14:08 -05:00
Michael Jerris
9d68cab2ac FS-7456: also more complete fix for FS-7440, handle sdp with m lines in any order 2015-04-21 12:07:54 -04:00
Michael Jerris
753030acf5 handle m=video lines before m=audio 2015-04-17 11:26:15 -05:00
Anthony Minessale
f2a5271009 doh 2015-03-27 00:01:05 -05:00
Anthony Minessale
2c92ef31e3 FS-7386
Conflicts:
	src/switch_core_media.c
2015-03-26 23:52:53 -05:00
Anthony Minessale
83dd94193d FS-7166 #resolve 2015-01-23 21:16:47 -06:00
Anthony Minessale
1710214025 enable nat mode for verto when ext-rtp-ip is set 2015-01-23 20:53:00 +00:00
Anthony Minessale
608d3e2425 wtf 2015-01-22 03:09:59 -06:00
Anthony Minessale
90d3cb633c fix media reload on verto and sip re-invites 2015-01-22 03:07:50 -06:00
Anthony Minessale
9fabbabe90 disable hard-mute when a session has a media bug attached 2014-12-22 19:06:12 -06:00
Anthony Minessale
4ce2ce31ca FS-7092 #resolve #comment resolved in master 2014-12-18 00:45:21 -06:00
Anthony Minessale
6dbb4162e8 FS-7086 FS-6798 #resolve 2014-12-13 00:57:14 -06:00
Anthony Minessale
d189e983c8 allow 10ms jb 2014-12-12 17:51:34 -06:00
Anthony Minessale
3d515cf49c re-mark cur_payload as negotiated when detected as such by parser or the rtp could stop working on session re-invite 2014-12-12 00:54:52 -06:00
Anthony Minessale
922fd81523 FS-7015 #resolve #comment The code was not properly catching the 0.0.0.0 after changing it to work with ICE SDPs because it was looking in the wrong place for the 0.0.0.0 2014-12-11 17:18:24 -06:00
Anthony Minessale
be0e09bd7f only negotiate codecs that were previously negotiated on re-invites unless its intentional to change codecs 2014-12-11 15:03:53 -06:00
Seven Du
dd629c1516 add external_video_source to media handle and expose switch_core_media_start_video_thread() to start the core video thread for non-rtp based media 2014-11-12 08:44:20 +08:00
Anthony Minessale
a3a80401fd fix regression caused by missing ! char in commit: 4eb5b388 2014-11-07 17:11:47 -06:00
Anthony Minessale
4eb5b38848 fix bug where re-invites needlessly re-init the codec and jb 2014-11-05 11:35:16 -06:00
Anthony Minessale
7ca4ac566c FS-5949 FS-6945 #comment this change should be relevant to both of these issues, please test. This patch improves the hold parsing and ignores connection address of 0 implying hold when ice is present and disables the auto interpretation by the lower level stack of 0.0.0.0 to automatically imply sendonly to allow FS to decide on its own 2014-10-31 13:49:39 -05:00
Anthony Minessale
d1e529aefd Add new hard_mute control to allow apps to request low level mute e.g. from the rtp stack level. Its used in mod_conference to avoid reading audio while muted and possibly reduce some transcoding load 2014-10-27 15:13:42 -04:00
Anthony Minessale
12b6940644 update jb command parser 2014-10-24 15:26:44 -05:00
Anthony Minessale
1f9025d446 FS-6926 #resolve #comment please test and reopen if necessary 2014-10-16 17:57:46 -05:00
Anthony Minessale
e245e90761 fix some jitterbuffer constants 2014-10-13 13:05:57 -05:00
Anthony Minessale
9bd3bd30d3 FS-6911 #resolve 2014-10-13 10:36:51 -05:00
Hristo Trendev
d48057e23f account for lost frames during ptime detection
This allows the "broken ptime" detection to work correctly when packet
loss is present on the wire. In addition to the timestamps this patch
adds frame sequence tracking and corrects the timestamp difference
only as needed and according to the number of lost packets.

FS-6898 #resolve
2014-10-09 11:37:52 +02:00
Anthony Minessale
f7210b2402 some more changes relates to new bypass media controls 2014-10-03 18:43:23 -05:00
Anthony Minessale
b2ae5f4cc2 few bugs on recent new features 2014-10-03 15:36:23 -05:00
Jeff Lenk
d52cb335db fix trivial vs2010 build errors 2014-10-02 19:47:05 -05:00
Anthony Minessale
8db31f976f fix some recovery issues with dynamic payloads 2014-10-02 18:34:00 -05:00
Anthony Minessale
10a3fa55ef %FEATURE add bypass_media_resume_on_hold and bypass_media_after_hold variables to be set to true to enable these functions on a per channel basis 2014-10-02 17:49:09 -05:00
Anthony Minessale
6bfc05b81e FS-6887 #resolve #comment new bug flag always_auto_adjust (also implicitly sets accept_any_packets) 2014-10-02 11:55:53 -05:00
Anthony Minessale
789e1481ed FS-6880 #resolve #comment I would think that in real life once the call agreed on a codec it would only offer the negotiated codecs but we can fix this to always filter for good measure. I am not sure what the ramifications are of filtering responses but I think this patch will do so as well. 2014-10-01 13:03:50 -05:00
Anthony Minessale
24084adf77 %FEATURE Add new feature to filter the SDP on bypass_media calls to remove or limit codecs.
VARIABLE: bypass_media_sdp_filter

Can be set globally or per leg on the inbound side of a bypass_media bridge.

VALID FILTERS:

remove(): Removes the specified codec if it exists in the SDP.
only():   Removes all codecs besides the one specified (providing that it exists in the sdp) (will not remove telephone-event))

EXAMPLE 1 (remove everything leaving only g729):

  <action application="set" data="bypass_media_sdp_filter=only(g729)"/>
  <action application="set" data="bypass_media=true"/>
  <action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>

EXAMPLE 2 (remove everything leaving only g729 and also remove dtmf):

  <action application="set" data="bypass_media_sdp_filter=only(g729)|remove(telephone-event)"/>
  <action application="set" data="bypass_media=true"/>
  <action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>

EXAMPLE 3 (remove alaw and speex):

  <action application="set" data="bypass_media_sdp_filter=remove(pcma)|remove(speex)"/>
  <action application="set" data="bypass_media=true"/>
  <action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>
2014-10-01 01:28:10 +05:00
Hristo Trendev
fbe857e6fa fix ptime from known broken endpoints on re-invite
Freeswitch tries to fix timing issues (wrong ptime) on re-invite the same way
it does for the initial invite. This results in small audio glitches, while it
sends a couple of packets with different ptime, before the timing detection
logic figures out the remote (broken) endpoint true ptime.

In order to avoid unnecessary timing changes, this patch overwrites the
advertised ptime from known broken endpoints with the ptime, which was detected
by freeswitch. It does this by checking if the sip_h_X-Broken-PTIME (1.2.x) or
rtp_h_X-Broken-PTIME (master) variables are set.

FS-6644 #resolve
2014-09-30 11:19:35 +02:00
Anthony Minessale
372455c30a FS-6829 #resolve 2014-09-19 02:28:47 +05:00
Anthony Minessale
d2f8fca18a FS-6825 #resolve #comment caused by regression in commit 0732c0b0 pertaining to FS-6825 2014-09-17 20:32:18 +05:00
Giacomo Vacca
9215c93827 FS-6785 - pass and use sample rate in switch_core_session_get_payload_code() 2014-09-08 14:26:58 +00:00
Anthony Minessale
5173471b06 nm 2014-08-16 02:00:38 +05:00
Anthony Minessale
cb928cdf37 fix typo 2014-08-16 01:52:03 +05:00