0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
obs-studio/libobs
jp9000 6839ff7686 libobs: Implement transition sources
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
2016-01-26 11:49:45 -08:00
..
callback libobs/callback: Allow ability to use calldata_t with stack 2016-01-25 17:29:08 -08:00
data libobs: Add Planar444 conversion to effect 2015-04-16 22:43:46 -07:00
graphics libobs/graphics: Add gs_image_file_* functions (w/animated gifs) 2016-01-25 17:29:08 -08:00
media-io libobs/media-io: Reset audio array for each input 2016-01-26 11:49:36 -08:00
util libobs/util: Make all atomic funcs inline and use intrinsics 2016-01-23 07:17:44 -08:00
CMakeLists.txt libobs: Implement transition sources 2016-01-26 11:49:45 -08:00
LibObsConfig.cmake.in cmake: Export plugin data destination 2014-09-27 09:41:32 -07:00
LibObsConfigVersion.cmake.in Export libobs cmake target, so external plugins can be built without ugly hacks 2014-05-08 14:43:16 +02:00
obs-audio-controls.c libobs: Use audio-math.h for decibel conversion 2015-06-26 03:40:28 -07:00
obs-audio-controls.h libobs: Add peak hold property to volmeter 2014-12-14 18:39:54 +01:00
obs-audio.c libobs: Implement new audio subsystem 2016-01-26 11:49:34 -08:00
obs-avc.c libobs: Add function to determine AVC keyframes 2014-12-21 10:14:22 -08:00
obs-avc.h libobs: Add function to determine AVC keyframes 2014-12-21 10:14:22 -08:00
obs-cocoa.c libobs: Use IOKit error code when polling hotkeys (OSX) 2015-10-07 11:06:40 +02:00
obs-config.h libobs: Update to version 0.12.4 2015-12-11 17:03:08 -08:00
obs-data.c libobs: Fix unsigned expression warning 2015-11-16 08:22:55 -08:00
obs-data.h libobs: Add obs_data wrappers for media_frames_per_second 2015-11-14 15:37:59 +01:00
obs-defs.h libobs: Add output stop error for "no space left" 2015-09-18 22:04:23 -07:00
obs-display.c libobs: Add func to set display background color 2015-04-10 07:27:23 -07:00
obs-encoder.c libobs: Subtract packet dts_usec with first packet offset 2016-01-25 17:29:09 -08:00
obs-encoder.h (API Change) libobs: Pass type data to get_name callbacks 2015-09-16 09:21:12 -07:00
obs-ffmpeg-compat.h Use propper ffmpeg compatiblity instead of relying on deprecated functions 2014-06-28 20:54:14 +02:00
obs-hotkey-name-map.c libobs: Fix warning from mingw 2015-07-11 14:26:48 -07:00
obs-hotkey.c libobs: Use byte sequence for non-breaking spaces 2015-10-15 01:31:07 -07:00
obs-hotkey.h libobs: Add scene item hotkeys 2015-05-11 20:45:25 +02:00
obs-hotkeys.h libobs: Add global hotkey support 2015-05-11 20:45:24 +02:00
obs-interaction.h Add interaction support to libobs 2014-09-15 17:19:37 -05:00
obs-internal.h libobs: Implement transition sources 2016-01-26 11:49:45 -08:00
obs-module.c libobs: Do not require get_width/height for filters/transitions 2016-01-26 11:49:43 -08:00
obs-module.h libobs: Add API func to get module config path 2015-08-19 12:16:21 -07:00
obs-nix.c libobs: Fix mouse button hotkeys on linux 2015-05-16 20:10:49 -07:00
obs-output-delay.c libobs: Add encoded output delay support 2015-09-10 12:13:37 -07:00
obs-output.c libobs: Report lost frame count due to rendering lag 2016-01-25 17:29:09 -08:00
obs-output.h (API Change) libobs: Pass type data to get_name callbacks 2015-09-16 09:21:12 -07:00
obs-properties.c libobs: Add frame rate property 2015-11-14 15:37:59 +01:00
obs-properties.h libobs: Add frame rate property 2015-11-14 15:37:59 +01:00
obs-scene.c libobs: Release scene items outside of scene mutexes 2016-01-26 11:49:41 -08:00
obs-scene.h libobs: Buffer scene item visibility actions 2016-01-26 11:49:36 -08:00
obs-service.c libobs: Add API to get object ids 2015-10-21 07:46:41 -07:00
obs-service.h (API Change) libobs: Pass type data to get_name callbacks 2015-09-16 09:21:12 -07:00
obs-source-transition.c libobs: Implement transition sources 2016-01-26 11:49:45 -08:00
obs-source.c libobs: Implement transition sources 2016-01-26 11:49:45 -08:00
obs-source.h libobs: Remove 'get_transition_volume' callback 2016-01-26 11:49:44 -08:00
obs-ui.h libobs: Add private data to definition structures 2015-09-16 09:17:13 -07:00
obs-video.c libobs: Remove "presentation volume" and "base volume" (skip) 2016-01-26 11:49:32 -08:00
obs-view.c libobs: Hide sources when an obs_view is destroyed 2015-03-02 12:23:25 -08:00
obs-win-crash-handler.c libobs: Always write crashing thread first 2015-11-18 12:42:14 -08:00
obs-windows.c libobs/util: Add os_get_abs_path(_ptr) functions 2015-10-15 01:35:18 -07:00
obs.c libobs: Implement transition sources 2016-01-26 11:49:45 -08:00
obs.h libobs: Implement transition sources 2016-01-26 11:49:45 -08:00
obs.hpp (API Change) libobs: Add global module config path 2015-08-19 12:16:20 -07:00
obsconfig.h.in libobs/util: Add functions to inhibit sleep 2015-09-12 22:08:05 -07:00