- 14 4月, 2014 6 次提交
- 13 4月, 2014 4 次提交
-
-
由 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.
-
由 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)
-
由 jp9000 提交于
-
由 Jim 提交于
Linux fixes and additions
-
- 12 4月, 2014 6 次提交
-
-
由 BtbN 提交于
-
由 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.
-
由 BtbN 提交于
-
由 Timo R 提交于
-
由 Timo R 提交于
-
由 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.
-
- 11 4月, 2014 2 次提交
-
-
-
由 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.
-
- 08 4月, 2014 3 次提交
-
-
由 Palana 提交于
-
由 Palana 提交于
Fixes debug compilation on non-WIN32 targets due to undefined netstackdump(_read) symbols
-
由 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.
-
- 07 4月, 2014 6 次提交
-
-
由 jp9000 提交于
Caused D3D11 library to fail on load. Don't know how I didn't see this sooner.
-
由 jp9000 提交于
Someone got rather confused over what the "default" functions did, so hopefully this clears it up a bit.
-
由 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.
-
由 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
-
由 Jim 提交于
More extensions, less bugs
-
由 Zachary Lund 提交于
-
- 06 4月, 2014 3 次提交
-
-
由 Jim 提交于
Added GLX_NV_copy_image extension, updated tools
-
由 Zachary Lund 提交于
-
由 Jim 提交于
Add compatiblity for some older ffmpeg versions
-
- 05 4月, 2014 10 次提交
-
-
由 Timo R 提交于
-
由 Timo R 提交于
-
由 jp9000 提交于
...I think I need sleep. That last commit before this one shows it quite clearly.
-
由 jp9000 提交于
Accidentally removed a function from the main module declaration macro.
-
由 jp9000 提交于
Instead of doing this, just use macros to handle this situation. Also, fix a minor bug in AAC encoder
-
由 jp9000 提交于
-
由 jp9000 提交于
This just adds FFmpeg's default AAC encoder as an audio encoder. Going to try to start getting things going with the RTMP output library next.
-
由 jp9000 提交于
- Add interleaving of video/audio packets for outputs that are encoded and expect both video and audio data, sorting the packets and sending them to the output when both video and audio is received. - Combine create and initialize callbacks for the encoder API callback interface.
-
由 Palana 提交于
-
由 Palana 提交于
-