aboutsummaryrefslogtreecommitdiffstats
path: root/channels/console_video.c
AgeCommit message (Collapse)AuthorFilesLines
2008-10-09Merged revisions 147807 via svnmerge from murf1-2/+2
https://origsvn.digium.com/svn/asterisk/trunk ........ r147807 | murf | 2008-10-09 08:17:33 -0600 (Thu, 09 Oct 2008) | 15 lines (closes issue #13557) Reported by: nickpeirson Patches: pbx.c.patch uploaded by nickpeirson (license 579) replace_bzero+bcopy.patch uploaded by nickpeirson (license 579) Tested by: nickpeirson, murf 1. replaced all refs to bzero and bcopy to memset and memmove instead. 2. added a note to the CODING-GUIDELINES 3. add two macros to asterisk.h to prevent bzero, bcopy from creeping back into the source 4. removed bzero from configure, configure.ac, autoconfig.h.in ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@147811 f38db490-d61c-443f-a65b-d21fe96a405b
2008-07-14use ast_pthread_create_detached_background() instead of redoingrizzo1-4/+3
it with separate calls git-svn-id: http://svn.digium.com/svn/asterisk/trunk@130732 f38db490-d61c-443f-a65b-d21fe96a405b
2008-07-02plug another panic when the gui cannot be started.rizzo1-1/+3
We can still send video, just don't try to use what is not available. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@127362 f38db490-d61c-443f-a65b-d21fe96a405b
2008-07-02prevent a segfault when trying to start the gui without anyrizzo1-1/+1
specific configuration in oss.conf (reported by Klaus Darillion on the -video mailing list). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@127330 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-30implement the 'freeze' function for incoming frames;rizzo1-12/+26
fix a bug which caused a crash when a videodevice was specified after startgui=1 in the config file. This also involves a slightly different method to determine if the gui is active or not. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@126572 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-29import the recent additions for video console into trunk,rizzo1-80/+315
giving you support for up to 9 video sources (e.g. webcams, or X11 grabbers, etc.) active at once, displaying thumbnails for each of them in the main GUI window, and with the ability to switch between them on the fly during a conversation. The code also implements a 'Picture in Picture' feature, allowing you to select any source as primary or secondary, and move the PiP window by just dragging it with the mouse. The window looks like this: ________________________________________________________________ | ______ ______ ______ ______ ______ ______ ______ | | | tn.1 | | tn.2 | | tn.3 | | tn.4 | | tn.5 | | tn.6 | | tn.7 | | | |______| |______| |______| |______| |______| |______| |______| | | ______ ______ ______ ______ ______ ______ ______ | | |______| |______| |______| |______| |______| |______| |______| | | _________________ __________________ _________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | remote video | | | | local video | | | | | | | | ______ | | | | | | keypad | | | PIP || | | | | | | | |______|| | | |_________________| | | |_________________| | | | | | | | | | | |__________________| | |________________________________________________________________| git-svn-id: http://svn.digium.com/svn/asterisk/trunk@126480 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-29make this compile after ast_frame's data field changed to a unionrizzo1-2/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@126308 f38db490-d61c-443f-a65b-d21fe96a405b
2008-05-19Allow users to specify 'startgui=1' in oss.conf so that therizzo1-0/+1
graphic screen for the video console is activated at startup. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@117024 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-10The fixes in this commit are mainly to allow compiling of trunk with ↵murf1-0/+1
--enable-dev-mode, mutex profiling, lock debugging, etc. Mainly, the version.c needs to be in the OBJS line; asterisk.h was chosen to have the prototypes for ast_get_version, ast_get_version_num; and the ASTERISK_FILE_VERSION macro needs to be used after including asterisk.h in a few files. I hope I did the right thing. If not, let me know. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@97656 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-09Implement keyboard handling, and use it to enterrizzo1-6/+0
a number to dial in the 'message' area under the keypad. Now you can make calls using the keypad as a regular phone (or the keyboard for chars not present on the keypad) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@97488 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-09implement the "console startgui" and "console stopgui"rizzo1-15/+36
commands so you can start and stop the gui even outside of a call. This is convenient for testing, and also for using the keypad to pick up a call, and to dial a number (the latter not yet implemented, but should be close). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@97390 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-08add support for textareas, used for various dialog windows on the gui.rizzo1-0/+6
The main code to implement the textarea is in console_board.c, and uses a simple png image with the font, blitting characters on the designated areas of the main screen. Additionally we provide some annotations in the image used as a skin to indicate which areas are used for text messages. (images will be committed separately). At the moment the dialog area is only used to display a running counter, just as a proof of concept. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@97280 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-01remove a leftover sleep(1) used for debuggingrizzo1-2/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@95671 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-29Move grabbers definitions to a separate file, vgrabbers.c, so it is easierrizzo1-295/+26
to add more entries. This required moving struct grab_desc to the common header, and adding an entry in the Makefile. On passing, cleanup some comments and file headers (some are still missing). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@95313 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-29virtualize the interface for video grabbers, which shouldrizzo1-128/+235
make it easier to add support for more grabbers (V4L2, firewire, and so on). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@95288 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-28Add a few entries up to 1408x1152 in the table of known video resolutions.rizzo1-0/+3
This makes it very convenient to enlarge images using the right-click on the video window. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@95264 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-28change the interface of video encapsulation routines, they onlyrizzo1-102/+1
need the buffer and mtu as input. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@95263 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-28various rearrangements and renaming of console_video stuffrizzo1-185/+62
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@95262 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-28fix a small bug in printing out geometries - wrong input.rizzo1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@95139 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-27more localization of gui stuffrizzo1-1/+9
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94904 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-27Enable building the code even if SDL is not present (similarly,rizzo1-10/+7
SDL is also detected at runtime). Now we should be able to stream video even without a rendering device (useful for remote monitoring). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94822 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-26more localizations around sdl_setuprizzo1-9/+3
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94821 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-26another bunch of gui localizationsrizzo1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94817 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-26more localization of sdl stuffrizzo1-26/+6
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94813 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-26move more gui stuff into console_gui.crizzo1-4/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94810 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-26more preparation for untangling of the various console_video stuffrizzo1-46/+3
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94805 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-26Split console_video.c so that video codecs and gui functionsrizzo1-1919/+49
are in separate files (still #include'd because of tangling in the data structures, but this is going to be cleaned up). The video grabbing functions still need to be moved to a separate file. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94774 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-23support sdl_videodriver to send output to x11/aalib/consolerizzo1-0/+19
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94741 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-23move reading info from the keypad to a separate function.rizzo1-93/+95
Remove an unused keypad field and some debugging messages. Adjust formatting on config file parsing git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94736 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-23make sure the minimum surface depth is 16bpp so we can create YUVoverlays.rizzo1-2/+9
With this change we can do setenv SDL_VIDEODRIVER aalib and output to an ascii window (which is still in an X11 window). If you also do unsetenv DISPLAY then the output goes into the main asterisk window, unfortunately it interferes with the normal output so you don't see much. In any case, i don't think we are very far away from having a working xterm videophone! git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94714 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-22Change the name of config file entries for keypad regionsrizzo1-5/+8
from 'keypad_entry' to 'region'. Fix the example file accordingly. Also make some fixes in the code do reset entries on reload of the keypad. The recently committed kpad2.jpg has the correct names. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94638 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-22Build console_video support by linking in, as opposed to including,rizzo1-46/+70
console_video.c This will ease the task of splitting console_video.c into its components (V4L and X11 grabbers, various video codecs and packetizers, SDL), as well as ease future extensions (e.g. additional video sources, codecs and rendering engines). For the time being nothing changes for users: video support is off by default, and requires -DHAVE_VIDEO_CONSOLE on the command line to be included (if SDL and FFMPEG are available). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94615 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-20add some macros to simplify parsing the config file,rizzo1-37/+18
see description in config.h . They are a variant of the set of macros i used in chan_oss.c, structured in a way to be more robust to the presence of spurious ';' - basically, they define wrappers for 'do {' and '} while (0)', plus some helper functions to deal with simple cases such as ast_copy_string, ast_malloc, strtoul, ast_true ... The prefix (CV_ as 'Config Variable') tries to be easy to remember and has been chosen to not conflict with other existing macros in the tree. For the time being, I have only updated the three source files in the tree that used the old M_* macros. Hopefully, more files will be converted. NOTE: I understand that inventing my own dialect of C is generally wrong; however, the lack of adequate support in the language encourages lazy programming practices (such as ignoring errors, bounds, etc.) and this increases the chance of vulnerability in the code, especially because we are parsing user input here. Hopefully, these macros and the use of ast_parse_arg (in config.h) should encourage the programmer to write more robust code. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94191 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-19Add instructions on how to generate your own font.rizzo1-0/+17
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94002 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-15Bring in video console support for chan_oss (and later chan_alsa too).rizzo1-0/+3280
This is disabled in the default build, you need to explicitly enable it compiling with make COPTS=-DHAVE_VIDEO_CONSOLE In return, you will be able to do a video call with chan_oss, using the webcam (or X11 grabbing) as local source, and rendering the incoming stream on your screen. Currently supported formats are h261, h263, h263+, h264, mpeg4 (all through the avcodec lib, part of ffmpeg). Incoming video is on the left, outgoing video is on the right, while the center displays a keypad (if configured so). Right clicking on the video windows increases the size, center clicking reduces the size. Dragging the mouse (with the left key) on the right window while the X11 grabber is active moves the grab area. This is the result of work by Sergio Fadda, Marta Carbone and myself, all properly disclaimed to digium. Note, there is a lot of work left to do in this module, including adding support for Video4LinuxV2 (I have patches from Matteo Brancaleoni which should be integrated), and making the GUI a lot more friendly than it is now (e.g. supporting merging or switching among multiple sources, a text window, and more). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@93144 f38db490-d61c-443f-a65b-d21fe96a405b