Commit Graph

1151 Commits (df3623b4786a4d997b97d25150a6dc48886ae750)

Author SHA1 Message Date
jp9000 89df81e72d libobs: Add helper functions for math data 2014-06-14 23:57:00 -07:00
jp9000 2a7f202e7e libobs: Add 'solid' effect for basic primitives 2014-06-14 23:55:10 -07:00
jp9000 8ab1bc8e7b win-capture: Fix bug calculating cursor position
Cursor position calculation was not taking in to account the window
client coordinates relative to the screen.
2014-06-14 23:49:35 -07:00
jp9000 44066f8e61 Fix null pointer dereference in text lookup
Fix potential null pointer dereference for when splitting a node.
2014-06-14 23:47:22 -07:00
jp9000 4b17bb89ed Allow signal callback deletion while signalling
I encountered a situation where I wanted to delete a callback for a
signal while inside of that signal.  However it would hard lock, and
even after that, it would mess up the loop for the callback list.

So, change the mutex of the individual signals to a recursive-style
mutex, and then if a callback of a signal is deleted while currently in
that signal, just mark it for deletion, which will happen after the
signal is complete.
2014-06-14 23:42:00 -07:00
jp9000 f37c510f10 d3d11: Fix bug creating static vertex buffers
The vertex data wasn't getting properly freed, it was actually setting
the parameter itself to null for some reason.
2014-06-14 23:37:32 -07:00
jp9000 9d66c96299 Fix bug with creating immediate vertex buffers
Check to make sure graphics subsystem pointer isn't null before
derefrencing, and fix bugs when creating vertex buffers from
immediate-style helpers
2014-06-14 23:30:58 -07:00
Jim fa5b127607 Merge pull request #113 from jp9000/matrix-update
Change graphics subsystem to 4x4 matrices
2014-06-14 23:22:14 -07:00
jp9000 1c2a0524b7 Change graphics subsystem to 4x4 matrices
4x4 matrices aren't as optimal, but are much more sensible to handle
when you want to do more advanced stuff like scaling, skewing, or
inversion.
2014-06-14 23:17:04 -07:00
Palana c2eebd8d1d Remove property list prefill code in mac-avcapture 2014-06-12 02:35:35 +02:00
Jim c6712ab462 Merge pull request #112 from antihax/Opt
Slight modification of audio mixing function
2014-06-11 06:38:26 -07:00
Danni a91174e2b2 Slight modification of mixing function 2014-06-08 11:48:38 -05:00
jp9000 cec11d624a OpenGL: Don't call glGetAttribLocation on outputs
Previously we were using glGetAttribLocation on all inputs/outputs and
then just discarding if it was returned -1.  However, we have a boolean
value of 'input' in gl_parser_attrib, so there's no need to be doing
this and discarding potentially useful error handling information.
2014-06-07 19:33:41 -07:00
jp9000 3ce70778f9 OpenGL: Don't name VS inputs as 'geom' inputs.
Geometry shaders come after vertex shaders, not before.
2014-06-07 19:31:57 -07:00
jp9000 813dfc6508 ignore test-random alpha (to ensure BGRX works) 2014-06-07 15:32:12 -07:00
jp9000 efaafd7cb4 OpenGL: Fix erroneous handling of BGRX
BGRX was being treated as "BGR input" with "RGBA storage", where it
should have been "BGRA input" with "RGB storage".  So the input for the
texture was expecting 24 bits of packed BGR rather than 32bit BGRX
pixels, and was internally storing it with alpha available.
2014-06-07 15:30:05 -07:00
jp9000 5cd8304dc0 CoreAudio: Enumerate AudioDeviceID manually
Apparently, despite the fact that Apple added
kAudioHardwarePropertyTranslateUIDToDevice in 10.8, it's not actually
usable in 10.8, only 10.9.  So, instead of being able to use it like a
normal, sane person, we have to enumerate all devices manually and find
the AudioDeviceID ourselves.  A slight annoyance and a mark against
apple's competence, but audio devices should now be working again on
10.8 at least, so whatever.
2014-06-07 06:07:51 -07:00
jp9000 3fd6d83dfb UI: Remove unused variable 2014-06-07 06:07:21 -07:00
jp9000 42a0411f1c libobs: Fix switch warning 2014-06-07 06:04:13 -07:00
jp9000 20a61ace77 libobs: Account for volume with audio levels 2014-06-06 08:56:37 -07:00
Palana 1df433e7cc Add connect/disconnect handling for mac-avcapture 2014-06-04 20:02:03 +02:00
Palana 6eeabb6b49 Enable device selection for mac-avcapture 2014-06-04 20:02:03 +02:00
Palana 8b5891e973 Improve preset selection robustness in mac-avcapture 2014-06-04 20:02:03 +02:00
Palana f20136b96e Fix minor style-deviation in mac-avcapture 2014-06-04 20:02:03 +02:00
Palana 1c46fd27bc Move device handling in mac-avcapture to separate functions 2014-06-04 20:02:03 +02:00
Palana 9ca450426a Refactor mac-avcapture cleanup and improve session init error handling 2014-06-04 20:02:02 +02:00
Palana 994565dbfb Improve mac-avcapture logging
Log messages are now prefixed with the source name to distinguish between
multiple sources
2014-06-04 20:02:02 +02:00
Jim e978308acd Merge pull request #108 from andy-kliman/feature
Added Russian translation
2014-06-03 05:15:54 -07:00
Jim 4eb6267372 Merge pull request #90 from antihax/master
Added simple volume meter for reference of input levels.
2014-06-03 05:15:18 -07:00
jp9000 ab1543977f UI: Add new volume meter handling
This adds support for the more smooth volume levels that accounts for
both level and magnitude.  Currently, it just averages level and
magnitude, later on a full audio meter control can be made that would
properly utilize level, magnitude, and peak.

Also cleaned up the code a bit and removed some trailing whitespace.
2014-06-03 04:51:27 -07:00
jp9000 4ccf928ea1 libobs/media-io: Remove obsolete mixing functions
Also, Remove the volume level processing from audio-io.c, it was moved
to obs_source instead.
2014-06-03 04:50:15 -07:00
jp9000 5cd64ce7f2 libobs: Add level/magnitude/peak volume levels
This replaces the older code which simply queried the max volume level
value for any given audio.

I'm still not 100% sure on if this is how I want to approach the
problem, particularly, whether this should be done in obs_source or in
audio_line, but it can always be moved later if needed.

This uses the calculations by the awesome Bill Hamilton that OBS1 used
for its volume levels.  It calculates the current max (level),
magnitude, and current peak.  This data then can be used to create
awesome volume meter controls later on.

NOTE: Will probably need optimization, does one float at a time right
now.

Also, change some of the naming conventions.  I actually need to change
a lot of the naming conventions in general so that all words are
separated by underscores.  Kind of a bad practice there on my part.
2014-06-03 04:48:20 -07:00
jp9000 d891e9772c libobs: Fix signal handler lock bug
There was a return statement within a section of code that had a locked
mutex.
2014-06-03 04:41:12 -07:00
Palana 03346d7e96 Make PSPacked422_Reverse sample in texel center 2014-06-02 17:50:10 +02:00
Palana 7d0a1502bd Fix typo in conversion technique name (there is no UYUV, only UYVY) 2014-06-02 16:44:37 +02:00
Palana c19b9160ad Fix byte order for PSPacked422 users
Byte order was changed in 9595a78e8a
2014-06-02 16:44:29 +02:00
jp9000 e72c0925be win-dshow module: Fix configuration issues
The biggest problem with DirectShow is that available configuration
capabilities can change if you so much as look at it the wrong way.

Previously, configuring devices often didn't configure the device
settings correctly, you would choose one setting and then another
setting wouldn't be compatible with that settings.

Let's take the terrible microsoft lifecam series for example.  First,
you'd be at 640x480 happily webcam'ing away, which is using the YUY2
format.  Then you decide "hey, this webcam resolution is a bit low.  I
would love to have it a bit high resolution so it's a bit more crisp and
clear."  You'd select 1280x720, and then suddenly the only format
supported is MJPEG output.  However, the interface has to update that
fact, it can't list YUY2 if MJPEG is the only one available for this
resolution.  This doesn't just apply to formats either, this applies to
framerates and such as well.  Some framerates will only be supported by
certain resolutions which can in turn only be supported by certain
formats.

This causes user interface for configuration to be really be a nightmare
to manage if you want these features to be available to the user.  It's
extremely annoying because you have to update all the configuration UI
after something has changed, double check the configuration values, and
if the values aren't supported, update those configuration values.
2014-05-30 19:54:58 -07:00
jp9000 040615c6bc Fix CMakeLists.txt yet again 2014-05-30 03:45:34 -07:00
jp9000 40f9448a83 Fix win-dshow module CMakeLists.txt
Didn't include the DirectShow library, and forgot to add one source file
2014-05-30 03:43:53 -07:00
jp9000 d2ff9d5bf4 UI: Add 'win-dshow' plugin initialization
I really need to make this thing automatically search for plugins some
time.  I've got to admit it's kind of annoying.
2014-05-30 03:31:49 -07:00
jp9000 c55b1771cd Add preliminary DirectShow capture plugin
This covers the basics of devices.  Mostly functional but not at 100%
yet.  Uses 'libdshowcapture' library to capture directshow video/audio.
Both libdshowcapture and the plugin still need some work.  Should at
least capture basic webcams and capture cards for the time being.
2014-05-30 03:29:48 -07:00
jp9000 1343d6bdee libobs: Allow deferred source udpate on create
This allows sources to optionally defer update on creation in order to
prevent updates from being called from threads other than the video
thread.
2014-05-30 03:24:15 -07:00
jp9000 1c8e27f220 win-dshow: Add submodule 'libdshowcapture' 2014-05-30 03:17:25 -07:00
jp9000 924f780f50 WASAPI plugin: Mark parameter macro 2014-05-30 03:09:31 -07:00
jp9000 796ad99335 Plugins: Remove old dshow plugin 2014-05-30 03:09:09 -07:00
jp9000 924709735e libobs/util: Add DStr RAII helper class
..Could also add some super nifty stuff later on too.  However, I think
using std::string whenever possible is probably for the best.
2014-05-30 02:46:08 -07:00
jp9000 90f0bd6887 UI: Add support for buttons in properties view. 2014-05-30 02:44:14 -07:00
jp9000 dfdba6636b libobs/util: Fix string conversion functions
There was a fundamental flaw with the string type conversion functions
where the sizes were not being properly accounted for.  They were using
the 'len' value as a value for the output rather than only for the
input, which was bad because the output could have more or less
characters than the input.
2014-05-30 02:42:03 -07:00
jp9000 e18795a164 libobs/util/dstr.c: Add missing dstr_from_wcs 2014-05-30 02:40:23 -07:00
jp9000 38b610efca libobs/util/dstr.c: Don't find/replace if empty 2014-05-30 02:39:33 -07:00