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