- 11 3月, 2014 26 次提交
-
-
由 fryshorts 提交于
The event functions got renamed in obs.
-
由 fryshorts 提交于
-
由 fryshorts 提交于
We use the default format to avoid any resampling by pulse audio, since obs will probably resample anyways if necessary.
-
由 fryshorts 提交于
-
由 fryshorts 提交于
-
由 fryshorts 提交于
-
由 fryshorts 提交于
pulse audio provides it's own convenience function to iterate the mainloop, no need to use a custom one. pulseaudio provides timing information for the stream, we use that instead of system time.
-
由 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
-