1. 28 12月, 2014 13 次提交
    • J
      libobs: Remove inline on a function · ce6a1146
      jp9000 提交于
      The copy_audio_data function really shouldn't be inlined because it's
      being called twice.  It's somewhat unnecessary, I think I left it inline
      by accident.
      ce6a1146
    • J
      libobs: Add flag to force source audio to mono · 63c43b64
      jp9000 提交于
      This flag is actually useful under a number of circumstances, and has
      been requested a number of times.
      63c43b64
    • J
      libobs: Refactor source volume transition design · c431ac6a
      jp9000 提交于
      This changes the way source volume handles transitioning between being
      active and inactive states.
      
      The previous way that transitioning handled volume was that it set the
      presentation volume of the source and all of its sub-sources to 0.0 if
      the source was inactive, and 1.0 if active.  Transition sources would
      then also set the presentation volume for sub-sources to whatever their
      transitioning volume was.  However, the problem with this is that the
      design didn't take in to account if the source or its sub-sources were
      active anywhere else, so because of that it would break if that ever
      happened, and I didn't realize that when I was designing it.
      
      So instead, this completely overhauls the design of handling
      transitioning volume.  Each frame, it'll go through all sources and
      check whether they're active or inactive and set the base volume
      accordingly.  If transitions are currently active, it will actually walk
      the active source tree and check whether the source is in a
      transitioning state somewhere.
      
       - If the source is a sub-source of a transition, and it's not active
         outside of the transition, then the transition will control the
         volume of the source.
      
       - If the source is a sub-source of a transition, but it's also active
         outside of the transition, it'll defer to whichever is louder.
      
      This also adds a new callback to the obs_source_info structure for
      transition sources, get_transition_volume, which is called to get the
      transitioning volume of a sub-source.
      c431ac6a
    • J
      libobs: Keep transition reference counter · 10f89886
      jp9000 提交于
      The reason to keep a reference counter for transitions is due to an
      optimization I'm planning on when calculating transition volumes.  I'm
      planning on walking the source tree to be able to calculate the current
      base volume of a source, but *only* if there are transitions active,
      because the only time that the volume can be anything other than 1.0
      or 0.0 is when there are active transitions, which may change the base
      volume of a source.
      10f89886
    • J
      (API Change) libobs: Add _FLAG to source flags · 6eab6cef
      jp9000 提交于
      Changes OBS_SOURCE_UNBUFFERED to OBS_SOURCE_FLAG_UNBUFFERED to make
      naming a bit better for source flags.
      6eab6cef
    • J
      libobs: Save/load source audio sync and flags · fb09db43
      jp9000 提交于
      When a source is being saved, include the audio sync as well as the
      flags.
      fb09db43
    • J
      libobs: Do not set presentation volume on children · 48210d41
      jp9000 提交于
      When the presentation volume is set for a source, it's set for all of
      its children and their children.  The original intention for doing this
      was to be able to use it for transitioning, but honestly it's just bad
      design, and I feel there are better ways to handle transitioning volume.
      48210d41
    • J
      libobs: Add 'audio_sync' source signal · fb6f8721
      jp9000 提交于
      Adds a signal is called when the sync offset has changed for a source.
      fb6f8721
    • J
      libobs: Prevent infinite source recursion · e29a1fd3
      jp9000 提交于
      Changed the design from using obs_source::enum_refs to just simply
      preventing infinite source recursion in general, rather than allowing it
      through the enum_refs variable.  obs_source_add_child has been changed
      so that it now returns a boolean, and if the function fails, it means
      that the child cannot be added due to that potential recursion.
      e29a1fd3
    • J
      libobs: Remove unused audio level source vars · 1ed4c2a9
      jp9000 提交于
      These variables are no longer used by sources anymore, as they were
      removed in favor of the new source audio control handlers.
      1ed4c2a9
    • J
      libobs: Fix a few warnings · c72284f3
      jp9000 提交于
      Two integers are needlessly converted to floating points for what should
      be an integer operation.  One of those floats is then used for another
      integer operation later, where the original integer value should have
      been used.  So essentially there was an int -> float -> int conversion
      going on, which could lead to potential loss of data due to floating
      point precision.
      
      There were also some general 64bit -> 32bit conversion warnings.
      c72284f3
    • J
      Merge pull request #316 from fryshorts/qt-stuff · 3816c5a0
      Jim 提交于
      obs: Refactor network requests.
      3816c5a0
    • J
      Merge pull request #319 from skwerlman/patch-1 · 5a5f8659
      Jim 提交于
      fixed debian source install instructions
      5a5f8659
  2. 27 12月, 2014 2 次提交
  3. 25 12月, 2014 6 次提交
    • F
      obs: Refactor network requests. · ca8ac4e8
      fryshorts 提交于
      Remove unneeded class members for request and buffer handling.
      Let Qt do all the hard work here, keeping track of requests and
      associated data.
      ca8ac4e8
    • E
      Fix minor grammar errors in README · c6ad237b
      Emil Sayahi 提交于
      c6ad237b
    • J
      libobs: Implement obs_source_active · 5875434a
      jp9000 提交于
      ..Apparently I left this function unimplemented.  This function just
      returns whether a source is currently active or not.
      5875434a
    • J
      libobs: Fix export declaration name · 78c2129f
      jp9000 提交于
      obs_encoder_getdisplayname declaration was not changed to match the
      definition (obs_encoder_get_display_name) when the API consistency
      update occurred.
      78c2129f
    • J
      Merge pull request #314 from raincomplex/master · b4535713
      Jim 提交于
      Mark windows changed on Expose
      b4535713
    • R
      Mark windows changed on Expose · 01491a96
      raincomplex 提交于
      On i3wm, windows aren't unmapped when switching away from a window's
      workspace, but it does cause OBS to lose the capture. Because
      switching back will not trigger a MapNotify, the capture fails to
      restart unless you resize or move the window (ConfigureNotify). An
      Expose event is fired by the wm, however, so catching this correctly
      restarts the capture.
      01491a96
  4. 23 12月, 2014 1 次提交
  5. 22 12月, 2014 16 次提交
    • F
      UI: Fix bug with xinerama on linux · 20863c5e
      fryshorts 提交于
      Refactor the screen enumeration code a little to make sure xinerama is present
      and active before using it. If the extension is present but not active it will
      no longer fail.
      20863c5e
    • J
      Merge pull request #311 from fryshorts/audio-analyzer-move · 9f3ab85d
      Jim 提交于
      libobs: Move audio level calculations
      9f3ab85d
    • J
      win-dshow: Use actual encoder names · c456e421
      jp9000 提交于
      Was using a temporary name for the encoders still; now uses the actual
      encoder names.
      c456e421
    • J
      win-dshow: Add C985/C353 hardware h264 encoders · eb4a0566
      jp9000 提交于
      This adds support for the AverMedia C985 encoder (which is available on
      C985 capture cards) as well as the C353 hardware encoder (which is
      currently available on the X99S Gaming 9 motherboards).
      
      These encoders have some limitations, such as limited resolutions
      (1280x720 and 1024x768), a max GOP size of 30, and the encoder format
      only supports YV12, which requires conversion if the current output
      format isn't the same.  The C985 and C353 encoders seem to be pretty
      much identical, although it seems like the C353 has a bit more efficient
      encoding.
      
      I don't believe these are really suitable for streaming, as they do not
      really have the encoding efficiency needed to stream at lower bitrates,
      and seem to only support variable bitrate.  However, for recording these
      encoders are quite nice to have available, and work quite well.
      eb4a0566
    • J
      win-dshow: Move module loading to separate file · bbff0eee
      jp9000 提交于
      The main module code was originally all packed in to the win-dshow.cpp
      file, which isn't exactly ideal or clean if one wants to add other
      things to the module as a whole.
      bbff0eee
    • J
      win-dshow: Allow use of YV12 video format · 67587fbc
      jp9000 提交于
      Previously, due to a bug in libdshowcapture, the NV12 format was
      actually being used for YV12 erroneously, and no actual support for YV12
      existed.  This fixes the bug with NV12 and adds support for YV12.
      67587fbc
    • J
      win-dshow: Put device id mangling in separate file · 77f0f680
      jp9000 提交于
      This is going to be used for other code as well, so may as well put it
      in its own file.
      77f0f680
    • J
      win-dshow: Use obs_avc_keyframe instead of own · 1884fea3
      jp9000 提交于
      1884fea3
    • J
      obs-outputs: Wait for packet before header output · 3412a0e1
      jp9000 提交于
      Waiting for the first packet to arrive before sending the headers helps
      prevent issues with certain types of encoders that may not get their
      header/SEI until the first packet has been received.
      3412a0e1
    • J
      libobs: Fix bug when SEI not present · 1a95004f
      jp9000 提交于
      If an encoder did not possess any SEI data, it would never send data at
      all because the sent_first_packet wasn't set despite the first packet
      being sent.
      1a95004f
    • J
      libobs: Add function to determine AVC keyframes · 9f97b02c
      jp9000 提交于
      Added obs_avc_keyframe that returns whether an avc packet is a keyframe
      or not.  This function is particularly useful for when writing custom
      encoder plugins.
      9f97b02c
    • J
      libobs: Expose NAL enums in obs-avc.h · f8e56a4e
      jp9000 提交于
      I encountered some cases where I needed to use these enumerations
      outside of the file, so this allows other modules to use AVC
      enumerations without having to redefine them each time.  Especially
      useful for custom encoder modules.
      f8e56a4e
    • J
      libobs: Use extern "C" on export headers if C++ · 923916ec
      jp9000 提交于
      I neglected to surround some files with extern "C", so if something
      written with C++ used the files it would cause function exports to not
      be mangled by it correctly.
      923916ec
    • J
      Basic UI: Raise bitrate limit to 1000000 · 1d9440c6
      jp9000 提交于
      I don't know why on earth I set the limit to 16000.  There's no reason
      why there should really be a low hard limit.
      1d9440c6
    • J
      libobs/media-io: Fix recursive lock in video · c52406c1
      jp9000 提交于
      In certain cases the video thread could end up trying to lock itself
      recursively.  This just allows the mutexes to safely be locked
      recursively.
      c52406c1
    • J
      libobs: Add NV12_Reverse shader · 817a724d
      jp9000 提交于
      817a724d
  6. 20 12月, 2014 2 次提交