- 07 2月, 2017 1 次提交
-
-
由 jp9000 提交于
Adds functions to turn on audio monitoring to allow the user to hear playback of an audio source over the user's speaker. It can be set to turn off monitoring and only output to stream, or it can be set to output only to monitoring, or it can be set to both. On windows, audio monitoring uses WASAPI. Windows also is capable of syncing the audio to the video according to when the video frame itself was played. On mac, it uses AudioQueue. On linux, it's not currently implemented and won't do anything (to be implemented).
-
- 25 1月, 2017 1 次提交
-
-
由 jp9000 提交于
From 0.0 (not congested) to 1.0 (completely congested/dropping).
-
- 24 12月, 2016 1 次提交
-
-
由 jp9000 提交于
Uses the libcaption library to allow insertion of caption data directly in to H.264 frame data.
-
- 08 12月, 2016 2 次提交
- 23 8月, 2016 1 次提交
-
-
由 jp9000 提交于
Allows getting the current active framerate that the core is rendering with. This takes in to account any rendering lag or stalls that may be occurring.
-
- 06 8月, 2016 1 次提交
-
-
由 jp9000 提交于
-
- 29 6月, 2016 1 次提交
-
-
由 jp9000 提交于
Allows the ability to use scale filters such as point, bicubic, lanczos on specific scene items, disabled by default. When using one of the latter two options, if the item's scale is under half of the source's original size, it uses the bilinear low resolution downscale shader instead.
-
- 23 4月, 2016 1 次提交
-
-
由 jp9000 提交于
(Note: this commit also modifies the obs-filters and test-input modules) Changes the obs_source_process_filter_begin return type so that it returns true/false to indicate that filter processing should or should not continue (for example if the filter is bypassed or if there's some other sort of issue that causes the filtering to fail)
-
- 14 4月, 2016 1 次提交
-
-
由 jp9000 提交于
Allows the ability to mark an encoder as deprecated (such as the media foundation h264 encoders)
-
- 11 4月, 2016 1 次提交
-
-
由 jp9000 提交于
This is a band-aid solution to be able to create temporary services without logging them and keep them out of enumeration functions. This is a band-aid solution -- 'master obs context lists' should not be kept by the core. Logging of object creation/destruction should also be controlled by the front-end instead of the core.
-
- 04 4月, 2016 1 次提交
-
-
由 jp9000 提交于
Determines whether an obs object was created successfully. If a plugin that's used for a saved object is removed (third party plugins), its data will become invalid, but the objects can often still be created for the sake of preserving user settings, but sometimes these objects can cause problems if they're actually used (such as using them for transitions).
-
- 31 3月, 2016 2 次提交
- 27 3月, 2016 1 次提交
-
-
由 jp9000 提交于
-
- 22 3月, 2016 2 次提交
-
-
由 jp9000 提交于
Adds deinterlacing API functions. Both standard and 2x variants are supported. Deinterlacing is set via obs_source_set_deinterlace_mode and obs_source_set_deinterlace_field_order. This was implemented in to the core itself because deinterlacing should happen before effect filters are processed, but after async filters are processed. If this were added as a filter, there is the possibility that a different filter is processed before deinterlacing, which could mess with the result. It was also a bit easier to implement this way due to the fact that that deinterlacing may need to have access to the previous async frame. Effects were split in to separate files to reduce load time (especially for yadif shaders which take a significant amount of time to compile).
-
由 John Bradley 提交于
-
- 12 3月, 2016 1 次提交
-
-
由 jp9000 提交于
Kindly ignore this commit, this is to prove that this is also my email.
-
- 05 3月, 2016 1 次提交
-
-
由 jp9000 提交于
(Note: This commit also changes the UI) Changed: ------------------- void obs_load_sources(obs_data_array_t *sources_list); To: ------------------- void obs_load_sources(obs_data_array_t *sources_list, obs_source_load_cb callback, void *private_data); Signals should really never be required to use to make some function work properly. The "source_load" signal was required for the obs_load_sources function, but it's meant more for loading private data in the settings, not for general loading of sources. This changes it so that a callback is explicitly required to load the sources.
-
- 27 2月, 2016 2 次提交
- 27 1月, 2016 12 次提交
-
-
由 jp9000 提交于
(Note: This commit also modifies the UI) Allows the ability to duplicate sources fully copied, and/or have the scene and its duplicates be private sources
-
由 jp9000 提交于
Creates a scene marked as a private source
-
由 jp9000 提交于
Allows full duplication of sources (with exception of sources that are marked with the OBS_SOURCE_DO_NOT_DUPLICATE output capability flag)
-
由 jp9000 提交于
Mostly only used for transitions with the intention of automatically creating transitions which don't require configuration, returns whether the source has any properties or not (whether it's configurable)
-
由 jp9000 提交于
Allows creation of private/unlisted sources/outputs/services/encoders
-
由 jp9000 提交于
(Note: This commit also modifies UI) Instead of using signals, use designated callback lists for audio capture and audio control helpers. Signals aren't suitable here due to the fact that signals aren't meant for things that happen every frame or things that happen every time audio/video is received. Also prevents audio from being allocated every time these functions are called due to the calldata structure.
-
由 jp9000 提交于
Transition sources are implemented by registering a source type as OBS_SOURCE_TYPE_TRANSITION. They're automatically marked as video composite sources, and video_render/audio_render callbacks must be set when registering the source. get_width and get_height callbacks are unused for these types of sources, as transitions automatically handle width/height behind the scenes with the transition settings. In the video_render callback, the helper function obs_transition_video_render is used to assist in automatically processing and rendering the audio. A render callback is passed to the function, which in turn passes to/from textures that are automatically rendered in the back-end. Similarly, in the audio_render callback, the helper function obs_transition_audio_render is used to assist in automatically processing and rendering the audio. Two mix callbacks are used to handle how the source/destination sources are mixed together. To ensure the best possible quality, audio processing is per-sample. Transitions can be set to automatically resize, or they can be set to have a fixed size. Sources within transitions can be made to scale to the transition size (with or without aspect ratio), or to not scale unless they're bigger than the transition. They can have a specific alignment within the transition, or they just default to top-left. These features are implemented for the purpose of extending transitions to also act as "switch" sources later, where you can switch to/from two different sources using the transition animation. Planned (but not yet implemented and lower priority) features: - "Switch" transitions which allow the ability to switch back and forth between two sources with a transitioning animation without discarding the references - Easing options to allow the option to transition with a bezier or custom curve - Manual transitioning to allow the front-end/user to manually control the transition offset
-
由 jp9000 提交于
-
由 jp9000 提交于
(Note: test and UI are also modified by this commit) API Changed (removed "enum obs_source_type type" parameter): ------------------------- obs_source_get_display_name obs_source_create obs_get_source_output_flags obs_get_source_defaults obs_get_source_properties Removes the "type" parameter from these functions. The "type" parameter really doesn't serve much of a purpose being a parameter in any of these cases, the type is just to indicate what it's used for.
-
由 jp9000 提交于
The new audio subsystem fixes two issues: - First Primary issue it fixes is the ability for parent sources to intercept the audio of child sources, and do custom processing on them. The main reason for this was the ability to do custom cross-fading in transitions, but it's also useful for things such as side-chain effects, applying audio effects to entire scenes, applying scene-specific audio filters on sub-sources, and other such possibilities. - The secondary issue that needed fixing was audio buffering. Previously, audio buffering was always a fixed buffer size, so it would always have exactly a certain number of milliseconds of audio buffering (and thus output delay). Instead, it now dynamically increases audio buffering only as necessary, minimizing output delay, and removing the need for users to have to worry about an audio buffering setting. The new design makes it so that audio from the leaves of the scene graph flow to the root nodes, and can be intercepted by parent sources. Each audio source handles its own buffering, and each audio tick a specific number of audio frames are popped from the front of the circular buffer on each audio source. Composite sources (such as scenes) can access the audio for child sources and do custom processing or mixing on that audio. Composite sources use the audio_render callback of sources to do synchronous or deferred audio processing per audio tick. Things like scenes now mix audio from their sub-sources.
-
由 jp9000 提交于
(Note: This commit breaks libobs compilation. Skip if bisecting) These variables are considered obsolete and will no longer be needed.
-
由 jp9000 提交于
(Note: This commit breaks libobs compilation. Skip if bisecting) Removes audio lines and stores the circular buffer for the audio on the source itself.
-
- 26 1月, 2016 1 次提交
-
-
由 jp9000 提交于
Allows getting the timestamp for the video frame currently being rendered.
-
- 23 1月, 2016 1 次提交
-
-
由 jp9000 提交于
There shouldn't be any need to call these functions manually. These functions are called automatically by obs_save_sources and obs_load_sources.
-
- 22 12月, 2015 4 次提交
-
-
由 jp9000 提交于
Before if a source was set to invisible it would still be considered active. This changes it so that the source is deactivated when the source is invisible to reduce needless resource usage or capturing.
-
由 jp9000 提交于
Renames: ---------------------------------------- obs_source_add_child obs_source_remove_child obs_source_enum_sources obs_source_enum_tree obs_source_info::enum_sources To: ---------------------------------------- obs_source_add_active_child obs_source_remove_active_child obs_source_enum_active_sources obs_source_enum_active_tree obs_source_info::enum_active_sources These functions/callbacks had misleading names: they originally implied any child sources, when they actually meant active child sources that are being used to render video or audio. It's important that the function names represent their actual purpose.
-
由 Palana 提交于
(Note: This commit breaks UI compilation. Skip if bisecting) Adds a means of saving specific sources that the front-end chooses, rather than being forced to use the now-removed "user list".
-
由 jp9000 提交于
(Note: This commit breaks UI compilation. Skip if bisecting) API Removed: ------------------------ obs_add_source API Changed: ------------------------ obs_source_remove: Now just marks/signals a source for removal The concept of "user sources" is flawed: it was something that the front-end was forced to deal with if it wanted to automate source saving/loading, and often it had to code around it. That's not how saving/loading should work, a front-end should be allowed to manage lists of sources in the way it explicitly chooses, and it should be able to choose which sources it wants to save/load.
-
- 12 12月, 2015 1 次提交
-
-
由 jp9000 提交于
This function was removed even though the browser plugin was using this function on mac, so this is being put back in temporarily while the browser plugin is modified to remove this function.
-