1. 28 2月, 2014 7 次提交
  2. 27 2月, 2014 10 次提交
  3. 24 2月, 2014 7 次提交
    • J
      Fix stereo output bug with ffmpeg test output · a1a1f1a6
      jp9000 提交于
      a1a1f1a6
    • J
      Make ffmpeg test output sync A/V properly · 6c2d067e
      jp9000 提交于
      FFmpeg test output wasn't make any attempt to sync data before.  Should
      be much more accurate now.
      
      Also, added a restart message to audio settings if base audio settings
      are changed.
      6c2d067e
    • J
      Add more checks for NULL pointers · 268e4e78
      jp9000 提交于
      268e4e78
    • J
      Rename scene signals · 096cce9a
      jp9000 提交于
      the signals for scenes could have potentially conflicted with default
      source signals.  "remove" should be used for source removal, for
      example.  Changed the scene signals to "item-add" and "item-remove" for
      its items.
      096cce9a
    • J
      Require restart for audio changes (for now) · 75b66872
      jp9000 提交于
      Resetting audio while libobs is active is a real pain.  I think I'm just
      going to do audio resetting later, or maybe just require restart
      regardless just because having to shut down audio streams/lines while
      there's sources currently active requires recreating all the audio
      lines for each audio source.  Very painful.
      
      Video fortunately is no big deal, so at least there's that.
      75b66872
    • J
      Separate source activation for main/aux views · 60e6316a
      jp9000 提交于
      Split off activate to activate and show callbacks, and split off
      deactivate to deactivate and hide callbacks.  Sources didn't previously
      have a means to know whether it was actually being displayed in the main
      view or just happened to be visible somewhere.  Now, for things like
      transition sources, they have a means of knowing when they have actually
      been "activated" so they can initiate their sequence.
      
      A source is now only considered "active" when it's being displayed by
      the main view.  When a source is shown in the main view, the activate
      callback/signal is triggered.  When it's no longer being displayed by
      the main view, deactivate callback/signal is triggered.
      
      When a source is just generally visible to see by any view, the show
      callback/signal is triggered.  If it's no longer visible by any views,
      then the hide callback/signal is triggered.
      
      Presentation volume will now only be active when a source is active in
      the main view rather than also in auxilary views.
      
      Also fix a potential bug where parents wouldn't properly increment or
      decrement all the activation references of a child source when a child
      was added or removed.
      60e6316a
    • J
      Implement a few more audio options/functions · c232ebde
      jp9000 提交于
      Implement a few audio options in to the user interface as well as a few
      inline audio functions in audio-io.h.
      
      Make it so ffmpeg plugin automatically converts to the desired format.
      
      Use regular interleaved float internally for audio instead of planar
      float.
      c232ebde
  4. 23 2月, 2014 1 次提交
    • J
      Fix video reset and apply new video settings · 0ff0d327
      jp9000 提交于
      This allows the changing of bideo settings without having to completely
      reset all graphics data.  Will recreate internal output/conversion
      buffers and such and reset the main preview.
      0ff0d327
  5. 22 2月, 2014 4 次提交
    • J
      For *_update, apply settings instead of replacing · 7fcec773
      jp9000 提交于
      Make it so obs_data settings input in to *_update are applied to the
      existing settings rather than fully replace the existing settings.  That
      way you can update with only certain specific settings, leaving other
      settings untouched.  Of course if you're already using the original
      settings pointer in the first place then you've already done that, so
      it'll just ignore it because you've already applied them.
      7fcec773
    • J
      Clamp audio data after applying volume · 4f465204
      jp9000 提交于
      Make sure audio multiplication is clamped, and also make sure that
      larger volume values can be safely used.
      4f465204
    • J
      Implement volume handling · be81276f
      jp9000 提交于
       - Remove obs_source::type because it became redundant now that the
         type is always stored in the obs_source::info variable.
      
       - Apply presentation volumes of 1.0 and 0.0 to sources when they
         activate/deactivate, respectively.  It also applies that presentation
         volume to all sub-sources, with exception of transition sources.
         Transition sources must apply presentation volume manually to their
         sub-sources with the new transition functions below.
      
       - Add a "transition_volume" variable to obs_source structure, and add
         three functions for handling volume for transitions:
      
         * obs_transition_begin_frame
         * obs_source_set_transition_vol
         * obs_transition_end_frame
      
         Because the to/from targets of a transition source might both contain
         some of the same sources, handling the transitioning of volumes for
         that specific situation becomes an issue.
      
         So for transitions, instead of modifying the presentation volumes
         directly for both sets of sources, we do this:
      
         - First, call obs_transition_begin_frame at the beginning of each
           transition frame, which will reset transition volumes for all
           sub-sources to 0.  Presentation volumes remain unchanged.
      
         - Call obs_source_set_transition_vol on each sub-source, which will
           then add the volume to the transition volume for each source in
           that source's tree.  Presentation volumes still remain unchanged.
      
         - Then you call obs_trandition_end_frame when complete, which will
           then finally set the presentation volumes to the transition
           volumes.
      
         For example, let's say that there's one source that's within both the
         "transitioning from" sources and "transition to" sources.  It would
         add both the fade in and fade out volumes to that source, and then
         when the frame is complete, it would set the presentation volume to
         the sum of those two values, rather than set the presentation volume
         for that same source twice which would cause weird volume jittering
         and also set the wrong values.
      be81276f
    • J
      Add volume signals · bdcabc61
      jp9000 提交于
      bdcabc61
  6. 21 2月, 2014 4 次提交
    • J
      Implement source activation/deactivation · d4f1eacc
      jp9000 提交于
      Now sources will be properly activated and deactivated when they are in
      use or not in use.
      
      Had to figure out a way to handle child sources, and children of
      children, just ended up implementing simple functions that parents use
      to signal adding/removal to help with hierarchial activation and
      deactivation of child sources.
      
      To prevent the source activate/deactivate callbacks from being called
      more than once, added an activation reference counter.  The first
      increment will call the activate callback, and the last decrement will
      call the deactivate callback.
      
      Added "source-activate" and "source-deactivate" signals to the main obs
      signal handler, and "activate" and "deactivate" to individual source
      signal handlers.
      
      Also, fixed the main window so it properly selects a source when the
      current active scene has been changed.
      d4f1eacc
    • J
      Add functions to enumerate source children/tree · 14c95ac4
      jp9000 提交于
      14c95ac4
    • J
      Add source audio sync offset setting · d6ec5438
      jp9000 提交于
      d6ec5438
    • J
      Add more volume options · 579f026c
      jp9000 提交于
      Added a "master" volume for the entire audio subsystem.
      
      Also, added a "presentation" volume for both the master volume and for
      each invidiaul source.  The presentation volume is used to control
      things like transitioning volumes, preventing sources from outputting
      any audio when they're inactive, as well as some other uses in the
      future.
      579f026c
  7. 19 2月, 2014 4 次提交
    • J
      Properly clamp audio timing and remove warnings · 27b851c0
      jp9000 提交于
      If audio was under, it originally did a full reset of the audio timing.
      However, resetting the audio timing when this happens is kind of a bad
      thing.  It's better just to clamp the value to the expected timestamp to
      ensure seamless audio output.
      
      Also, implement audio timestamp smoothing to ensure audio tries to be as
      seamless as possible.
      27b851c0
    • J
      Fix improper structure dependency · c2f5a88c
      jp9000 提交于
      I actually did compile that last commit and misread the failed projects
      as 0.  I'm just going to put the conversion stuff in video-io.h stuff
      because it requires it anyway, and video-scaler.h already depends on
      video-io.h for the video_format enum anyway.
      c2f5a88c
    • J
      Use forward instead of include · b5bcb197
      jp9000 提交于
      Had a bit of an include loop going on there which caused this issue to
      occur.
      b5bcb197
    • J
      Implement automatic video scaling (if requested) · f2d4de3c
      jp9000 提交于
      Add a scaler interface (defaults to swscale), and if a separate output
      wants to use a different scale or format than the default output format,
      allow a scaler instance to be created automatically for that output,
      which will then receive the new scaled output.
      f2d4de3c
  8. 18 2月, 2014 3 次提交