- 26 1月, 2016 7 次提交
-
-
由 jp9000 提交于
The skipped frame count (dropped frames due to encoding being overloaded) would erroneously include lagged frames (dropped frames due to render stalls). This will make diagnosing actual issues a user might be having a bit easier.
-
由 jp9000 提交于
Problem: When an output is started with encoders that have already been started by another output, and it starts in between the window in between where the first audio packets start coming in and where the first video packet comes in, the output would get audio packets with timestamps potentially much later than the first video frame when the first video frame finally comes in. The audio/video encoders will almost always have a differing delay. Solution: Detect that starting window, and if within that starting window, wait for a new keyframe from video instead of trying to sync up video. Additional Notes: In these cases where an output starts with already-active encoders, this patch also reduces the potential sync offset between the first video frame and the first audio frame. Before, it would sync the first video frame with the first audio frames right after that, but now it syncs with the closest audio frame in the interleaved array, which halves the potential sync difference between the first video frame and the first audio frame of already-active encoders. (So now the potential sync difference is roughly 11.6 milliseconds at 44.1khz audio, where it was 23.2 before)
-
由 jp9000 提交于
Ensures that the packet dts_usec vals which are generated for syncing/interleaving use the proper offset relative to where they're supposed to be starting from. The negative DTS of a first video packet could potentially have been applied twice due to this.
-
由 jp9000 提交于
Fixes potential race conditions when two threads are trying to initialize/start/stop the same encoders at the same time.
-
由 jp9000 提交于
Allows the ability to use fixed stack memory to construct a calldata_t structure rather than having to allocate each time. This is fine to do for certain signals where the calldata never goes above a specific size. If by some chance the size is insufficient, it will output a log message.
-
由 jp9000 提交于
Allows getting the timestamp for the video frame currently being rendered.
-
由 jp9000 提交于
These functions allow animated gifs and management of image files. Uses libnsgif to load animated gifs.
-
- 23 1月, 2016 7 次提交
-
-
由 jp9000 提交于
Allows loading the file to memory first so the graphics subsystem doesn't necessarily have to be locked when loading image files.
-
由 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.
-
由 jp9000 提交于
Originally this was programmed to call the recursive height/width functions if the source type was an input with the intention of not calling it on filters, but instead of doing that just program it to do just that: only call the recursive height/width functions if it's not a filter.
-
由 jp9000 提交于
Allows transitions to be able to return a blank texture to transitions if a transition is transitioning from/to a NULL source.
-
由 jp9000 提交于
Allows gs_render_sprite to be used without a texture as long as cx/cy are set. There's no reason why it shouldn't be able to do this.
-
由 jp9000 提交于
Needless function calls here for what should be intrinsic calls
-
由 jp9000 提交于
These were in the APPLE section by mistake
-
- 15 1月, 2016 1 次提交
-
-
由 Gol-D-Ace 提交于
-
- 28 12月, 2015 1 次提交
-
-
由 jp9000 提交于
-
- 27 12月, 2015 1 次提交
-
-
由 Gol-D-Ace 提交于
-
- 22 12月, 2015 17 次提交
-
-
由 jp9000 提交于
Prevents from having to query the base audio subsystem for the sample rate each time the function is called
-
由 jp9000 提交于
Useful for going traversing the list of audio sources (particularly for the new audio subsystem)
-
由 jp9000 提交于
This was originally used for calculating audio volume if transitions were active, but transitions won't work that way so tracking the active transitions is no longer needed.
-
由 jp9000 提交于
Uses 128bit integer math to prevent overflow
-
由 jp9000 提交于
Allows some limited 128bit integer math functions, primarily for the sake of performing calculations on nanosecond-based intervals of time
-
由 jp9000 提交于
-
由 jp9000 提交于
-
由 jp9000 提交于
-
由 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 提交于
-
由 jp9000 提交于
Prunes code used to workaround libobs "user sources" (such as sourceSceneRefs) and instead simply holds its own references and saves sources it chooses with obs_save_sources_filtered.
-
由 jp9000 提交于
(Note: This commit breaks UI compilation. Skip if bisecting) Ensures that a reference is kept until the signals associated with that reference are disconnected.
-
由 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.
-
由 jp9000 提交于
These signals are meant to replace the add/remove signals.
-
由 jp9000 提交于
-
- 15 12月, 2015 6 次提交
-
-
由 jp9000 提交于
-
由 jp9000 提交于
These functions created stack variables but never actually initialized them. If the calldata variable is invalid, the return values will be the uninitialized stack value.
-
由 jp9000 提交于
-
由 jp9000 提交于
-
由 jp9000 提交于
-
由 jp9000 提交于
The name was inconsistent with the darray_swap function that it's a macro for.
-