- 09 2月, 2014 1 次提交
-
-
由 jp9000 提交于
- Fill in the rest of the FFmpeg test output code for testing so it actually properly outputs data. - Improve the main video subsystem to be a bit more optimal and automatically output I420 or NV12 if needed. - Fix audio subsystem insertation and byte calculation. Now it will seamlessly insert new audio data in to the audio stream based upon its timestamp value. (Be extremely cautious when using floating point calculations for important things like this, and always round your values and check your values) - Use 32 byte alignment in case of future optimizations and export a function to get the current alignment. - Make os_sleepto_ns return true if slept, false if the time has already been passed before the call. - Fix sinewave output so that it actually properly calculates a middle C sinewave. - Change the use of row_bytes to linesize (also makes it a bit more consistent with FFmpeg's naming as well)
-
- 07 2月, 2014 1 次提交
-
-
由 jp9000 提交于
- Add planar audio support. FFmpeg and libav use planar audio for many encoders, so it was somewhat necessary to add support in libobs itself. - Improve/adjust FFmpeg test output plugin. The exports were somewhat messed up (making me rethink how exports should be done). Not yet functional; it handles video properly, but it still does not handle audio properly. - Improve planar video code. The planar video code was not properly accounting for row sizes for each plane. Specifying row sizes for each plane has now been added. This will also make it more compatible with FFmpeg/libav. - Fixed a bug where callbacks wouldn't create properly in audio-io and video-io code. - Implement 'blogva' function to allow for va_list usage with libobs logging.
-
- 06 2月, 2014 1 次提交
-
-
由 jp9000 提交于
- Implement texture scaling/conversion/downloading for the main view so we can finally start getting data to output. Also, redesign how it works a bit, it will now properly wait one full frame for each step in the process: rendering the main texture, scaling the main texture to an output texture, staging/downloading the ouput texture, and then outputting that staged data. This way, the GPU will have more than enough time to fully complete each step. - Fix a bug with OpenGL plugin's texture staging function. Was using glBindBuffer instead of what should have been used: glBindTexture. - Change the naming scheme of the variables in default.effect. It's now named with the idea of just "color matrix" in mind instead of "yuv matrix", and instead of DrawRGBToYUV, it's now just DrawMatrix.
-
- 03 2月, 2014 1 次提交
-
-
由 Palana 提交于
The returned ref count was never used and the returned value doesn't actually confer any meaning in a multithreaded environment
-
- 02 2月, 2014 2 次提交
-
-
由 jp9000 提交于
- Add property list callbacks to sources/outputs/encoders so that if necessary user interface can be automatically generated or perhaps a property list widget can be used for them. - Change some of the property API names. obs_property_list_t felt a bit awkward when actually using it, so I just renamed it to obs_properties_t. - Removed the getdata/setdata nad getparam/setparam functions from sources/services, they will be superseded by the dynamic procedure call API.
-
由 jp9000 提交于
Implement a properties definition interface to allow modules to export general properties associated with objects of libobs. The properties definition interface allows the option for automatic settings UI generation (which will make simple plugins easier to develop without the need for user interface), as well as allow real-time property editing of values of things like sources/outputs/etc without having to open property dialogs. More property types can be added in the future as needed as well.
-
- 01 2月, 2014 1 次提交
-
-
由 jp9000 提交于
Add the ability to be able to call and use toolkit-specific or program-specific user interface in modules. User interface code can be either bundled with the module, or 'split' out in to separate libraries (recommended). There are three reasons why splitting is recommended: 1.) It allows plugins to be able to create custom user interface for each toolkit if desired. 2.) Often, UI will be programmed in one language (the language of the toolkit), and core logic may be programmed in another. This allows plugins to keep the languages separated if necessary. 3.) It prevents direct linkage of UI toolkits libraries with core module logic. Splitting is not required, though is recommended if you want your plugin to be more flexible with other user interface toolkits or programs. Will implement a generic properties lookup next, which will be used for automatic UI handling so that plugin UI isn't necessarily required.
-
- 30 1月, 2014 3 次提交
-
-
由 jp9000 提交于
Scene items previously were removed by calling obs_sceneitem_destroy, but this proved to be a potential race condition where two different threads could try to destroy the same scene item at the same time. Instead of doing that, reference counting is now used on scene items, and an explicit obs_sceneitem_remove function is used instead for item removal, which sets a 'removed' variable to ensure it can only be called exactly one time.
-
由 jp9000 提交于
The previous commit used the scene as a parameter to check to see if the scene item was still present within the scene before destroying, but this was actually unnecessary because the fault was because the destroy signal was being triggered *before* the scene's mutex locked, thus causing a race condition. I changed the code so that it signals after the lock instead of before, so the scene parameter should no longer be necessary.
-
由 Palana 提交于
Fixes a deadlock when trying to remove a source from the GUI. The scene item signal handlers would mark the source as removed which results in the video thread also trying to run obs_sceneitem_destroy thereby deadlocking the video thread (and the GUI thread)
-
- 28 1月, 2014 1 次提交
-
-
由 jp9000 提交于
Add a fairly easy to use settings interface that can be passed to plugins, and replaced the old character string system that was being used before. The new data interface allows for an easier method of getting/altering settings for plugins, and is built to be serializable to/from JSON. Also, removed another wxFormBuilder file that was no longer in use.
-
- 19 1月, 2014 1 次提交
-
-
由 jp9000 提交于
- Added some code for FFmpeg output that I'm still playing around with. Right now I'm just trying to get it to output to file and try to understand the FFmpeg/libav APIs. Hopefully in the future this plugin can be used for any sort of output to FFmpeg. - Fixed a cast warning in audio-io.c with size_t -> uint32_t - Renamed the 'video_info' and 'audio_info' structures to 'video_conver_info' and 'audio_convert_info' to better represent their actual purpose, and to avoid confusion with 'audio_output_info' and 'video_output_info' structures. - Removed a few macros from obs-def.h that were at one point going to be used but no longer going to be used (at least for now)
-
- 17 1月, 2014 3 次提交
-
-
由 jp9000 提交于
Just a minor fix mostly because I noticed that I kept accidentally forgetting to add checks to the code properly. This is one of those cases where macros come in useful, as macros can automate the process and help prevent these mistakes from happening by accident.
-
由 jp9000 提交于
Changed the comments to properly reflect the new callbacks, as I had forgotten to update the comments for them both. Also, changed "setbitrate" and "request_keyframe" return values to be boolean.
-
由 jp9000 提交于
- First, I redid the output interface for libobs. I feel like it's going in a pretty good direction in terms of design. Right now, the design is so that outputs and encoders are separate. One or more outputs can connect to a specific encoder to receive its data, or the output can connect directly to raw data from libobs output itself, if the output doesn't want to use a designated encoder. Data is received via callbacks set when you connect to the encoder or raw output. Multiple outputs can receive the data from a single encoder context if need be (such as for streaming to multiple channels at once, and/or recording with the same data). When an encoder is first connected to, it will connect to raw output, and start encoding. Additional connections will receive that same data being encoded as well after that. When the last encoder has disconnected, it will stop encoding. If for some reason the encoder needs to stop, it will use the callback with NULL to signal that encoding has stopped. Some of these things may be subject to change in the future, though it feels pretty good with this design so far. Will have to see how well it works out in practice versus theory. - Second, Started adding preliminary RTMP/x264 output plugin code. To speed things up, I might just make a direct raw->FFmpeg output to create a quick output plugin that we can start using for testing all the subsystems.
-
- 14 1月, 2014 1 次提交
-
-
由 jp9000 提交于
Completely revamped the entire media i/o data and handlers. The original idea was to have a system that would have connecting media inputs and outputs, but at a certain point I realized that this was an unnecessary complexity for what we wanted to do. (Also, it reminded me of directshow filters, and I HATE directshow with a passion, and wouldn't wish it upon my greatest enemy) Now, audio/video outputs are connected to directly, with better callback handlers, and will eventually have the ability to automatically handle conversions such as 4:4:4 to 4:2:0 when connecting to an input that uses them. Doing this will allow the video/audio i/o handlers to also prevent duplicate conversion, as well as make it easier/simple to use. My true goal for this is to make output and encoder plugins as simple to create as possible. I want to be able to be able to create an output plugin with almost no real hassle of having to worry about image conversions, media inputs/outputs, etc. A plugin developer shouldn't have to handle that sort of stuff when he/she doesn't really need to. Plugins will be able to simply create a callback via obs_video() and/or obs_audio(), and they will automatically receive the audio/video data in the formats requested via a simple callback, without needing to do almost anything else at all.
-
- 08 1月, 2014 1 次提交
-
-
由 jp9000 提交于
- 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.
-
- 05 1月, 2014 1 次提交
-
-
由 jp9000 提交于
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.
-
- 02 1月, 2014 1 次提交
-
-
由 jp9000 提交于
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
-
- 31 12月, 2013 1 次提交
-
-
由 jp9000 提交于
-
- 30 12月, 2013 1 次提交
-
-
由 jp9000 提交于
-
- 29 12月, 2013 1 次提交
-
-
由 jp9000 提交于
-
- 28 12月, 2013 1 次提交
-
-
由 jp9000 提交于
-
- 27 12月, 2013 1 次提交
-
-
由 jp9000 提交于
-
- 25 12月, 2013 1 次提交
-
-
由 Palana 提交于
-
- 22 12月, 2013 2 次提交
- 21 12月, 2013 2 次提交
- 18 12月, 2013 1 次提交
-
-
由 jp9000 提交于
-
- 16 12月, 2013 1 次提交
-
-
由 Palana 提交于
-
- 06 12月, 2013 1 次提交
-
-
由 jp9000 提交于
-
- 03 12月, 2013 1 次提交
-
-
由 jp9000 提交于
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+)
-
- 27 11月, 2013 1 次提交
-
-
由 jp9000 提交于
made it so that graphics device and associated objects are not lost every time video settings are changed
-
- 23 11月, 2013 1 次提交
-
-
由 jp9000 提交于
-
- 21 11月, 2013 3 次提交
- 13 11月, 2013 1 次提交
-
-
由 jp9000 提交于
added support for jansson, added new output files, made some adjustments to the API, fixed a UI subclass issue
-
- 02 11月, 2013 1 次提交
-
-
由 jp9000 提交于
-