1010 Commits

Author SHA1 Message Date
jp9000
edf57656cb Update to version 0.60
Also, made is so that non-monotonic timestamp values automatically get
clamped to the last time value.
2014-02-02 19:50:51 -07:00
Richard Stanway
fbb554fcb3 Fix hotkey callbacks firing during ~DelayedPublisher 2014-02-01 17:10:10 +01:00
Richard Stanway
aeb4062e91 I fixed it! 2014-01-29 00:08:10 +01:00
Richard Stanway
a4ae3c2d4c Refactor RTMP initialization slightly
This allows a clean shutdown during a blocking connnect(),
recv() or send() call during RTMP initialization. Previously
OBS would completely block, waiting on the socket to respond.
2014-01-29 00:07:17 +01:00
Richard Stanway
b5239f7ee7 Improved debug logging
Log if QPC timestamps go backwards
2014-01-20 21:46:08 +01:00
jp9000
027fc33396 More adjustment to new audio code
Changed it so that timestamps do not "reset" if under the expected
value.  Seems that doing this prevent a lot of timestamp "jumps" and
allows data to flow far more smoothly, as long as it's within the
expected broundries.

Had to make a ridiculous hack to get more usable variables in the class
without breaking API.  It's a totally disgusting hack, but it works.
Replaced the AudioSource::resampler variable to be a pointer to newer
variables.  The reason this hack had to be done in the first place is
because I directly exposed data in the base class instead of using a
forward.  Forward pointers are always far more safe and prevent API
breakage.  This is one thing I really dislike about C++, you modify the
class what so ever and it will break API.  I just don't like C++ when
used for libraries, but again I could have avoided it by simply handling
it better, so it was really my fault for having been so careless with it
in the first place.
2014-01-18 21:45:34 -07:00
jp9000
d892a5df1e Comment debug line (was causing a crash) 2014-01-17 21:08:19 -07:00
jp9000
50055a80b5 Update version to 0.60 test 8 2014-01-17 17:08:13 -07:00
jp9000
d5eb6f0dfd Fixed an rather unsightly mistake
I shouldn't have commited without compiling that last tiny change.
2014-01-14 00:42:15 -07:00
jp9000
b5d51f0552 Merge branch 'master' of https://github.com/jp9000/OBS 2014-01-13 20:08:02 -07:00
jp9000
9746254639 Add nvidia optimus hint if user selects nvidia
Right now, the state of things is that if the user was running an nvidia
laptop, he/she "had" to use the first adapter, and then fool with the
nvidia control panel to get the nvidia working properly.

This change makes it so that the nvidia optimus hint will be activated
and the first adapter will be forced if the user selects the nvidia
adapter in OBS' video adapter drop down, making it much easier for users
to deal with the nvidia laptop issue.
2014-01-13 20:05:25 -07:00
palana
bdc481ef7e Update "Stream Start/End" messages when only stream is started/stopped 2014-01-13 20:54:42 +01:00
palana
984095bef1 Update streaming status when network stream is stopped
Fixes duplicate "Stream End" message on exit after stream is stopped via
stop stream hotkey/button
2014-01-13 20:51:29 +01:00
palana
1b51e1344a Consolidated start stream hotkey/button behaviour if keep recording is enabled 2014-01-12 23:01:40 +01:00
palana
14a615b8d7 Reload keep recording setting on profile change 2014-01-12 22:23:01 +01:00
paibox
b3ac9e1b06 Merge branch 'master' of https://github.com/jp9000/OBS 2014-01-11 04:28:11 +01:00
paibox
598720cc43 Minor fix for Broadcast Settings
Properly hide the "Keep recording" checkbox when switching to file
output only, update the Start Streaming/Start Recording buttons when
switching modes in the settings.
2014-01-11 04:28:06 +01:00
palana
5ae6cca2fc Output qsvimpl error only if there actually is a qsvimpl parameter 2014-01-11 04:26:39 +01:00
jp9000
3a8669dec8 Merge branch 'master' of https://github.com/jp9000/OBS 2014-01-10 20:15:24 -07:00
paibox
e5e5f2a6ed Adjust keep recording settings
Move the keep recording setting from global.ini to Broadcast Settings
(profile dependent), make it default to off, comment out the old
dashboard link code for now.
2014-01-11 04:15:12 +01:00
jp9000
f76e8bcaa4 Added a "Reinitialize" button for mics
If the mic device starts going crazy or needs to be reset for whatever
possible reason and you don't want to restart the stream, you can now
reset the mic by using the "Reinitialize" button in audio settings next
to the mic device drop-down.  This will shut down the mic, and then
reinitialize it one second later.

Shouldn't need to be used with the newer audio code, but is provided
just in case.
2014-01-10 20:13:02 -07:00
jp9000
fd86aa1b96 Update test build to test 7
- Removed "Mic sync fix hack" because the new burst compensation code
   should properly fix the issue that was causing that option to be
   necessary.
2014-01-10 00:32:09 -07:00
BtbN
0dbbfca879 Add new advanced setting for nvenc preset selection 2014-01-10 08:07:02 +01:00
jp9000
25ffedf4d3 Fixed bug with double push-to-talk hotkeys
- When two push-to-talk hotkeys are in use at once, the first hotkey
   that was released would turn off push-to-talk.  Now, it makes sure
   that both hotkeys must be released before turning it off.
2014-01-08 09:03:10 -07:00
jp9000
85d40f9252 More adjustments to audio burst compensation hack
- Made is so the burst compensation occurs only when the desktop buffer
   has been fully emptied, otherwise it would mess up the timing.
2014-01-08 08:35:57 -07:00
palana
c88638739b Fixed crashes with plugins not deinitializing properly
Added a parameter to OBS::Stop to override keep recording behaviour in
exceptional cases like shutting down and encoder initialization problems
2014-01-07 00:04:55 +01:00
BtbN
95f106c8c5 Output a less misleading error message in case of a missing ObsNvenc.dll 2014-01-06 21:09:23 +01:00
jp9000
c397784885 Fix broken API QueryAudio
- I needed to change the parameter for my hack, so I'm just going to
   create a new function instead, QueryAudio2.  C++ mangling and API
   breakage makes me most displeased.
2014-01-05 20:26:38 -07:00
jp9000
c042ffc6ac Also account for user-specified delay
- Woops, don't use global audio time for sorting, use the latest audio
   timestamp from that specific device.

 - Also, made it so lastSentTimestamp is only done when data is actually
   used, accidentally put it in the wrong scope.
2014-01-05 17:23:27 -07:00
jp9000
327eda646d Merge branch 'master' of https://github.com/jp9000/OBS 2014-01-05 17:14:30 -07:00
Richard Stanway
fe62c35f72 Show grey box in status bar when not connected 2014-01-06 01:04:39 +01:00
jp9000
75c6d10aa0 Added audio burst compensation (fix sync)
- Fixed an issue where audio data that came in bursts would cause
   desyncs.  Basically, if data came in too late, it would continue to
   buffer little by little, causing progressive desync with certain
   microphones and capture devices (avermedia stream engine for the live
   gamer portable especially).  Also seemed to happen with HDMI data
   from the newer game consoles, like xbox one apparently, though I
   can't be too sure.

   Now, it queries the mic and auxilary sound sources until sound
   buffers are depleted.  After doing so, it then "sorts" the audio
   packets timestamps backwards from the most recent packet to the
   oldest audio packet.  By doing this, it compensates for burst, and
   ensures that all audio data is seamless.  New burst data coming in
   will then line up properly with the older data via the sort function.

   NOTE: This needs testing
2014-01-05 16:58:54 -07:00
BtbN
fd709e0ed1 Add ObsNvenc to repository 2014-01-05 07:21:42 +01:00
palana
72d788c9c2 Filter duplicate profile names
Works around the short names feature of FindFirstFile so foo.inibar is
not listed as an unloadable profile
2014-01-05 07:11:14 +01:00
palana
458ec4a420 Changed icon for encoder error message box and fixed another minor inconsitency 2014-01-05 07:11:13 +01:00
jp9000
7cf22d53e3 changed version to 0.60 instead of 0.6 2014-01-04 14:03:52 -07:00
jp9000
a0ad58deb6 Fixed break in String API export
String::operator!=, String::operator==, and String::Compare functions
were all originally functions that returned BOOL.  I changed them to
return native 'bool' instead without realizing that it would break the
API.  So, sadly, I have to change them back to BOOL to prevent
incompatibilities with existing plugins.
2014-01-04 13:19:21 -07:00
palana
5bf0467965 Use bHasNVENC instead of bHasQSV for NVENC checkbox 2014-01-04 20:36:57 +01:00
palana
03b60a177c Properly reenable checkboxes in SetDefaults 2014-01-04 20:28:27 +01:00
palana
5b08485f29 Cache QSV/NVENC support on window init in advanced settings 2014-01-04 20:19:26 +01:00
jp9000
7b58170d22 updated version to 0.6 (test) 2014-01-04 07:44:58 -07:00
palana
13906eb934 Refactored encoder initialization, display errors instead of silently using x264
Added a bunch of (localized) error messages for QSV and NVENC
2014-01-04 01:41:23 +01:00
palana
7b33d00a7b Allow disabling QSV/NVENC even if no hardware support is detected
Also make checkboxes semi-exclusive, pending further refactoring into
a select box or similar gui element
2014-01-04 01:41:18 +01:00
palana
65d9c25441 Allow settings dialogs to cancel applying settings 2014-01-04 01:14:36 +01:00
palana
285b80dd37 Fixed divide by 0 in frame drop percentage calculation 2014-01-04 01:14:36 +01:00
jp9000
71b3830b64 Make record button primary when set to record only
When the user has set the mode to "record to file only", make it so
that the "Start/Stop Recording" button is enabled, and that the
"Start/Stop Streaming" button is disabled.  Having both buttons
enabled when in 'record only' mode is just a bit confusing.
2014-01-03 13:59:04 -07:00
jp9000
01df955967 Merged keep_recording branch
This branch fixes the issue of your recordings ending every time the
network stream is disconnection.

This commit is a squash of the following commits on the branch:

    tweak the button positions a little bit
    Added OnOBSStatus plugin callback
    Enables plugins to recreate the (LIVE + REC) display
    Skip ReportStreamStatus callbacks if there is no actual stream
    Fix the status bar for real this time
    Make the status bar keep updating when not live
    Fixed exit cleanup while streaming/recording
    Fix Stop() behavior and stream status message
    Continue recording even if the stream goes offline
    Requires setting KeepRecordingOnStopStreaming to 1 in global.ini to test
2014-01-03 09:23:46 -07:00
jp9000
8b410a9f16 Merge branch 'master' of https://github.com/jp9000/OBS 2014-01-03 07:10:08 -07:00
jp9000
1da78b984c Microphone devices now properly reacquire when lost
1.) Audio devices initialized with WASAPI (MMDeviceAudioSource) now
properly attempt to reacquire every 2 seconds after device has been
unplugged.

This particular issue really shouldn't have taken this long to have been
resolved, please make things like this a higher priority next time (I'm
looking at you Jim.  ..or, I'm looking at myself, rather)

To all users who have been afflicted by this issue for a long time, I
sincerely apologize.

2.) Made String::Compare and String::operator== and != use 'bool'
instead of BOOL for return values (this isn't the 90's anymore)
2014-01-03 07:04:13 -07:00
palana
2f3d119e32 Output complete sei_rbsp (including rbsp_trailing_bits) 2014-01-03 07:35:37 +01:00