176 Commits

Author SHA1 Message Date
palana
d091679842 Disable uploading/analyzing of logs without logged system stats
The log file menu will now only contain log files that have at least logged
the system stats since too many people uploaded useless logs, unfortunately
2014-03-16 17:13:36 +01:00
palana
622dea851e Move LogUpdateCallback to a more appropriate location 2014-03-14 18:51:39 +01:00
palana
87ba3a736e Add optimize settings button (this "replaces" the defaults button when available)
Displaying both the defaults and the optimize button requires (currently
unnecessary) tweaking of the settings dialog, so they are mutually exclusive for
now
2014-03-08 19:42:19 +01:00
jp9000
dfc96d088e Add -profile [profile] command line option
A user requested it, and it was super quick and easy, so I did it.

Also, renamed an unusual variable isSTEREO to isStereo.
2014-03-07 20:13:24 -07:00
shousa
9af05a3f1d Enabled to select monaural audio
For sites that bit rate is limited
2014-03-03 23:22:40 +09:00
palana
3d13a9c5e7 Fix clearing first push to talk hotkey if two hotkeys were set
It was possible to bind an unlimited number of push to talk hotkeys via the first
push to talk hotkey edit box, and it was impossible to unbind those hotkeys
without restarting OBS
2014-03-01 14:18:05 +01:00
palana
c08bf24dbd Stop encoder in file only mode when the output file cannot be opened
This may or may not break some other combination of hotkey/button/invalid
setting, we shall see
2014-02-20 15:15:16 +01:00
palana
2a9cf6e5d9 Add plugin callback for log update notifications
This should allow plugins to implement their own version of a log window
without having to worry about providing lightweight-ish and non-blocking
callback functions for OBSApi.
2014-02-15 18:02:03 +01:00
palana
7b3beebe1b Fix #53 "Openable log window while application is active"
@jp9000
Implement log window

Also made it so that the log window position/size is saved.  Defaults to
600x500, centered to the main monitor if no configuration found.

@palana
Log system integration and callback behavior
2014-02-14 00:21:44 +01:00
palana
14a7a901fa Add 'Analyze' menu entry and button where applicable to LogUploader UI
Also add separate analyzerURL field to LogUpload result
2014-02-12 02:36:33 +01:00
palana
a1c19fa961 Monitor log file directory and refresh log upload menu if necessary
No new log files will be added to prevent the current log file from
becoming the topmost entry, which would render the "Upload last Log File"
entry useless
2014-02-10 22:14:46 +01:00
palana
1a0f01fe81 Add UI for log file uploader
Also includes UI for opening specific log files directly from the OBS UI

On successful upload the resulting (non-API) URL is copied into the
clipboard and a message box signalling successful upload is displayed.
This should probably be expanded into a dialog with buttons to retry
copying the URL to the clipboard and maybe a text box with the URL
preselected.

Whether or not the upload URL should be cached (per log file) and reused
in case of duplicate upload (attempts) is still open for debate.
2014-02-09 08:15:28 +01:00
palana
f04c3236e3 Increase profile limit to 1000 and move magic constant to OBS.h 2014-02-09 08:13:47 +01:00
palana
755a73ad2e Rename EnableProfileMenu to DisableMenusWhileStreaming
In case future modifications require more Menus to be disabled while
streaming
2014-02-09 08:13:46 +01:00
palana
6a46761c3c Add plugin events for start/stop streaming
These complement the new start/stop recording events as they are called
as soon as a network connection is initiated/severed regardless of
previous encoder state
2014-02-08 06:18:41 +01:00
palana
c7b44440cb Clarify callback semantics 2014-02-08 06:07:22 +01:00
palana
543b6d066b Add plugin events for start/stop recording 2014-02-07 01:25:08 +01:00
palana
8dff96f55b Fix copy&paste error in method declaration 2014-02-07 01:23:49 +01:00
palana
48ff7ef943 Check whether recording is possible before processing recording hotkey
Fixes a bug where OBS would start an encoding session without any active
outputs, and with the stop recording button disabled
2014-02-05 05:36:24 +01:00
palana
c01843dea1 Add start/stop recording hotkeys 2014-02-05 02:14:26 +01:00
palana
e59312e905 Enable recording button even when not streaming with network mode 0 2014-02-04 21:51:51 +01:00
palana
a5f92b34b1 Extract streaming/record/test stream button UI calls 2014-02-04 21:35:27 +01:00
palana
a7f4bf655e Disable profile selection while streaming
This enforces the warning that settings will not be applied until
streaming is restarted from the settings dialog for all profile settings

Also fixes a bug that would prevent start streaming/recording buttons
from being properly enabled/disabled when switching from a
recording/streaming only profile to a streaming/recording only profile
on stream stop

Additionally, the microphone volume meter got disabled when switching
from a profile with microphone enabled to a profile with microphone
disabled while the microphone was still active
2014-02-04 19:04:45 +01:00
Richard Stanway
b5239f7ee7 Improved debug logging
Log if QPC timestamps go backwards
2014-01-20 21:46:08 +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
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
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
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
palana
65d9c25441 Allow settings dialogs to cancel applying settings 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
paibox
95aff276f8 Clean up the recording stuff a bit
Remove duplicate code and make it so the recording doesn't request a
second keyframe while everything is booting up.
2013-12-31 11:02:32 +01:00
paibox
808bc49c73 Add a button to toggle recording on/off
Like the description says. Currently nukes the Dashboard button, not
quite sure where to put it. Allows you to toggle recording while
streaming, to split up videos or turn it off while you AFK in Orgrimmar
for ten hours.
2013-12-29 22:40:02 +01:00
jp9000
49241dc400 Added ability to use input devices for desktop audio, added a 'point filtering' option to text output source 2013-12-05 17:22:24 -07:00
jp9000
b146feb64f fixed push-to-talk delay hotkey (wasn't working because everything uses nanosecond timing rather than millisecond) 2013-10-19 21:22:02 -07:00
jp9000
632585b77b add 'show connected audio devices only' checkbox to audio settings 2013-10-09 15:32:19 -07:00
jp9000
d455ec9e77 made frame skip threshold adjustable, and increased the base threshold 2013-09-25 16:41:53 -07:00
jp9000
b95889d1b0 added a red message on the status bar if encoding is taking too long to process 2013-09-20 21:22:41 -07:00
jp9000
c447715ffd Fix video frame timing issues with new encoder code 2013-09-04 01:32:54 -07:00
jp9000
fd014bfe97 Allow selectable color space matrix outputs 2013-09-03 09:10:17 -07:00
jp9000
4475863468 fixed projector thread issues 2013-09-02 22:29:14 -07:00
jp9000
753156fb82 Make projector stuff thread safe 2013-09-02 21:19:25 -07:00
jp9000
0bcbc14fc0 Added UI stuff for projector 2013-09-02 19:38:03 -07:00
jp9000
3520b15ca4 Allow the option to select sample rate to stream at rather than have it hard coded to 48000hz 2013-09-02 18:40:15 -07:00
jp9000
8fd7282cb8 Added a "projector" mode to allow outputting the preview to a separate screen at the same time as the main window (differs from fullscreen preview in that you can do it to a separate monitor while still having the main OBS window open) 2013-09-02 17:34:36 -07:00
jp9000
f17ddc84c6 Separated encoding to a separate thread to prevent constant framerate issues, and increased frame timing precision to nanosecond approximation 2013-08-31 13:13:50 -07:00
jp9000
6d1a39f833 finally fixed monitor rotation for monitor capture on windows 8 (though it still baffles me beyond reason why anyone would use monitor capture at all with a portrait desktop) 2013-08-04 15:26:30 -07:00
palana
81a6bbb0da Added VideoEncoder::HasBufferedFrames, changed semantics for GetBufferedFrames and updated x264 accordingly 2013-08-03 05:09:36 +02:00