Anthony Minessale
fdcfcaece9
FS-7500: don't wait for video ready from inside video thread that sets that flag
2015-05-28 12:47:11 -05:00
Anthony Minessale
24254bb1fd
FS-7500: revert
2015-05-28 12:47:11 -05:00
Anthony Minessale
d3359ff9f0
FS-7500: don't wait for video ready from inside video thread that sets that flag
2015-05-28 12:47:11 -05:00
Anthony Minessale
c040b0ff0d
FS-7503: store stream name so same module can handle mutiple stream interfaces
2015-05-28 12:47:10 -05:00
Anthony Minessale
517a6d4ab7
FS-7503: add video read flags to choose flush and or block mode and add stuff to vlc so it can play youtube urls
2015-05-28 12:47:10 -05:00
Michael jerris
1cd9e52b9e
FS-7499: add enum for various rtcp related types
2015-05-28 12:47:10 -05:00
Anthony Minessale
c9cccd519a
FS-7509: add some more bandwidth control features
2015-05-28 12:47:09 -05:00
Anthony Minessale
0d34e8ac77
FS-7500: add a framebuffer to reuse memory and use it to offload frame writing from video muxing thread to a dedicated write thread
2015-05-28 12:47:08 -05:00
Anthony Minessale
78d06832e7
FS-7500: add force flag
2015-05-28 12:47:07 -05:00
Anthony Minessale
a42f40f938
FS-7514 FS-7505: clean up more from yesterday
2015-05-28 12:47:06 -05:00
Anthony Minessale
a63dab7a4a
FS-7503 FS-7514: A bunch of stuff:
...
Get filehandles working with video in some cases (if using vlc://):
mod_conference for play and record video (will record the canvas in mix mode or floor holder in non-mix mode)
regular playback app should be able to play vlc streams
Add no-minimize-encoding member flag so particilar memebers can opt out of that setting and still get their own encoded stream (for bw related needs)
TODO:
mod_vlc is a mess. Find a way to merge video_context and file_context. They are very similar and they are intertwined and messy.
Find out why vlc creates messed up mp4 files that don't play everywhere
Get VLC so it can record aac, mp4x webm
2015-05-28 12:47:06 -05:00
Anthony Minessale
4bcc6e6d64
FS-7503 FS-7514: First crack at recording mp4 <action application="capture_video" data="vlc://#transcode{vcodec=h264,acodec=mp3}:std{access=file,mux=mp4,dst=/var/www/sounds/file.mp4}"/>
2015-05-28 12:47:05 -05:00
Anthony Minessale
93db69ed03
FS-7500: can't use stristr for this
2015-05-28 12:47:04 -05:00
Anthony Minessale
628edd1183
FS-7513: add code to track media direction to avoid assigning floor or video layers to those with no signal
2015-05-28 12:47:03 -05:00
Anthony Minessale
2c4c2587ed
FS-7513 FS-7509: crack at screen share
2015-05-28 12:47:03 -05:00
Seven Du
e02ff26569
FS-7500: libpng 1.6.0 has much simpler APIs, also add a new switch_img_patch_png to possible patch a transparent png to an img
...
While this is not optimal, we should cache the png:
1) cache the whole buffer, with comes with RGBARGBA pixel formats
2) Allow switch_image_t to be other formats e.g. VPX_IMG_FMT_ARGB, VPX_IMG_FMT_ARGB_LE, or VPX_IMG_FMT_444A
those can have alpha channels so we can check the alpha channel before we patch
Note all PNG are created equel, or maybe a bug in libpng since for some PNG files with alpha the returned buffer
not seems like RGBARGBA... while docs says it should default be RGBA
2015-05-28 12:47:02 -05:00
Anthony Minessale
e65f6bd604
FS-7513: add logo func and positioning param and vid snapshot
2015-05-28 12:47:02 -05:00
Anthony Minessale
2c1ab14074
FS-7513: add configurable FPS for conf and default to 15
2015-05-28 12:47:02 -05:00
Seven Du
84a1f5f642
FS-7500: add overlay func
2015-05-28 12:47:02 -05:00
Seven Du
c70e8cf216
FS-7500: add yuv2rgb
2015-05-28 12:47:01 -05:00
Anthony Minessale
1faf602251
FS-7513: basic logo
2015-05-28 12:47:01 -05:00
Anthony Minessale
521a97935e
FS-7500: check in png code and put it in the core to mature
2015-05-28 12:47:00 -05:00
Seven Du
90ea86bc95
FS-7506 FS-7513: refactor with rgb color space to support anti aliasing
2015-05-28 12:47:00 -05:00
Anthony Minessale
0697db4fb4
FS-7506 FS-7513: set banner with video_banner_text variable set before calling in, NEEDS DOCS params are parsable inside a {} string
2015-05-28 12:46:59 -05:00
Seven Du
9d7eef28e6
FS-7500 FS-7513: add and use switch_img_fill
2015-05-28 12:46:59 -05:00
Seven Du
c857be4547
FS-7506: improve draw_text with minimum anti aliasing
2015-05-28 12:46:59 -05:00
Seven Du
0f28311b17
FS-7506 FS-7513: refactor switch color and implement draw_text in mod_conference
2015-05-28 12:46:59 -05:00
Anthony Minessale
1aa66ef30a
FS-7513: do layers in order and reset when attaching
2015-05-28 12:46:58 -05:00
Anthony Minessale
fcf32fd53d
FS-7500 FS-7513: add video bandwidth control function and use it in mod_conference
2015-05-28 12:46:58 -05:00
Anthony Minessale
e14ad07a26
FS-7500: move function to core
2015-05-28 12:46:58 -05:00
Anthony Minessale
f7fb5fbff3
FS-7500: forgot one
2015-05-28 12:46:58 -05:00
Anthony Minessale
1bb8c0a8fc
FS-7500: fix signed error
2015-05-28 12:46:58 -05:00
Anthony Minessale
a56e65bace
FS-7513: add flag to choose between encoding each frame and using central encoder per codec, add parsing for floor fields and reservation fields in layouts, add param to control bandwidth for consolidated codecs, add audio-position attr to images in layout to sync with virtual HRTF
2015-05-28 12:46:58 -05:00
Anthony Minessale
fa5d6af2cd
FS-7513: refactor conference video muxing to create one distinct encoder per codec used and only create one encoded frame per distinct codec, store current image used by layer on the layer so it is not destroyed before the canvas is written, refactor and rearrange some functions
2015-05-28 12:46:57 -05:00
Anthony Minessale
1061aef9fa
FS-7500: convert more to typedef to avoid warnings and build problems
2015-05-28 12:46:56 -05:00
Anthony Minessale
13c3f053ab
FS-7500: use the vpx_image_t from the installed header file to prevent mismatch
2015-05-28 12:46:56 -05:00
Anthony Minessale
4d100bc2e8
FS-7509: stop media on verto detach
2015-05-28 12:46:55 -05:00
Anthony Minessale
982d05c30c
FS-7501: fix vid buffer reset
2015-05-28 12:46:55 -05:00
Seven Du
c52d69d173
FS-7500: add switch_img_copy to clone an image
2015-05-28 12:46:54 -05:00
Anthony Minessale
a69938c3d5
FS-7500: factor back in video_thread callback and move it to the video_read_frame
2015-05-28 12:46:53 -05:00
Anthony Minessale
bc24e0f28a
support AVPF too
2015-05-28 12:46:53 -05:00
Anthony Minessale
17aa836403
FS-7499: add generic nack support to rtp stack
2015-05-28 12:46:53 -05:00
Anthony Minessale
836e2b2888
FS-7500: add switch_inthash variety of hash that can key on int
2015-05-28 12:46:53 -05:00
Anthony Minessale
0d626bc715
FS-7501: more factoring on vid buffer
2015-05-28 12:46:52 -05:00
Anthony Minessale
0e991e7d0f
FS-7501: connect video buffer for testing, still needs a lot of work
2015-05-28 12:46:52 -05:00
Anthony Minessale
2a50c6d55c
FS-7501: use vidderbuffer in rtp
2015-05-28 12:46:52 -05:00
Anthony Minessale
7b323f0b17
FS-7501: add vidderbuffer
2015-05-28 12:46:52 -05:00
Seven Du
a50789f97f
FS-7499: magic number to macro
2015-05-28 12:46:52 -05:00
Anthony Minessale
76ec99ed97
FS-7500: poll rtp on answer until dtls is negotiated
2015-05-28 12:46:51 -05:00
Anthony Minessale
303a4ecf99
FS-7499: move fir and pli into the normal rtcp code so it can be bundled with a report block per the rfc
2015-05-28 12:46:51 -05:00
Anthony Minessale
be21d4f28f
FS-7500: use unsigned int for frame->timestamp
2015-05-28 12:46:50 -05:00
Anthony Minessale
970064294c
FS-7500: refactoring
2015-05-28 12:46:50 -05:00
Anthony Minessale
2ea12656ea
FS-7500: improvement for conf vid
2015-05-28 12:46:49 -05:00
Anthony Minessale
853873725b
FS-7500: factor out the write_image callback and fix the vlc video endpoint to setup and match the audio params of the A leg when bridged
2015-05-28 12:46:48 -05:00
Anthony Minessale
01fda5748c
FS-7500: another round of trying to make things work
2015-05-28 12:46:48 -05:00
Anthony Minessale
b90d24a05f
FS-7513: fix video switching in conference
2015-05-28 12:46:48 -05:00
Anthony Minessale
b8ba1a1469
FS-7500: reduce CNG frames on video and move debug from mod_fsv to the core with a flag to enable it since the raw packet is not available anymore when you set DECODED READ flag
2015-05-28 12:46:47 -05:00
Anthony Minessale
4dc155f164
FS-7500: add switch_core_session_raw_read to put session into raw read mode without needing a local codec var (WE SHOULD REFACTOR MUCH OF switch_ivr_* to use this...) and add echo_decode_audio option to echo app
2015-05-28 12:46:47 -05:00
Anthony Minessale
e7d34f3170
FS-7508: tolerate some messed up packets a little more
2015-05-28 12:46:45 -05:00
Anthony Minessale
22020c86cb
FS-7500: add SFF_USE_VIDEO_TIMESTAMP to tell video write frame if it needs to use a timer or not for timestamps
2015-05-28 12:46:45 -05:00
Anthony Minessale
0cd5658caa
FS-7500: another refactoring pass, temp code still in place, WORK IN PROGRESS
2015-05-28 12:46:44 -05:00
Anthony Minessale
44e7929507
FS-7500: revert earlier bridge change
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
William King
4fc94e3907
FS-7500 S-7513: Few build fixes
2015-05-28 12:46:43 -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
Seven Du
bcbdf8a347
FS-7500: add switch_core_video code
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
Seven Du
90b654e923
FS-7502: add simple video media bug implementation, should work with .fsv, be sure to set enable_file_write_buffering=false
...
Conflicts:
src/include/switch_types.h
2015-05-28 12:46:41 -05:00
Anthony Minessale
d413bcd7b3
FS-7567 #resolve #comment additional occurrences beyond the initial patch discovered
2015-05-21 09:50:49 -05:00
Chris Rienzo
b28f7acac1
FS-7496 Updated mime.types, added switch_core_mime_type2ext function and used it in mod_httapi. Now, file extensions defined in mime.types will be applied if mod_httapi downloads a file without one.
2015-04-30 14:24:41 -04:00
Michael Jerris
b90aa23cbd
FS-7488: [mod_managed] fix build error
2015-04-28 11:59:15 -05:00
Anthony Minessale
c56b7da53a
copy part of 0e7eb72ca75a3584d203c6464fc8ceaacf79ebae
2015-04-25 13:22:43 -05:00
Anthony Minessale
2c92ef31e3
FS-7386
...
Conflicts:
src/switch_core_media.c
2015-03-26 23:52:53 -05:00
Manav Rathi
830bc28c45
FS-7352: Document how to use switch_core_set_variable to delete variables
...
I had to scan through the source of the function to verify that this
is the indeed the actual behaviour, and that NULL is a valid
argument. By mentioning this in the header, we save posterity that
effort.
2015-03-07 06:59:06 +05:30
Dave Olszewski
2890afc918
FS-7285 allow eavesdrop to bridge only one leg
...
Add channel variables eavesdrop_bridge_aleg and eavesdrop_bridge_bleg,
and if one is set to true on the eavesdrop channel, bridge that leg from
the target. If neither is specified, bridge both.
2015-02-14 14:45:15 -08:00
Anthony Minessale
83dd94193d
FS-7166 #resolve
2015-01-23 21:16:47 -06:00
Anthony Minessale
76370f4d17
auto urlencode user portion of sip uri
2015-01-23 21:06:02 -06:00
E. Schmidbauer
01dcb74f33
FS-7187 add switch_cache_db_create_schema() to test for SCF_AUTO_SCHEMAS flag
2015-01-22 15:41:22 -05:00
Anthony Minessale
b74448462d
FS-7173 #resolve #comment please verify fix in master
2015-01-20 19:55:50 -06:00
Anthony Minessale
e783999b51
some changes to webrtc to make it work with iDoubs in rtcweb profile mode
2014-12-12 20:55:40 -06:00
Anthony Minessale
06c241a233
FS-6891 FS-7002 FS-7059 FS-7072 FS-7073 FS-7076 #close #comment All of these bugs are invalidated due to a botched revert -- commit 72c3df5ed3
was supposed to revert commit 1b612fecb6
but it only reverted part of it. commit 158c1f23da
from the other day was erroneously created to work around the result of the botched revert so it is reverted. The result of this commit should be to bring it back to effectively properly revert 1b612fecb6
and now you can test and open new bugs if necessary. This includes the segfault in eavesdrop, and any media bug releated reports. Consider working together and only reporting one new bug if you still encounter any more problems and be sure to include details and make sure the jitter buffer is being used.
2014-12-11 20:57:55 -06:00
Michael Jerris
62a2e10e41
remove hack breaking some cross compile builds. if you really need this, you should be using new enough glibc anyways
2014-11-19 16:06:42 -05:00
Anthony Minessale
df423b88d6
improve timerfd implementation to be more accurate
2014-11-18 17:14:04 -06:00
Michael Jerris
0cf770a836
FS-6996: #resolve fix define change as of glibc 2.20 for _BSD_SOURCE -> _DEFAULT_SOURCE
2014-11-17 09:27:22 -05: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
Nathan Neulinger
f175c71188
FS-6805 add support for logging full timestamps with dialplan, defaults to old behavior unless requested
2014-11-11 13:25:47 -06:00
Anthony Minessale
5ce5199be9
FS-6969 #resolve #comment This patch should accomplish the same and handle other platforms, please test
2014-11-07 08:38:01 -06: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
Jeff Lenk
e3e267f462
vs2010 trivial compiler warnings
2014-10-14 13:20:52 -05:00
Anthony Minessale
e4e9b1b9f9
have resume media on hold not send invite back out at the holder but rather enable media in the 200ok
2014-10-10 16:09:43 -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
Anthony Minessale
92a66fb1e7
improve adaptive jitter buffer ascending check
2014-09-30 22:54:46 +05:00
Michael Jerris
dac4afbfdb
this was alraedy in there, whoops
2014-09-28 10:40:57 -04:00