Commit Graph
100 Commits
Author SHA1 Message Date
Seven Du ecab16ed88 FS-7516: add mod_imagick
use the magick-core API
We have pdfs and gifs
auto play gif and png
yeah, you can play video files with imgk

video only
requires ffmpeg binary
need autoplay=(1000/FPS)
2015-05-28 12:47:18 -05:00
Seven Du 8e417c4566 add Seven Du to AUTHORS 2015-05-28 12:47:17 -05:00
Seven Du 70953c868b FS-7512: add audio to png 2015-05-28 12:47:17 -05:00
Seven Du 8c56410d7f FS-7512: slow down in block mod 2015-05-28 12:47:17 -05:00
Seven Du 828b6a553e FS-7508: improve vpx err msg 2015-05-28 12:47:16 -05:00
Seven Du c128d0c850 FS-7515: fix copy & paste err 2015-05-28 12:47:16 -05:00
Seven Du 384c595c31 FS-7515: fix compiler warnings on Mac 2015-05-28 12:47:16 -05:00
Seven Du 96d4318964 FS-7508: add debug logs 2015-05-28 12:47:15 -05:00
Seven Du dc17932a81 FS-7508: restart on ts mismatch and add some logs to track packet loss 2015-05-28 12:47:15 -05:00
Seven Du fb429b2134 FS-7519: Another round to break mod_av, now mod_avcodec 2015-05-28 12:47:13 -05:00
Seven Du ed62be70c3 FS-7519: WIP break mod_av into mod_avformat, moving to libav.org API
Tested with libav 11.3
./configure --prefix=/opt/av --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libfaac --enable-libspeex --enable-nonfree --enable-vda

WIP av file interface, kind of works, need further tweak & cleanup
2015-05-28 12:47:13 -05:00
Seven Du adbb197414 fix stereo 2015-05-28 12:47:12 -05:00
Seven Du bbfd9f7ef3 got webm working with mono, todo: stereo, syncing 2015-05-28 12:47:12 -05:00
Seven Du 29bddbd3fc WIP add experimental vorbis codec
made it like a codec mod so we can share the same code in case opus is fully supported in webm
add -lvorbis -lvorbisenc to Makefile
the audio is still completely silence, hope we can find out why
2015-05-28 12:47:12 -05:00
Seven Du 8d4686aee2 some refactors and make audio work with opus
use SWITCH_RTP_MAX_BUF_LEN for video
timestamp has to times 1000 or it too short
neither VLC nor Chrome plays it because they don't support OPUS,
but you can use `ffmpeg -i a.webm b.webm`
2015-05-28 12:47:12 -05:00
Seven Du 18cd917916 FS-7508: fix when reading invalid vp9 and cleanup a bit 2015-05-28 12:47:12 -05:00
Seven Du 897ec20c99 WIP add mod_webm, video is working, audio is not 2015-05-28 12:47:12 -05:00
Seven Du 87766a23b7 FS-7508: add vp9 key frame detection and some packet sanity check 2015-05-28 12:47:12 -05:00
Seven Du 1a31f1f183 add vp9 passthru 2015-05-28 12:47:11 -05:00
Seven Du ae8ddfd4f1 FS-7518: add mod_mp4v2
libmp4v2-dev is required for this mod
2015-05-28 12:47:10 -05:00
Seven Du 39bd8adbdc FS-7514: fix binary & 2015-05-28 12:47:10 -05:00
Seven Du 9d635f57ef add MP3 codec interface 2015-05-28 12:47:10 -05:00
Seven Du b7fc2e047d add 48k PCMU support 2015-05-28 12:47:09 -05:00
Seven Du 455c20983f FS-7514: vlc endpoint stereo support, add vlc_rate and vlc_channels 2015-05-28 12:47:06 -05:00
Seven Du 4289a7ec59 FS-7519: initial version of record_av to record mp4
it generate better compatible mp4 than vlc, so it compatible with quicktime and safari
except that the first few video frames messed up, maybe some pts issue, to be fixed

support float audio, and it can save to webm
2015-05-28 12:47:06 -05:00
Seven Du c59874cbff FS-7517 FS-7508: typo 2015-05-28 12:47:05 -05:00
Seven Du afc67e517b FS-7500: fix type mismatch 2015-05-28 12:47:04 -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
Seven Du f4fad4e756 FS-7500: fix seg 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 e868e6eec9 FS-7513: refactor reset_image, we do not need the round to even anymore, actually it causes side effects 2015-05-28 12:47:01 -05:00
Seven Du 18a896d39d FS-7513: trying to fix mutex 2015-05-28 12:47:01 -05:00
Seven Du 9faf03c91e FS-7500: be safe for patch and fill, off by 1 2015-05-28 12:47:01 -05:00
Seven Du 2aad60b054 FS-7513: typo 2015-05-28 12:47:01 -05:00
Seven Du c70e8cf216 FS-7500: add yuv2rgb 2015-05-28 12:47:01 -05:00
Seven Du b90ef728f3 FS-7500: fix rgb2yuv typo 2015-05-28 12:47:01 -05:00
Seven Du 061bcb063a FS-7500: fix patch and fill on an odd position 2015-05-28 12:47:01 -05:00
Seven Du 2841319037 FS-7500: fix compiler warning 2015-05-28 12:47:01 -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
Seven Du a446d8411e FS-7513: clean white spaces 2015-05-28 12:47:00 -05:00
Seven Du 187b0c1485 FS-7506: fix pen position and add mono font support 2015-05-28 12:47:00 -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 8a1cb14015 FS-7499: trying to fix rtp data len when rtp extension is used
duplicated some code from 4943~4953, but that code has it's own problem, it forget to reset *bytes results to
larger frame->datalen could read beyond the buffer, and it also makes stats not accurate. But if we reset *bytes
at that place, then later the switch_vb_put_packet has problem because it depends that *bytes. this patch should
fix the datalen at least buf still leaves duplicated code and inaccurate stats.
2015-05-28 12:46:59 -05:00
Seven Du ff076afaae FS-7506: utf8 support of draw text 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
Seven Du 0a015f4c76 FS-7517: fix hardcoded width and height on video reset 2015-05-28 12:46:59 -05:00
Seven Du 2842dedc21 FS-7500: refactor switch_img_patch, it was made complicated than it should be 2015-05-28 12:46:59 -05:00
Seven Du ba9c2f38a7 FS-7513: round screen size to even numbers to prevent green lines on edge with 1up_top_left+5 and 6x6 layouts 2015-05-28 12:46:59 -05:00
Seven Du af034b2713 FS-7513: fix compile w/o openal 2015-05-28 12:46:59 -05:00
Seven Du 7764b4ea32 FS-7513: cleanup white spaces 2015-05-28 12:46:58 -05:00
Seven Du 10824c0eca FS-7513: add 1x2, 2x1 and an overlaps layout 2015-05-28 12:46:58 -05:00
Seven Du 78067a890c FS-7517: update to openh264 commit 3f19534dd6118b96ce73073ae1e047490c71b6e6 2015-05-28 12:46:58 -05:00
Seven Du 58a8d5daa6 FS-7513: remove extra memset since it's already garanteed in switch_core_alloc 2015-05-28 12:46:57 -05:00
Seven Du 93ee6158ff FS-7514: make vlc endpoint works with originate in addition to bridge 2015-05-28 12:46:57 -05:00
Seven Du 74f4b1800b FS-7513: fix copy and paste error 2015-05-28 12:46:57 -05:00
Seven Du 4b1979a119 FS-7513: fix compiler warning about uninitialized var and make sure allocated memory is filled with 0 2015-05-28 12:46:57 -05:00
Seven Du 7bdd80499d FS-7513: fix assert 2015-05-28 12:46:56 -05:00
Seven Du d93f304b25 FS-7501: comment out unused function to shut warning on Mac 2015-05-28 12:46:56 -05:00
Seven Du bc4e9704b8 FS-7513: refactor mcu code, put everyone on a canvas and send out using a dedicated thread with a constant FPS 2015-05-28 12:46:55 -05:00
Seven Du 7c0237c142 FS-7500: really fix image copy 2015-05-28 12:46:55 -05:00
Seven Du 89c02eada9 FS-7500: fix image copy 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
Seven Du be1654667c FS-7127 #comment vid branch changes 2015-05-28 12:46:53 -05:00
Seven Du f6484f5bf4 FS-7517: add warning dropped from 0353e45 back in case it still happens 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
Seven Du 23410ab94a FS-7514: use a larger and not hardcoded buffer for video packet 2015-05-28 12:46:50 -05:00
Seven Du e3ffa73636 FS-7519 FS-7517: looks like decoders don't decode FU-A bit steams, this is a simple implementation that works with some FU-A bit streams, mod_av works better most cases 2015-05-28 12:46:49 -05:00
Seven Du 978748ed09 FS-7519: set encoder zerolatency 2015-05-28 12:46:49 -05:00
Seven Du 81bec5ebd0 FS-7519: add missing deps 2015-05-28 12:46:48 -05:00
Seven Du 5ce10274e1 FS-7500: use the new video function instead of start a new thread in record_fsv 2015-05-28 12:46:48 -05:00
Seven Du ba43facf91 FS-7500: fix play_fsv for WebRTC 2015-05-28 12:46:48 -05:00
Seven Du dcb9d3c99e FS-7519: rename mod_ffmpeg to mod_av 2015-05-28 12:46:48 -05:00
Seven Du 4c95ae0510 cleanup mod_ffmpeg 2015-05-28 12:46:48 -05:00
Seven Du 55c5f1da1f FS-7500: fix decode_video App 2015-05-28 12:46:46 -05:00
Seven Du aa654da777 FS-7500: use SWITCH_DEFAULT_VIDEO_SIZE as slice size 2015-05-28 12:46:46 -05:00
Seven Du 3c7fc85a31 FS-7500: add more example yuv files 2015-05-28 12:46:46 -05:00
Seven Du 3b7bdac4b9 FS-7517: mod_openh264 follows up the new encoder flow 2015-05-28 12:46:45 -05:00
Seven Du 2d49b33002 FS-7500: fix follows the last refactor of core code 2015-05-28 12:46:45 -05:00
Seven Du 258dacc742 FS-7500: fix if statement 2015-05-28 12:46:44 -05:00
Seven Du 3466a2e468 FS-7500: fix and use 32bit timestamp, frame->timestamp is defined as switch_size_t and not always 32bit 2015-05-28 12:46:43 -05:00
Seven Du 055de41484 FS-7513: let the core thread to read video if vid-floor in conference already locked-hold by someone else 2015-05-28 12:46:43 -05:00
Seven Du 99ed41a4bd FS-7513: Example code to use the core video thread with a custom callback
It by default remains the default behaviour

However, you can setup a relationship between members to let the
member choose to see anyone else but the floor, e.g.:

  conference 3000 relate 1 2 sendvideo

In the above command member 2 will see member 1's video regardless
member 1 has video floor or not
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 422a1f0419 FS-7513: show relationships 2015-05-28 12:46:43 -05:00
Seven Du 48c1363476 FS-7513: force floor on member join 2015-05-28 12:46:43 -05:00
Seven Du d33e5659f6 FS-7514: refresh req on vlc channel 2015-05-28 12:46:43 -05:00
Seven Du 78efac8154 FS-7514: not hardcoded H264 anymore 2015-05-28 12:46:43 -05:00
Seven Du 282b04a880 FS-7514: cleanup 2015-05-28 12:46:43 -05:00
Seven Du 240ec72fa4 FS-7514: allows the core video thread to read from the vlc endpoint 2015-05-28 12:46:43 -05:00
Seven Du 8e5cbb0e26 FS-7514: follow the last core_video refactor 2015-05-28 12:46:42 -05:00
Seven Du f3ad699526 FS-7500: update yuv codec 2015-05-28 12:46:42 -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
Seven Du 71cafe536b FS-7500: add decode_video App 2015-05-28 12:46:42 -05:00
Seven Du 74d6db8809 FS-7514: refactor timestamp code 2015-05-28 12:46:42 -05:00
Seven Du c9a13474a4 FS-7517: add play_yuv to test encoder 2015-05-28 12:46:42 -05:00
Seven Du 4af7e7c68d FS-7514: vlc video 2015-05-28 12:46:42 -05:00
Seven Du e80b40f9f1 FS-7500: add raw video codec yuv I420 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