- 12 1月, 2014 5 次提交
-
-
由 jp9000 提交于
- Add preliminary (yet to be tested) handling of timestamp invalidation issues that can happen with specific devices, where timestamps can reset or go backward/forward in time with no rhyme or reason. Spent the entire day just trying to figure out the best way to handle this. If both audio and video are present, it will increment a reference counter if video timestamps invalidate, and decrement the reference counter when the audio timestamps invalidate. When the reference counter is not 0, it will not send audio as the audio will have invalid timing. What this does is it ensures audio data will never go out of bounds in relation to the video, and waits for both audio and video timestamps to "jump" together before resuming audio. - Moved async video frame timing adjustment code into obs_source_getframe instead so it's automatically handled whenever called. - Removed the 'audio wait buffer' as it was an unnecessary complexity that could have had problems in the future. Instead, audio will not be added until video starts for sources that have both async audio/video. Audio could have buffered for too long of a time anyway, who knows what devices are going to do. - Fixed a minor conversion warning in audio-io.c
-
由 computerquip 提交于
Add copyright and name to files it applies to.
-
由 Zachary Lund 提交于
-
由 Jim 提交于
Various changes for wxGTK
-
由 Zachary Lund 提交于
-
- 11 1月, 2014 4 次提交
-
-
由 jp9000 提交于
Clean up a little bit of code that was unnecessarily nested. Still a little squishy but better than it was.
-
由 jp9000 提交于
- In the audio I/O code, if there's a pause in the program or its threads (especially the audio thread), it'll cause it to sample too much data, and increase line->base_timestamp to a potentially higher value than the next audio timestamp that may be added to the line. This would cause it to crash originally, because it expects audio data that is within the designated buffering limit. Because that audio data cannot be filled by that data anyway, just ignore the audio data until it goes back to the right timing (which it will as long as the code that is using the line accounts for its current system time)
-
由 jp9000 提交于
- Often, timestamps will go "back" in time with certain.. terrible devices that no one should use. When this occurs, timing is now reset so that the new audio comes in directly after the old audio seamlessly.
-
由 jp9000 提交于
- Audio data was just being popped to the "front" of the mix buffer, so instead it now properly pops into the correct position in the mix buffer (proper mixing still needs to be implemented)
-
- 10 1月, 2014 8 次提交
-
-
由 jp9000 提交于
- Added a test audio sinewave test source that should just play a sine wave of the middle C note. Using unsigned 8 bit mono to test ffmpeg's audio resampler, seems to work pretty good. - Fixed a boolean trap in threading.h for the event_init function, it now uses enum event_type, which can be EVENT_TYPE_MANUAL or EVENT_TYPE_AUTO, to specify whether the event is automatically reset or not. - Changed display names of test sources to something a little less vague. - Removed te whole "if timestamp is 0 just use current system time" when outputting source audio, if you want to use system time you should just use system time yourself. Using 0 as some sort of "indicator" like that just makes things confusing, and prevents you from legitimately using 0 as a timestamp for your audio data.
-
由 jp9000 提交于
- Circular buffer code wasn't correctly handling the splitting of newly placed data segments, the code was untested and turned out to just be backwards. It now copied the data to the back and front of the buffer properly.
-
由 Zachary Lund 提交于
-
由 Zachary Lund 提交于
-
由 Zachary Lund 提交于
For one, I added a new member gs_window for future use. The member is "display" which represents our connection to X11. Ideally, we should use this specific connection to deal with our Window. For now, it's disabled. Read comment for more information. Secondly, wxGTK apparently doesn't map our window in some cases. This causes the window ID passed to be bad and will stop (or segfault) our program. This might be related to the first commit above. For now, all this commit does is realize the window manually.
-
由 Zachary Lund 提交于
-
-
由 jp9000 提交于
- Mixing still isn't implemented, but the audio system should be able to start up, and mix at least once audio line for the time being. Will have to write some test audio sources to verify things are working properly, and build the rest of the output functionality.
-
- 09 1月, 2014 6 次提交
-
-
由 Palana 提交于
-
由 Palana 提交于
-
-
由 jp9000 提交于
- Using a recursive mutex fixes issues where objects need to enter the main libobs sources mutex while already within the mutex in the same thread. Otherwise it would keep getting locked on itself on destruction.
-
由 Palana 提交于
-
由 jp9000 提交于
- Apply the volume specified with the audio data packet before inserting the audio data into the circular buffer. Added functions for multiplying the volume with all the different audio bit depths. (Could probably be greatly optmimized later)
-
- 08 1月, 2014 6 次提交
-
-
-
由 Jim 提交于
Use XGetErrorText() instead of our own table
-
由 Jim 提交于
Another attempt to fix ARB_debug_output, hopefully the last one.
-
由 Zachary Lund 提交于
-
由 Ján Mlynek 提交于
This fixes segfaults when the error code is not in the table
-
由 jp9000 提交于
- Added a volume variable to the obs_source structure and implemented functions for manipulating source volume. - Added a volume variable to the audio_data structure so that the volume will be applied when mixing.
-
- 07 1月, 2014 6 次提交
-
-
由 jp9000 提交于
- Made it so that when a source is added or removed from a scene it will add a reference to sourceSceneRefs (std::unordered_map). Each source adds a reference to that every time they are added to a scene, and releases a reference from it when they are removed from a scene. When the value reaches 0, the source is no longer in any scenes, and is then marked for removal and destroyed. Before, I was using the source internal reference counter, which is a really bad thing to do because I don't know what might actually be referencing it. So using a separate discrete reference counter for the number of scenes it's in is better in this case.
-
由 jp9000 提交于
- Homeworld apparently removed a number of unnecessary sizers from the basic UI window form to reduce wx resize computations.
-
由 jp9000 提交于
- Check the actual debug extension instead of checking GL 4.0 support; it appears that despite having GL 4.0 support, AMD does not implement the standard debug extensions even when the *_CONTEXT_DEBUG_BIT_ARB flag is set on the context. - Also, fixed a place where spaces where used for indents instead of a tab.
-
由 jp9000 提交于
- Removed the dependency on windows.h for windows. I feel it's an unnecessarily large dependency to have to add to all source files when the only thing that's needed to make the windows version compile the debug functions is just the __stdcall call convention keyword. On top of increasing compile time due to the large number of headers it includes from all the windows API headers, it also adds a lot of potential name conflicts, as I was getting a number of name conflicts for lots of names like near/far, which were used in old legacy 16bit windows code.
-
由 Zachary Lund 提交于
-
由 Jim 提交于
Various Changes to OpenGL intialization
-
- 06 1月, 2014 5 次提交
-
-
由 jp9000 提交于
- Made is so that libobs is now marked as a dependency for the main application project 'obs'.
-
由 Jim 提交于
Revert "Merge pull request #19 from asgeirom/master"
-
由 Zachary Lund 提交于
I also fixed autoconf to find wxWidgets 2.9 without user intervention Removed unused code and added more organization
-
由 Benjamin Klettbach 提交于
This reverts commit 27ccb094, reversing changes made to b7eccedf.
-
由 jp9000 提交于
- When a scene is created it now is automatically selected and switched to.
-