- 11 3月, 2014 19 次提交
-
-
由 fryshorts 提交于
-
由 fryshorts 提交于
-
由 fryshorts 提交于
Instead of copying the data from pulse to a local buffer and then push it to obs, the pointer from pulse is now used and pa_stream_drop() called afterwards.
-
由 Ziemas 提交于
-
由 fryshorts 提交于
- first try at implementing a pulse audio input plugin, it is currently completely untested. - added license headers to source files
-
由 fryshorts 提交于
Moved the screen grabbing and texture generation to the _tick function in order to keep _render fast. Migrated xshm video source to the new plugin api.
-
由 fryshorts 提交于
Added library to get the mouse pointer with the XFixes extension and draw it via a sprite.
-
由 fryshorts 提交于
added linux test module with first implementation of a screengrabber using the xshm extension for x11
-
由 jp9000 提交于
Used the mac function instead by accident
-
由 jp9000 提交于
Didn't convert the event names and didn't have the right mac includes
-
由 jp9000 提交于
And remember to compile on non-windows systems before committing
-
由 jp9000 提交于
...The reason why audio didn't work was because I overwrote the bitrate values. As for semaphores, mac doesn't support unnamed semaphores without using mach semaphores. So, I just implemented a semaphore wrapper for each OS.
-
由 jp9000 提交于
-
由 jp9000 提交于
-
由 jp9000 提交于
Also, check that audio devices are available before setting defaults
-
由 jp9000 提交于
-
由 jp9000 提交于
Ensure that a source has a valid name. Duplicates aren't a big deal internally, but sources without a name are probably something that should be avoided. Made is so that if a source is programmatically created without a name, it's assigned an index based name. In the main basic-mode window, made it check to make sure the name was valid as well.
-
由 jp9000 提交于
-
由 jp9000 提交于
- Add some temporary streaming code using FFmpeg. FFmpeg itself is not very ideal for streaming; lack of direct control of the sockets and no framedrop handling means that FFmpeg is definitely not something you want to use without wrapper code. I'd prefer writing my own network framework in this particular case just because you give away so much control of the network interface. Wasted an entire day trying to go through FFmpeg issues. There's just no way FFmpeg should be used for real streaming (at least without being patched or submitting some sort of patch, but I'm sort of feeling "meh" on that idea) I had to end up writing multiple threads just to handle both connecting and writing, because av_interleaved_write_frame blocks every call, stalling the main encoder thread, and thus also stalling draw signals. - Add some temporary user interface for streaming settings. This is just temporary for the time being. It's in the outputs section of the basic-mode settings - Make it so that dynamic arrays do not free all their data when the size just happens to be reduced to 0. This prevents constant reallocation when an array keeps going from 1 item to 0 items. Also, it was bad to become dependent upon that functionality. You must now always explicitly call "free" on it to ensure the data is free, and that's how it should be. Implicit functionality can lead to confusion and maintainability issues.
-
- 08 3月, 2014 6 次提交
-
-
由 jp9000 提交于
Had the audio restart slot connected to things that didn't require a restart
-
由 jp9000 提交于
The strings didn't have ending double quotes. No clue why this didn't fail in GCC and VC. Well, VC is horrible but I expected better out of GCC.
-
由 jp9000 提交于
- Fix a bug where the initial audio data insertion would cause all audio data to unintentionally clear (mixed up < and > operators, damn human error) - Fixed a potential interdependant lock scenario with channel mutex locks and graphics mutex locks. The main video thread could lock the graphics mutex and then while in the graphics mutex could lock the channels mutex. Meanwhile in another thread, the channel mutex could get locked, and then the graphics mutex would get locked, causing a deadlock. The best way to deal with this is to not let mutexes lock within other mutexes, but sometimes it's difficult to avoid such as in the main video thread. - Audio devices should now be functional, and the devices in the audio settings can now be changed as desired.
-
由 jp9000 提交于
There shouldn't be errors if the actual source has successfully been created, just warnings.
-
由 jp9000 提交于
Also, revamp the settings dialog code and make it use signals and slots a bit better.
-
由 jp9000 提交于
Modify the obs_display API so that it always uses an orthographic projection that is the size of the display, rather than OBS' base size. Having it do an orthographic projection to OBS' base size was silly because it meant that everything would be skewed if you wanted to draw 1:1 in the display. This deoes mean that the callbacks must handle resizing the images, but it's worth it to ensure 1:1 draw sizes. As for the preview widget, instead of making some funky widget within widget that resizes, it's just going to be a widget within the entire top layout. Also changed the preview padding color to gray.
-
- 07 3月, 2014 3 次提交
-
-
由 jp9000 提交于
- Implement a means of obtaining default settings for an input/output/encoder. obs_source_defaults for example will return the default settings for a particular source type. - Because C++ doesn't have designated initializers, use functions in the WASAPI plugin to register the sources instead.
-
由 jp9000 提交于
Having everything in global.ini meant that if you wanted different settings for studio mode, that it would also overwrite it for basic mode. This way, the settings for each mode are separate, and you can use different settings for each mode.
-
由 jp9000 提交于
The function would fail to compile on linux because the variables didn't exist
-
- 06 3月, 2014 2 次提交
-
-
由 jp9000 提交于
It will now load up a the list of audio input/output devices in the combo boxes in audio settings.
-
由 jp9000 提交于
- Implement windows monitor capture (code is so much cleaner than in OBS1). Will implement duplication capture later - Add GDI texture support to d3d11 graphics library - Fix precision issue with sleep timing, you have to call timeBeginPeriod otherwise windows sleep will be totally erratic.
-
- 04 3月, 2014 3 次提交
-
-
由 jp9000 提交于
I can't believe I did !res there. Well I suppose I can believe it, but still.
-
由 jp9000 提交于
The enumeration code being up at the top was making things quite messy, so I split that code out to a separate set of files.
-
由 jp9000 提交于
- Add WASAPI audio capture for windows, input and output - Check for null pointer in os_dlopen - Add exception-safe 'WinHandle' and 'CoTaskMemPtr' helper classes that will automatically call CloseHandle on handles and call CoTaskMemFree on certain types of memory returned from windows functions - Changed the wide <-> MBS/UTF8 conversion functions so that you use buffers (like these functions are *supposed* to behave), and changed the ones that allocate to a different naming scheme to be safe
-
- 03 3月, 2014 5 次提交
-
-
由 jp9000 提交于
Somehow this code didn't get included with the last commit.
-
由 jp9000 提交于
Also, don't have it repeat trying to reconnect if no devices are found
-
由 jp9000 提交于
- Split input and output audio captures so that they're different sources. This allows easier handling and enumeration of audio devices without having to do some sort of string processing. This way the user interface code can handle this a bit more easily, and so that it doesn't confuse users either. This should be done for all audio capture sources for all operating systems. You don't have to duplicate any code, you just need to create input/output wrapper functions to designate the audio as input or output before creation. - Make it detect soundflower and wavtap devices as mac "output" devices (even though they're actually input) for the mac output capture, and make it so that users can select a default output capture and automatically use soundflower or wavtap. I'm not entirely happy about having to do this, but because mac is designed this way, this is really the only way to handle it that makes it easier for users and UI code to deal with. Note that soundflower and wavtap are still also designated as input devices, so will still show up in input device enumeration. - Remove pragma messages because they were kind polluting the other compiler messages and just getting in the way. In the future we can just do a grep for TODO to find them. - Redo list property again, this time using a safer internal array, rather than requiring sketchy array inputs. Having functions handle everything behind the scenes is much safer. - Remove the reference counter debug log code, as it was included unintentionally in a commit.
-
由 jp9000 提交于
Categories added an unnecessary complexity to making properties, and would very likely almost never be used in most cases, and were more of a display feature. The main issue is that it made property data more complex to work with, and I just didn't feel comfortable with that. Also, added a function to allow you to retrieve a porperty just by its name.
-
由 jp9000 提交于
-
- 02 3月, 2014 2 次提交
-
-
由 jp9000 提交于
As usual, microsoft treats all enums as integers, rather than actually even checking the enum type. Worthless compiler. Just complete garbage.
-
由 jp9000 提交于
When a source/output/etc has a property of a 'list' type, there was no way to get the names associated with its values. That, and it only supported lists of either text, or enums (0..[value] only). Now, you can associate translated names with those values, and use integer, float, or string values. Put it all in to one function as well to simplify its usage. I plan on using this to help get enumerations from devices/etc for certain types of sources. For example, if I get the properties of an audio source, I'd like to have a list of available devices with it as well.
-