153 Commits

Author SHA1 Message Date
palana
1d80b17c84 Fix GetOutputFilename not expanding output filename properly 2014-09-14 19:21:29 +02:00
palana
1802fd7ddc Strip filename inside of GetExpandedRecordingDirectoryBase
Fixes 'invalid' file name style paths like "C:/foo/%.flv"
2014-09-12 21:36:14 +02:00
palana
4e63676d1a Add GetExpandedRecordingDirectoryBase
For a path "D:/foo/bar-$Y/$M/$T.flv" this will return at least "D:/foo"
(and create "D:/foo" if the directory doesn't exist) or at most
"D:/foo/bar-$Y/$M" with $Y and $M expanded, if those directories exist
2014-09-12 21:23:52 +02:00
palana
2ca9f89e95 Add ExpandRecordingFilename helper 2014-09-12 21:23:50 +02:00
palana
b3817488b4 Add API support for Replay Buffer
Closes https://github.com/jp9000/OBS/issues/374
2014-09-01 05:03:10 +02:00
palana
836cf7b91c Add warning when starting Replay Buffer without setting hotkeys 2014-08-22 04:55:31 +02:00
palana
0cd1d0a84a Add separate setting for Replay Buffer File Path 2014-08-21 02:29:41 +02:00
palana
c57758e7d2 Add date/time replacement for save path
Also OBS will now automatically create directories when needed
2014-08-21 02:29:41 +02:00
palana
38f96367d1 Separate Replay Buffer from normal file recording 2014-08-21 02:29:40 +02:00
palana
1560f5b9e7 Add Save Interval support to UI/recording logic 2014-08-13 00:37:23 +02:00
palana
0f07f473e7 Extract out file naming and file stream creation from OBS::StartRecording 2014-08-13 00:37:22 +02:00
Richard Stanway
0cd01d00ce Fix some warnings 2014-08-09 21:42:30 +02:00
Richard Stanway
094951b5e9 Prevent and warn about excessive audio buffering
Fix audio thread deadlock and issues with PTT / mute
2014-08-01 03:27:45 +02:00
jp9000
8bfdd25b00 Copy scene collection to scenes.xconfig
This allows better backward compatibility with older versions.  This
will keep the current scene collection set to default if the user ever
decides to downgrade OBS versions for whatever reason.
2014-07-31 17:27:08 -07:00
Richard Stanway
12f90b0f8b Start sound playback in MMDeviceAudioSource::Reinitialize
Fixes issues where the desktop device would drop and reacquire then stop providing audio due to no audio being played, causing OBS to freeze and break horribly.
2014-07-22 23:15:30 +02:00
palana
d036faa33e Allow recording even when SaveToFile is disabled
This changes the semantics of SaveToFile from "disable all file output
when disabled" to "automatically save stream to file when enabled",
which allows the "Start Recording" button to be enabled even when
SaveToFile is disabled.

Having the "Start Recording" button enabled now depends on having a
non-empty SavePath
2014-07-03 16:22:40 +02:00
palana
c73c18e2fb Automatically select last recording when opening the recordings directory 2014-06-11 17:25:37 +02:00
palana
c8aac02025 Set default file save path if available 2014-06-10 18:20:45 +02:00
palana
d2d57ee6d4 Move custom buffer size handling out of the settings dialog
BufferSize settings in the config files will be ignored as long as
the checkbox is unchecked (UseBufferSize is unset or 0), to make
the contents of the settings dialog reflect actual encoder behavior
2014-05-19 06:00:26 +02:00
jp9000
e2ae54ffb3 Remove 'use inputs devices for desktop audio'
Caused us no end of pain.  Users clicked it so much that it made us all
snap.  Now, if a user really, REALLY wants to use it, they'll have to
manually set the ini file variable in their profile ini, under [Audio],
InputDevicesForDesktopSound=1
2014-04-11 21:40:27 -07:00
jp9000
7cca8663a2 Game capture: Add anti-cheat compatibility
- Add an option in game capture to use SetWindowsHookEx instead of
   CreateRemoteThread to inject the library.

 - Add logging of what process game capture is trying to capture.

 - Rename "audio time offset" where it was used to "audio sync offset"

 - Adde logging for audio sync offsets

 - Update version to 0.62b test 1
2014-04-09 00:10:33 -07:00
palana
0708c86dbc Disable changing the config if the current audio device isn't found
This should alleviate the impact of enabling "Use Input devices ..." in
the advanced config

Also add a log message to signify that "Use Input devices ..." is enabled
2014-03-15 17:57:34 +01:00
Richard Stanway
c448a4e1c1 Check user has added sources before streaming 2014-03-15 00:27:29 +01:00
Richard Stanway
7e217cc523 Fix incorrect desktop audio mute threshold 2014-03-13 22:37:36 +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
f4ed09778e Add RTL-aware wrappers for DialogBox and CreateDialog
This makes previous RTL-changes (except for OBSMessageBox) obsolete
2014-02-26 07:07:13 +01:00
jp9000
f83442633b Replace MessageBox with wrapper for RTL languages 2014-02-24 18:18:21 -07:00
palana
2088e99a69 Move encoder selection to encoding settings
This will automatically update profiles to the new encoder selection
according to the old setting resolution, i.e. UseQSV && UseNVENC results
in QSV being selected.

This should free up some space to allow more encoder troubleshooting and
diagnostics in the settings window (relevant QSV changes coming soon ...)

Also hopefully made supported encoder settings a bit more clear by
disabling more settings if the selected encoder doesn't support them
2014-02-23 13:19:42 +01:00
palana
9d9a2a1f61 Delay closing output file until after the encoder is flushed
Applies only when in file only mode or with stream paused while file
output is enabled

Still need to evaluate not closing the file prematurely while stream is
active with a large number of buffered frames in the encoder
2014-02-20 20:42:49 +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
de4acd9233 Fix stopping the encoder when using StartStreamHotkey with file output
See http://obsproject.com/forum/viewtopic.php?t=11820
2014-02-20 13:31:57 +01:00
palana
3a3eb810dd Fix crash with start recording button/hotkey and invalid encoder settings
In case the encoder failed to initialize (making Start call Stop)
StartRecording would try to access invalid objects (since Stop deleted
them)
2014-02-12 17:37:59 +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
543b6d066b Add plugin events for start/stop recording 2014-02-07 01:25:08 +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
fbb554fcb3 Fix hotkey callbacks firing during ~DelayedPublisher 2014-02-01 17:10:10 +01: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
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
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
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
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
458ec4a420 Changed icon for encoder error message box and fixed another minor inconsitency 2014-01-05 07:11:13 +01:00