1. 14 4月, 2014 6 次提交
  2. 13 4月, 2014 4 次提交
    • J
      Fix drawing bug with async video sources · 2451b80e
      jp9000 提交于
      Before, async video sources would flicker because they were only being
      drawn when they were updated.  So when updated, they'd draw that frame,
      then it would stop drawing it until it updated again.  This fixes that
      issue and they should now draw properly.
      
      Also, fix a few other minor bugs and issues relating to async video,
      and make it so that non-async video filters can be properly applied to
      them.
      
      For the purposes of testing, change the 'test-random' source to an async
      video source that updates every quarter of a second with a new random
      face.
      
      Also fix a bug where non-async video sources wouldn't have filter
      effects applied properly.
      2451b80e
    • J
      Revert OpenGL swizzle change · bc33b09b
      jp9000 提交于
      Was wrong to use the swizzle -- it was an incorrect assumption on my
      part that this could work in the first place (despite working on
      windows)
      bc33b09b
    • J
      Fix style errors (please don't make me do this) · 0e9b13fc
      jp9000 提交于
      0e9b13fc
    • J
      Merge pull request #59 from BtbN/linux_fixes · b53e2a88
      Jim 提交于
      Linux fixes and additions
      b53e2a88
  3. 12 4月, 2014 6 次提交
    • B
      0f9c6e55
    • J
      RTMP output: Implement frame drop code · b427397a
      jp9000 提交于
      A little bit of history about frame dropping:
      
      I did a large number of experiments with frame dropping in old versions
      of OBS1, and it's not an easy thing to deal with.  I tried just about
      everything from standard i-frame delay, to large buffers, to dumping
      packets, to super-unnecessarily-complex things that just ended up
      causing more problems than they was worth.
      
      When I did my experiments, I found that the most ideal frame drop system
      (in terms of reducing the amount of total data that needed to be
      dropped) was in the 0.4xx days where I had a 3 second frame-drop buffer
      where I could calculate the actual buffer size in bytes, and then
      intellgently choose packets in that buffer to trim it down to a specific
      size while minimizing the number of p-frames and i-frames dropped, and
      preventing the actual impact of dropped frames on the stream.  The
      downside of it was that it required too much extra latency, and far too
      many people complained about it, so it was removed in favor of the
      current system.
      
      The current system I just refer to just as 'packet dumping', which when
      combined with low keyframe intervals (like most services use these
      days), is the next-best method from my experience.  Just dump the buffer
      when you reach a threshold of buffering (which I prefer to measure with
      time rather than in size), then wait for a new i-frame.  Simple,
      effective, and reduces the risk of consecutive buffering, while still
      having fairly low impact on the stream output due to the low keyframe
      interval of services.
      
      By the way, audio will not (and should not ever) be dropped, lest you
      end up with syncing issues (among other nasty things) specific to server
      implementation.
      b427397a
    • B
      Add copy_texture_region function · 97c94b18
      BtbN 提交于
      97c94b18
    • T
      Flush after logging · b312261a
      Timo R 提交于
      b312261a
    • T
      b9f0da02
    • J
      OpenGL: Use texture swizzle for BGRA/BGR/A8 · 362e008b
      jp9000 提交于
      On some operating systems, with specific drivers it seems that BGR/BGRA
      isn't properly treated as such in certain cases.  This fix will
      hopefully force the formats to be treated as BGR/BGRA when actually
      rendering, which should get around the implementation-specific issue.
      362e008b
  4. 11 4月, 2014 2 次提交
    • J
      f98c0067
    • J
      Fix issue when using multiple video encoders · 519c4f41
      jp9000 提交于
       - Fix an issue that could occur when using more than one video encoder.
         Audio/video would not sync up correctly because they were expected to
         be paired with a particular encoder.  This simply adds a little
         helper variable to encoder packets that specifies the system time in
         microseconds.  We then use that system time to sync
      
       - Fix an issue with x264 with fractional FPS rates (29.97 and 59.94
         particularly) where it would create ridiculously large stream
         outputs.  The problem was that you shouldn't set the timebase_*
         variables in the x264 params manually, let x264 handle the default
         values for it and leave them at 0.
      
       - Make x264 use CFR output, because there's no reason to ever use VFR
         in this case.
      519c4f41
  5. 08 4月, 2014 3 次提交
    • P
      Fix (debug build) warnings in librtmp · d0e3f0d6
      Palana 提交于
      d0e3f0d6
    • P
      Add preprocessor flag for librtmp network dumps · d45248d6
      Palana 提交于
      Fixes debug compilation on non-WIN32 targets due to undefined
      netstackdump(_read) symbols
      d45248d6
    • J
      Implement RTMP module (still needs drop code) · 92522d18
      jp9000 提交于
       - Implement the RTMP output module.  This time around, we just use a
         simple FLV muxer, then just write to the stream with RTMP_Write.
         Easy and effective.
      
       - Fix the FLV muxer, the muxer now outputs proper FLV packets.
      
       - Output API:
         * When using encoders, automatically interleave encoded packets
           before sending it to the output.
      
         * Pair encoders and have them automatically wait for the other to
           start to ensure sync.
      
         * Change 'obs_output_signal_start_fail' to 'obs_output_signal_stop'
           because it was a bit confusing, and doing this makes a lot more
           sense for outputs that need to stop suddenly (disconnections/etc).
      
       - Encoder API:
         * Remove some unnecessary encoder functions from the actual API and
           make them internal.  Most of the encoder functions are handled
           automatically by outputs anyway, so there's no real need to expose
           them and end up inadvertently confusing plugin writers.
      
         * Have audio encoders wait for the video encoder to get a frame, then
           start at the exact data point that the first video frame starts to
           ensure the most accrate sync of video/audio possible.
      
         * Add a required 'frame_size' callback for audio encoders that
           returns the expected number of frames desired to encode with.  This
           way, the libobs encoder API can handle the circular buffering
           internally automatically for the encoder modules, so encoder
           writers don't have to do it themselves.
      
       - Fix a few bugs in the serializer interface.  It was passing the wrong
         variable for the data in a few cases.
      
       - If a source has video, make obs_source_update defer the actual update
         callback until the tick function is called to prevent threading
         issues.
      92522d18
  6. 07 4月, 2014 6 次提交
    • J
      Fix graphics device export header · 7eec7224
      jp9000 提交于
      Caused D3D11 library to fail on load.  Don't know how I didn't see this
      sooner.
      7eec7224
    • J
      Add comments to config-file.h · 59969844
      jp9000 提交于
      Someone got rather confused over what the "default" functions did, so
      hopefully this clears it up a bit.
      59969844
    • J
      Use atomics for allocation counter · fd24d0de
      jp9000 提交于
      I was getting cases where the CPU cache was causing issues with the
      allocation counter, for the longest time I thought I was doing something
      wrong, but when the allocation counter went below 0, I realized it was
      because I didn't use atomics for incrementing/decrementing the
      allocation counter variable.  The allocation counter now always should
      have the correct value.
      fd24d0de
    • J
      Add window capture · 90653502
      jp9000 提交于
      Now that we have the priorties window in we can finally be able to
      select windows for capture source such as window capture.  Only took
      about an hour or two to write.
      
      Also, fixed some depednency issues on winmm.lib with obs-outputs
      90653502
    • J
      Merge pull request #57 from jp9000/new-gl-loader · e78dc5aa
      Jim 提交于
      More extensions, less bugs
      e78dc5aa
    • Z
      More extensions, less bugs · 92f253d6
      Zachary Lund 提交于
      92f253d6
  7. 06 4月, 2014 3 次提交
  8. 05 4月, 2014 10 次提交