jp9000
2a89306420
Detect audio timestamp jumps and reset timing
...
- Often, timestamps will go "back" in time with certain.. terrible
devices that no one should use. When this occurs, timing is now
reset so that the new audio comes in directly after the old audio
seamlessly.
2014-01-10 12:45:53 -07:00
jp9000
faa7f4d20e
Properly position position mixed audio data
...
- Audio data was just being popped to the "front" of the mix buffer, so
instead it now properly pops into the correct position in the mix
buffer (proper mixing still needs to be implemented)
2014-01-10 11:55:54 -07:00
jp9000
f827ba38ef
Added a sinewave audio test source
...
- Added a test audio sinewave test source that should just play a sine
wave of the middle C note. Using unsigned 8 bit mono to test
ffmpeg's audio resampler, seems to work pretty good.
- Fixed a boolean trap in threading.h for the event_init function, it
now uses enum event_type, which can be EVENT_TYPE_MANUAL or
EVENT_TYPE_AUTO, to specify whether the event is automatically reset
or not.
- Changed display names of test sources to something a little less
vague.
- Removed te whole "if timestamp is 0 just use current system time"
when outputting source audio, if you want to use system time you
should just use system time yourself. Using 0 as some sort of
"indicator" like that just makes things confusing, and prevents you
from legitimately using 0 as a timestamp for your audio data.
2014-01-09 22:10:04 -07:00
jp9000
e891b3fae8
Fixed bug with circlar buffer
...
- Circular buffer code wasn't correctly handling the splitting of
newly placed data segments, the code was untested and turned out to
just be backwards. It now copied the data to the back and front of
the buffer properly.
2014-01-09 22:02:11 -07:00
Zachary Lund
d283f24cbb
A few changes concerning wxGTK.
...
For one, I added a new member gs_window for future use.
The member is "display" which represents our connection to X11.
Ideally, we should use this specific connection to deal with our Window.
For now, it's disabled. Read comment for more information.
Secondly, wxGTK apparently doesn't map our window in some cases.
This causes the window ID passed to be bad and will stop (or segfault)
our program. This might be related to the first commit above.
For now, all this commit does is realize the window manually.
2014-01-09 21:04:52 -06:00
jp9000
6b8e84844a
Add preliminary audio processing
...
- Mixing still isn't implemented, but the audio system should be able
to start up, and mix at least once audio line for the time being.
Will have to write some test audio sources to verify things are
working properly, and build the rest of the output functionality.
2014-01-09 19:08:20 -07:00
jp9000
21fd6cd2f5
Use recursive mutex for user sources and displays
...
- Using a recursive mutex fixes issues where objects need to enter the
main libobs sources mutex while already within the mutex in the same
thread. Otherwise it would keep getting locked on itself on
destruction.
2014-01-08 18:07:04 -07:00
jp9000
f3dc5227e9
Apply volume before inserting into circular buffer
...
- Apply the volume specified with the audio data packet before
inserting the audio data into the circular buffer. Added functions
for multiplying the volume with all the different audio bit depths.
(Could probably be greatly optmimized later)
2014-01-08 16:41:40 -07:00
jp9000
3838abe1f4
Implement volumes for sources
...
- Added a volume variable to the obs_source structure and implemented
functions for manipulating source volume.
- Added a volume variable to the audio_data structure so that the
volume will be applied when mixing.
2014-01-07 11:03:15 -07:00
Benjamin Klettbach
ab1d4588e2
Revert "Merge pull request #19 from asgeirom/master"
...
This reverts commit 27ccb09473
, reversing
changes made to b7eccedf8a
.
2014-01-06 06:29:08 +01:00
Palana
7fa7af6c03
check for signalled event before pthread_cond_wait-ing
...
fixes a deadlock in obs_free_video/obs_video_thread where
video_output_stop would signal the update event before obs_video_thread
enters video_output_wait (the thread calling obs_free_video would
block on pthread_join and obs_video_thread would block on
pthread_cond_wait)
2014-01-06 02:04:32 +01:00
jp9000
a2a8a5f148
Added add/remove signals to scenes
...
Scenes will now signal via their source when an item has been added
or removed from them.
"add" - Item added to the scene.
Parameters: "scene": Scene that the item was added to.
"item": Item that was added.
"remove" - Item removed from the scene.
Parameters: "scene": Scene that the item was removed from.
"item": Item that was removed.
2014-01-04 13:47:48 -07:00
jp9000
968f5fed32
Added some return-style functions to calldata.h
...
When using signal callbacks, there is rarely a need to check to see if
the callback paramters are actually validl; in those cases, if they are
invalid, then the signal is being used incorrectly. The calldata_get*
functions are meant to be used more for when using dynamic function
calls rather than when using signals. The calldata_get* functions made
it so that you have to declare your varaibles, and then call that
function to assign that value to those variables, which was slightly
annoying to constantly have to do over and over.
Therefore I created a few extra functions for returning the value
without having to check for validity. Although you would think this
would be an issue for maintaining, keep in mind that these functions
return base types. Admittedly, these functions are merely for
convenience.
2014-01-04 13:28:27 -07:00
Asgeir Mortensen
c95f133fac
Adding <linux/time.h> for CLOCK_REALTIME define.
2014-01-04 10:29:06 +01:00
Christoph Hohmann
1a928f638c
Don't close module if opening failed during graphics initialization
2014-01-03 18:15:50 +01:00
Palana
7ca68a9d04
fix function pointer types in dynamic procedure handler
2014-01-03 02:58:17 +01:00
Zachary Lund
80b8176e29
GLX implementation and *nix-specific file handling implementation
...
I added gl-x11 which allows compatibility with X11 (Xlib-based) and GLX.
I also added various functions to handle file finding based on FHS.
Various changes to autotools to both install files correctly and to configure correctly.
2014-01-02 18:20:58 -06:00
jp9000
1c91e0d0e0
forgot to lock the mutex when destroying a scene item
2014-01-01 10:28:37 -07:00
jp9000
966c091078
make scene items use linked list rather than array (containers are a bad habit), add a few functions for getting scene item information, also use a mutex to prevent race conditions when using the linked list
2014-01-01 10:22:55 -07:00
Palana
ec5cdf1b17
fix incompatible types warning in signal system
2014-01-01 03:33:16 +01:00
jp9000
1302e65ee6
create a sizing callback for the preview panel specifically, apparently on macos the window size isn't guaranteed to be the size it's set to in the main window size handler
2013-12-31 07:10:47 -07:00
Palana
683585938c
add infrastructure for app bundle target and unmark as advanced
2013-12-30 20:52:44 +01:00
jp9000
78eb116cc8
add 'static' to inline functions in callback/calldata.h
2013-12-30 11:09:32 -07:00
jp9000
72633e40a3
also include bmem.h in the header, minor oversight
2013-12-30 10:14:28 -07:00
jp9000
f3e3aeae74
make sure to include function declarations from calldata.h
2013-12-30 10:09:20 -07:00
jp9000
d99c345595
fix bad enum for get_source_info in obs_source.c
2013-12-30 09:04:05 -07:00
jp9000
c129cc37cb
update API and implement preliminary ability to add sources to scenes
2013-12-30 06:56:39 -07:00
Palana
e8ee39560c
update data files copy in cmake project
2013-12-30 03:31:55 +01:00
Palana
c093f04c58
add static linking options for ffmpeg and wxwidgets to cmake
2013-12-30 03:02:11 +01:00
jp9000
6fe59f77ec
make sure another source by the same name doesn't already exist when choosing a name for that scene
2013-12-29 09:17:00 -07:00
jp9000
c4af3e2a75
change obs_scene_destroy to obs_scene_release, add ability to add scenes, fix name dialog sizing
2013-12-29 08:54:06 -07:00
jp9000
cec94b042e
implement scene adding callbacks, make a few API tweaks
2013-12-28 05:33:16 -07:00
Zachary Lund
5f5404f8cb
Fixes issues with autoconf
...
In particular, it removes any deprecated functionality
wxWidgets only documents their deprecated m4 macros and gives a poor example
Also to note in regard to wxWidgets, I removed any unneeded libraries from the linker line.
Any warning messages provided by autoconf has been supressed in the most appropriate manner possible.
2013-12-27 16:41:01 -06:00
jp9000
bbd8178dab
fixed a typo in a function call
2013-12-27 15:23:42 -07:00
jp9000
261b9d7056
fix a few bugs with callback system, add some test signals
2013-12-27 05:08:58 -07:00
jp9000
6edcd456fe
implement signal/procedure handling into libobs and individual sources
2013-12-26 23:10:15 -07:00
jp9000
3b48f79442
fix one minor bug with the disconnct function
2013-12-26 04:33:16 -07:00
jp9000
233694ad04
add one minor error message to signal handler
2013-12-26 04:28:09 -07:00
jp9000
6ac6256ac5
fill in rest of signal/callback/proc
2013-12-26 04:26:17 -07:00
jp9000
a136748bd3
don't hide calldata structure, no reason to, and forced an unnecessary allocation which is bad
2013-12-26 02:02:24 -07:00
jp9000
e9ded173f1
add my signal/callback interface from another project, also update license of utility files to ISC 1.3
2013-12-25 22:40:33 -07:00
Palana
d97250933b
fix prototype
2013-12-24 17:06:57 +01:00
jp9000
123ca280a0
fix unix version of os_get_config_path to make it append a slash to $HOME
2013-12-23 19:04:41 -07:00
jp9000
9e9c2551ec
Merge branch 'master' of https://github.com/jp9000/obs-studio
2013-12-23 19:00:11 -07:00
jp9000
bb53a39aee
change os_get_home_path to a better and more clear function, os_get_config_path
2013-12-23 18:59:54 -07:00
Palana
74aa1c466b
add osx iosurface opengl integration
2013-12-23 16:35:14 +01:00
jp9000
399b0c8d10
apply configure video settings on startup
2013-12-22 23:40:07 -07:00
jp9000
991b5739d6
move libobs C++ bindings to libobs
2013-12-22 17:42:02 -07:00
jp9000
922eb7b8e8
make direct filter rendering optional (can be useful for certain cases)
2013-12-22 02:03:40 -07:00
jp9000
bd47d9fe74
clear up a minor inconsistency in default effect naming
2013-12-22 01:33:11 -07:00
jp9000
cdeb81e3bf
Merge branch 'master' of https://github.com/jp9000/obs-studio
2013-12-22 01:30:27 -07:00
jp9000
19c4ee995e
add major optimization to filter processing, and as a nice side effect, make it easier to create new filters and sources
2013-12-22 01:30:18 -07:00
Palana
1dde992990
remove mipmap texture filter from min_filter for rectangle textures
2013-12-22 04:47:18 +01:00
jp9000
9218627892
add obs_source functions to allow name manipulation and lookup based upon name, and a few other functions related to getting/setting source information
2013-12-20 19:35:12 -07:00
jp9000
95a7da2d4c
add names to sources, use 'id' for the internal source identifier names rather than 'name'
2013-12-20 17:23:19 -07:00
jp9000
0781670ba2
add handling of GL_TEXTURE_RECTANGLE target, and add automatic handling if using it as a sprite
2013-12-20 12:36:38 -07:00
jp9000
f41bb4b7e9
add support for texture_rect texture type in shaders, add new form, clear up a few things in the API
2013-12-20 11:58:09 -07:00
jp9000
24c45458b5
use the preview window as the main window associated with the OpenGL context
2013-12-18 22:57:39 -07:00
jp9000
4da1c193dc
fix minor bug in config file parser
2013-12-18 12:08:38 -07:00
jp9000
eeb76237eb
removed deprecated/unused function
2013-12-17 22:45:50 -07:00
jp9000
6d5ef2fb62
fixed some warnings (when on earth did I do a bad find/replace on these functions?)
2013-12-17 22:30:22 -07:00
jp9000
3b871a00fb
fixed a bug where new locale text segments properly replace old ones if adding a new language file on top of another
2013-12-17 18:17:22 -07:00
jp9000
a4055e4257
fixed a bug writing to config files where it would use a brace instead of a bracket when creating a section
2013-12-17 18:16:36 -07:00
jp9000
0c3ed3ceca
fixed bug with dynamic string where it wouldn't set the capacity properly
2013-12-17 18:15:47 -07:00
jp9000
50666040e5
allow loading of other locals on top of the current locale (to enable unfilled strings to default to english if necessary)
2013-12-17 13:55:09 -07:00
jp9000
ed388fc82e
replaced boolean trap parameter in the base lexer
2013-12-16 00:05:27 -07:00
Palana
42375302d7
fixed typo
2013-12-16 01:59:07 +01:00
jp9000
aead95f5e3
converted project to vs2013, removed 2010 support (ugh)
2013-12-14 16:01:30 -07:00
jp9000
9743b0efc5
fixed a lexer bug with detecting alphanumeric character text (not happy about it though)
2013-12-12 21:46:29 -07:00
jp9000
5edc9cf9cb
added some more config file functions for going through each section
2013-12-12 21:42:44 -07:00
jp9000
2a9e3a7179
Merge branch 'master' of https://github.com/jp9000/obs-studio
2013-12-12 21:41:53 -07:00
jp9000
de21e622b5
removed os_gettime_ms, added os_file_exists
2013-12-12 21:41:46 -07:00
Palana
3da014543e
fix min_adjust usage in calc_torque
2013-12-12 23:57:36 +01:00
Jim
6887f00359
Merge pull request #7 from MattMcNam/master
...
Updated CMake with new effect file locations
2013-12-07 15:03:08 -08:00
Ján Mlynek
1005a841d4
fixed build for *nix platform
2013-12-07 22:51:58 +01:00
Ján Mlynek
c37fe1fd16
added functions to platform-nix.c
2013-12-07 22:32:29 +01:00
Matthew McNamara
a76a5937df
Updated CMakeLists with new effect file locations, added cmake & xcode build folders to gitignore
2013-12-07 21:05:31 +01:00
jp9000
5d3f3e0d1b
make text lookup use a simple linked lists rather than an unnecessary array of pointers
2013-12-07 11:23:49 -07:00
jp9000
9b882c097b
should only check for ending quote character in locale data if it began with a quote
2013-12-07 10:25:34 -07:00
jp9000
70290b8c2b
fixed locale code, added locale files, made wx use locale files, fixed some bugs, and added platform-specific files to the main program
2013-12-07 10:22:56 -07:00
Palana
0199c84687
updated automake files with latest osx changes
2013-12-07 17:40:27 +01:00
Palana
e6017ec1ba
changed allocation counter to uint64_t
...
also avoids format string confusion for bnum_allocs
2013-12-07 17:39:43 +01:00
Palana
968f9c03bd
use %u for size_t on microsoft compilers
2013-12-07 16:50:05 +01:00
Palana
2284ef09fa
compile libobs with -fobjc-arc
2013-12-06 21:31:42 +01:00
jp9000
ff47b3a2dc
added functions to get current audio/video output information
2013-12-06 06:38:19 -07:00
jp9000
8298fa4dc7
With the permission of my fellow contributors, I'm switching obs-studio back to GPL v2+ to prevent issues between this project and the original OBS project, and for personal reasons to avoid legal ambiguity (not political reasons, I admittedly would prefer GPL v3+)
2013-12-02 22:24:38 -07:00
Palana
1bd2b9fd99
added os_get_home_path and os_mkdir to osx cocoa platform
2013-11-29 22:38:05 +01:00
jp9000
58810f9806
changed gs_draw_sprite to allow custom sizes, added output textures to the core, and adjusted the test code to accommodate the changes
2013-11-26 22:26:14 -07:00
jp9000
32e34ffe25
fixed a bug in matrix3_transpose - rotate the vector, don't transform the vector
2013-11-26 22:24:10 -07:00
jp9000
74dc470681
made it so that graphics device and associated objects are not lost every time video settings are changed
2013-11-26 22:20:11 -07:00
jp9000
fcf7e508a9
added os_mkdir to platform functions
2013-11-23 23:35:03 -07:00
jp9000
3c6494a11d
fixed a few bugs with config files, and replaced a boolean parameter with an enum
2013-11-23 23:34:38 -07:00
jp9000
e1da9099f9
remove ssize_t because it's not even used anyway anymore
2013-11-23 11:12:44 -07:00
jp9000
93dd3cec50
made the getframe function a bit more safe and modified a few names for clarity
2013-11-22 16:18:31 -07:00
jp9000
d8b49034c9
added jansson to the main project
2013-11-22 10:02:57 -07:00
jp9000
71890e0365
removed now-redundant callback enum_children from sources
2013-11-20 21:52:20 -07:00
jp9000
f1decd08f4
adjusted the way source removal is handled to make it a bit more safe
2013-11-20 18:36:46 -07:00
Palana
5fa2f28577
fixed broken comparison
2013-11-20 23:12:12 +01:00
jp9000
409b011a8e
cleaned up main internal data structure design, changed to reference counting for sources to ensure safe destruction of source objects from all parts of the system, added some service-related stuff for testing
2013-11-20 15:00:16 -07:00
jp9000
e778a4c04f
added OSX files to automake scripts
2013-11-15 06:40:03 -07:00
Palana
ec411fe046
added cmake build files
2013-11-14 18:36:46 +01:00
Palana
d7a04aea8c
added osx cocoa support files
2013-11-14 18:31:18 +01:00
Palana
f263d585bf
enable format string diagnostics for blog and bcrash on gcc and clang
2013-11-14 18:31:18 +01:00
Palana
3b3d612ceb
add noreturn attribute to def_crash_handler
2013-11-14 18:31:17 +01:00
jp9000
146e9a7dbd
added support for jansson, added new output files, made some adjustments to the API, fixed a UI subclass issue
2013-11-13 06:24:20 -07:00
John Bradley
21a0292f7a
Removed unnecessary <malloc.h> include from bmem
2013-11-07 19:14:24 -06:00
jp9000
f5e41f441e
added initial main program and directshow files, finally have a UI functioning
2013-11-07 16:45:03 -07:00
jp9000
37c7db5dbe
fixed some bugs and fixed a variable that wasn't declared at the top
2013-11-02 14:44:40 -07:00
Palana
85dd2ad073
fixed log output
2013-11-02 02:16:18 +01:00
jp9000
0790148950
...had the wrong code in the wrong function, fixed os_dlopen
2013-11-01 17:01:56 -07:00
Palana
727ed4d7ec
actually use found path in obs_load_module
2013-11-02 00:53:26 +01:00
jp9000
8847d11e8e
adjust file locations to be more portable
2013-11-01 14:33:00 -07:00
jp9000
a6a6118c04
finish up most of the source audio stuff and rename some variables/structs/enum to be a bit more consistent
2013-10-31 10:28:47 -07:00
jp9000
99d2965e21
fix a minor warning and make ffmpeg dependencies a little bit easier to deal with in VS
2013-10-30 18:19:52 -07:00
jp9000
6147446059
remove some redundant code in the resampler wrapper
2013-10-30 17:12:51 -07:00
jp9000
60e6ddbf71
add audio resampling, add ffmpeg support
2013-10-30 17:07:01 -07:00
jp9000
3adfaf7f9f
not sure how a backslash slipped into an include, but it's gone now
2013-10-29 23:54:43 -07:00
jp9000
676a0bd67d
update build system to autotools (finally)
2013-10-29 23:21:40 -07:00
jp9000
ab08c2c3f2
fixed a minor bug in the gl shader parser
2013-10-29 06:01:19 -07:00
jp9000
93905e516b
modify w32-pthreads location in source/project files
2013-10-28 06:29:12 -07:00
jp9000
d2ba08e46b
add frame flipping code
2013-10-26 15:05:51 -07:00
jp9000
7dada3bef4
fill out the rest of the source video frame functions, added nv12 decompression function, and cleaned up the design of the source video frame stuff
2013-10-26 14:32:06 -07:00
jp9000
75a1a02a97
fix function definition names for two of the conversion functions
2013-10-25 10:30:50 -07:00
jp9000
a43e291577
fill in the texture_setimage function, fill in a few other functions, and change certain names to be a little more consistent
2013-10-25 10:25:28 -07:00
jp9000
603b262d4c
add format conversion functions
2013-10-25 10:23:11 -07:00
jp9000
bb329b9278
avoid using 'default' for enum switches
2013-10-24 01:29:06 -07:00
jp9000
8421690c33
made some slight corrections
2013-10-24 01:03:45 -07:00
jp9000
ac2c08927f
added intial async audio/video code, fixed a few bugs, improved thread safety, and made a few other minor adjustments
2013-10-24 00:57:55 -07:00
jp9000
ae3cecf09f
make data access in the threads a bit more safe (note: probably will need some more safety measures later on)
2013-10-18 20:25:13 -07:00
jp9000
ebbf4175d3
minor tweaks and get rid of the linker dependency I used for testing
2013-10-17 18:44:37 -07:00
jp9000
18834c6a45
some static analysis cleanup
2013-10-17 17:21:42 -07:00
jp9000
6e6535d568
initialize variable to NULL to be safe against uninitialized usage
2013-10-17 00:36:32 -07:00
jp9000
dfa2dc6eab
fix up the rest of the GL code, add glew to project, add makefiles for opengl, fix makefiles so that it can be built with gcc, update project files to automatically output to the build directory
2013-10-16 23:31:18 -07:00
jp9000
0dfc844abc
woops, left some spaces by accident
2013-10-14 12:42:45 -07:00
jp9000
9570f0b8d7
change names, fix some bugs, minor GL/D3D fixes, update tests, fix effect files, output a little more debug information
2013-10-14 12:37:52 -07:00
Peter SZTANOJEV
0301b24ace
modernize header guards to #pragma once
2013-10-14 13:21:15 +02:00
jp9000
9577ddcf9b
fill in the rest of the GL functions. finally
2013-10-12 20:18:05 -07:00
jp9000
c1939de49b
added z-stencil buffers to GL and made a GS_MAX_TEXTURES macro
2013-10-10 12:37:03 -07:00
jp9000
806bf557e5
removed a fairly pointless constant for the time being
2013-10-10 07:46:27 -07:00
jp9000
20490010e9
fix effect parser to properly parse and output uniform variables
2013-10-09 21:38:55 -07:00
jp9000
fda2ee1147
added initial GL shader code
2013-10-09 15:48:16 -07:00
jp9000
34357f00fb
finish up GLSL conversion stuff and make some minor tweaks to shader parser
2013-10-08 13:36:15 -07:00
jp9000
f9d1a4b9ed
added first GLSL code, moved some graphics functions around, and adjusted some existing shader parser code
2013-10-06 18:29:29 -07:00
jp9000
f9c2aadf53
remove some more code duplication, fix a string, and remove a potential bug
2013-10-05 09:40:43 -07:00
jp9000
5c92f22f0d
moved some stuff around to avoid code duplication and finish up gl 2D texture code
2013-10-05 00:34:43 -07:00
jp9000
543d2481f1
move around some graphics stuff and put in copyright comments
2013-10-04 12:13:59 -07:00
jp9000
ec86c3eaf7
fixed code that used the newer gs_create_texture version
2013-10-04 09:01:39 -07:00
jp9000
75262e6e0b
update graphics subsystem code to add mipmap support and also add initial GL texture stuff and helper functions
2013-10-04 08:55:33 -07:00
jp9000
817044721b
made better checks when shutting down graphics subsystem
2013-10-02 23:13:26 -07:00
jp9000
e0393ba7a9
fixed static w32-pthreads initialization (release builds should work now on windows)
2013-10-01 18:16:23 -07:00
jp9000
b44ba06543
fixed the alignment issues for good
2013-10-01 07:24:59 -07:00
jp9000
7f8a2890a1
...and should have probably compiled it first
2013-10-01 06:19:11 -07:00
jp9000
493537d7bc
forgot one more alignment call
2013-10-01 06:18:29 -07:00
jp9000
658a27362d
fixed some more alignment issues for SSE usage (maybe I should cut donw the size of the align function)
2013-10-01 06:16:40 -07:00
jp9000
92f48c1aa5
remove comment about removed api export
2013-10-01 05:56:07 -07:00
jp9000
4e6affdfc3
add an optional aligned new operator and use it with the d3d11 subsystem to prevent SIMD crashes
2013-10-01 00:27:14 -07:00
jp9000
f255ae1922
first commit
2013-09-30 19:37:13 -07:00