1. 31 1月, 2016 6 次提交
  2. 30 1月, 2016 2 次提交
    • J
      Merge pull request #501 from boombatower/gcc48 · cc2007f1
      Jim 提交于
      UI: Fix GCC 4.8 compilation issue
      cc2007f1
    • B
      UI: Fix GCC 4.8 compilation issue · 8593c4ba
      boombatower 提交于
      Apparently using QPointer container for the QObject being given to the
      connect function makes it so it can't find the actual function to use.
      I'm guessing this is incomplete functionality or a bug that existed in
      GCC 4.8.  Doesn't happen in 4.9+.
      8593c4ba
  3. 28 1月, 2016 3 次提交
  4. 27 1月, 2016 29 次提交
    • J
      UI: Implement transitions and preview/program mode · 544953c8
      jp9000 提交于
      Implements transitions, and introduces "Studio Mode" which allows live
      editing of the same or different scenes while preserving what's
      currently being displayed.
      
      Studio Mode offers a number of new features:
        - The ability to edit different scenes or the same scene without
          modifying what's currently being displayed (of course)
      
        - The ability to set up "quick transitions" with a desired transition
          and duration that can be assigned hotkeys
      
        - The option to create full copies of all sources in the program scene
          to allow editing of source properties of the same scene live without
          modifying the output, or (by default) just use references.  (Note
          however that certain sources cannot be duplicated, such as capture
          sources, media sources, and device sources)
      
        - Swap Mode (enabled by default) which swaps the program scene with
          the preview scene when a transition completes
      
      Currently, only non-configurable transitions (transitions without
      properties) are listed, and the only transitions available as of this
      writing are fade and cut.  In future versions more transitions will be
      added, such as swipe, stingers, and many other various sort of
      transitions, and the UI will support being able to add/configure/remove
      those sort of configurable transitions.
      544953c8
    • J
      libobs: Use calldata with stack for simple signals · 6f98bd9f
      jp9000 提交于
      Makes signals use stack memory rather than allocate memory each time.
      Most likely a completely insignificant and pointless optimization.
      6f98bd9f
    • J
      libobs: Add comment warning about scene mutex lock ordering · 91ebb5c5
      jp9000 提交于
      A comment that serves as a reminder to anyone who might need to edit the
      scene code.  If the graphics mutex must be locked, it must be locked
      first before entering the scene mutexes, or outside of the scene
      mutexes.
      91ebb5c5
    • J
      libobs: Fix audio issues with async video/audio looping · ce0a1892
      jp9000 提交于
      This fixes an age-old issue where audio samples could be lost or audio
      could temporarily go out of sync in the case of looping videos.  When
      audio/video data is looping, there's a window between when the audio
      data resets its timestamp value and when the video data resets its
      timestamp value.  This method simply pushes back the audio data while in
      that window and does not modify sync, and when it detects that its out
      of the loop window it simply forces a resync of the audio data in the
      circular buffer.
      
      This ensures that minimal audio data is lost in the loop process, and
      minimizes the likelihood of any sort of sync issues associated with
      looping.
      ce0a1892
    • J
      libobs: Don't include sync offsets in TS smoothing · 41fa9c1b
      jp9000 提交于
      Apply user sync offset *after* timestamp smoothing, not before.
      Prevents small or gradual sync offsets from not being properly applied.
      41fa9c1b
    • J
      libobs: Apply resampler offset to system audio TS · 1089564b
      jp9000 提交于
      Instead of applying the resampler offset right away (to each audio
      packet), apply the resampler offset when the timestamps are converted to
      system timestamps.  This fixes an issue where if audio timestamps reset
      to 0 (for whatever reason), the offset would cause the timestamp to go
      in to the negative.
      1089564b
    • J
      (API Change) libobs: Add 'type' to obs_scene_duplicate · a61933dd
      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
      a61933dd
    • J
      libobs: Add obs_scene_create_private function · 6824910f
      jp9000 提交于
      Creates a scene marked as a private source
      6824910f
    • J
      libobs: Add obs_source_duplicate function · 9661ba81
      jp9000 提交于
      Allows full duplication of sources (with exception of sources that are
      marked with the OBS_SOURCE_DO_NOT_DUPLICATE output capability flag)
      9661ba81
    • J
      libobs: Add source output flag OBS_SOURCE_DO_NOT_DUPLICATE · cd97ce2a
      jp9000 提交于
      Certain types of sources (display captures, game captures, audio
      device captures, video device captures) should not be duplicated.  This
      capability flag hints that the source prefers references over full
      duplication.
      cd97ce2a
    • J
      libobs: Add obs_is_source_configurable function · 56dc6054
      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)
      56dc6054
    • J
      libobs: Refactor obs_get_source_by_name · a4e0cd71
      jp9000 提交于
      Changes it to use obs_context_by_name
      a4e0cd71
    • J
      libobs: Add *_create_private functions · 3371ff59
      jp9000 提交于
      Allows creation of private/unlisted sources/outputs/services/encoders
      3371ff59
    • J
      libobs: Allow "private" contexts · bccd3b0b
      jp9000 提交于
      The intention of this is to allow sources/outputs/etc to be created
      without being visible to the UI or save/load functions.
      bccd3b0b
    • J
      libobs: Do not use signals with audio capture/controls · 669da7ba
      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.
      669da7ba
    • J
      obs-transitions: Implement cut transition · 46bb2622
      jp9000 提交于
      46bb2622
    • J
      obs-transitions: Implement fade transition · 4b781c7b
      jp9000 提交于
      A basic fade transition that fades to/from a source via a simple cross
      fade.
      4b781c7b
    • J
      libobs: Implement transition sources · 6839ff76
      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
      6839ff76
    • J
      libobs: Remove 'get_transition_volume' callback · c1227b34
      jp9000 提交于
      This callback will no longer be used, instead transitions will modify
      the audio data directly.
      c1227b34
    • J
      da2f9f73
    • J
      libobs: Warn/ignore if transitions use get_width/get_height · 03df6b2c
      jp9000 提交于
      These functions aren't used with transition sources, and will be
      ignored.
      03df6b2c
    • J
      libobs: Mark transitions as video/custom draw · c28cfa55
      jp9000 提交于
      c28cfa55
    • J
      libobs: Improve module register warnings · 2a4ac3dc
      jp9000 提交于
      Fixes some typos and specifies the function that's being called
      2a4ac3dc
    • J
      libobs: Release scene items outside of scene mutexes · 234cb580
      jp9000 提交于
      Prevents a mutual lock with the scene mutex and graphics mutex.  In
      libobs/obs-video.c, the graphics mutex could be locked first, then the
      scene mutexes second, while in the UI thread, the scene mutexes could be
      locked first, then when a scene item is being destroyed, a source could
      be destroyed, and sometimes sources would lock the graphics mutex
      second.
      
      A possible additional solution is to defer source destroys to the video
      thread.
      234cb580
    • J
      ed10b1ab
    • J
      libobs: Move obs_source_dosignal to obs-internal.h · 5098f68d
      jp9000 提交于
      Allows using it in multiple source files
      5098f68d
    • J
      libobs: Mark transition sources as composite · 6f053b89
      jp9000 提交于
      Transition sources are always considered composite sources, as they have
      child sources.
      6f053b89
    • J
      libobs: Add function to enumerate all source types · 84251055
      jp9000 提交于
      84251055
    • J
      libobs: Add source type OBS_SOURCE_TYPE_SCENE · e68331e9
      jp9000 提交于
      Helps identify a scene without having to compare its type name to
      "scene".
      e68331e9