Commit Graph

5105 Commits

Author SHA1 Message Date
Palana
82471d7539 UI: Ignore reorder signals from drag&drop reordering
Not ignoring these signals doesn't seem to break anything, but it
shouldn't be necessary to process them either
2015-06-28 05:09:46 +02:00
Palana
fc0819ca32 UI: Add workaround for drag&drop removing items with Qt-5.4/win
Workaround taken from <http://stackoverflow.com/a/30291775>,
potentially relevant Qt bug:
<https://bugreports.qt.io/browse/QTBUG-45365>
2015-06-28 05:09:46 +02:00
Palana
b53d6e9e58 UI: Add drag&drop reordering for the sources list 2015-06-28 05:09:45 +02:00
Palana
95857b4443 UI: Enable drag&drop reordering for scenes
The empty implementation for the QDataStream operators is necessary to fix
a Qt assertion: "QVariant::save: unable to save type
'std::vector<std::shared_ptr<OBSSignal> >' (type id: 1036)."

It doesn't seem like a full implementation of the stream operators would be
useful since the signal registration is very specific to the interaction
between the scenes and sources list, i.e. in case the scenes list ever accepts
scenes from sources (not 'obs_source's) other than itself (non InternalMove
drag&drop?) it would have to register those scenes with the libobs core which
should trigger the normal signal registration
2015-06-28 05:09:45 +02:00
Palana
b543ea6231 UI: Make scene items serializable via QDataStream
This minimal implementation should be enough to drag&drop scenes between UI
elements in the same process in the future
2015-06-28 04:30:17 +02:00
Palana
363b887cad UI: Make scenes serializable via QDataStream
This minimal implementation should be enough to drag&drop scenes between UI
elements in the same process in the future
2015-06-28 04:30:17 +02:00
Palana
9672aa0cb9 UI: Ensure only one source is selected on startup 2015-06-28 04:30:17 +02:00
Palana
e1f0ac0bd0 UI: Ignore source deselect events for now
Also ensure only a single source is selected if it's an update from
libobs
2015-06-28 04:10:10 +02:00
Palana
66fd1b2e80 UI: Ignore sources selection self-update roundtrips 2015-06-28 04:10:10 +02:00
Palana
41689fe746 libobs: Add obs_scene_reorder_items 2015-06-28 04:10:10 +02:00
Palana
ef9090e0a3 libobs: Add obs_scene_atomic_update 2015-06-28 04:10:10 +02:00
Palana
523e8b2517 UI: Explicitly delete source list items in closeEvent
This should reduce the chances of any deleteLater objects holding strong
references into the libobs core getting stuck in the Qt event queue
2015-06-28 04:04:15 +02:00
Palana
e82018579b UI: Remove scene signal handlers in closeEvent 2015-06-28 04:04:15 +02:00
Palana
21ac7a7e46 UI: Add QtDataRole enum
This introduces the OBSSignals data role, which will be used to store
signal handlers in stock Qt objects
2015-06-28 04:04:15 +02:00
Palana
4b003947b8 UI: Clear global signals in closeEvent 2015-06-28 02:42:03 +02:00
jp9000
f8c5c7f55f obs-filters: Add gain filter
This filter simply modifies the volume of the signal as a convenient way
of modifying the volume before other filters, or amplify the volume
without having to mess with advanced audio properties.
2015-06-26 06:11:54 -07:00
jp9000
8bb84cdb3b obs-filters: Use audio-math.h for db conversions 2015-06-26 03:40:29 -07:00
jp9000
546b189f05 libobs: Use audio-math.h for decibel conversion 2015-06-26 03:40:28 -07:00
jp9000
c82da7da93 libobs/media-io: Add common audio math functions
This adds functions specific to audio math, which at the moment is just
converting to and from decibel and multiple.
2015-06-26 03:40:27 -07:00
jp9000
204d5f30ce obs-filters: Remove fminf/fmaxf redefinitions
These functions are already defined in math.h, so there's no need to
define them again.
2015-06-26 03:03:15 -07:00
jp9000
07ca99f523 obs-filters: Change 'db' abbreviation to 'dB' 2015-06-25 23:28:26 -07:00
jp9000
97ead131c1 UI: Show popup menu w/ vol. control config button
Use the config button on volume controls to allow the ability for
filters/properties to be accessed via the mixer.  Particularly useful
for the purpose of accessing filters/properties of global audio outputs
that are added via audio settings.
2015-06-25 15:55:30 -07:00
jp9000
3c93345179 UI: Add optional config button to volume controls 2015-06-25 15:55:29 -07:00
jp9000
cc45b92a8e obs-filters: Add noise gate filter 2015-06-25 15:55:28 -07:00
jp9000
d9c7290891 libobs: Do not try to render audio-only sources 2015-06-25 15:55:27 -07:00
Palana
e45f9f1b9a coreaudio-encoder: Use HE-AAC for low bitrates 2015-06-25 21:16:15 +02:00
Palana
eb6aa9ba47 coreaudio-encoder: Add format id to string helper 2015-06-25 21:16:15 +02:00
Palana
ca15e71129 coreaudio-encoder: Add missing format ids for windows 2015-06-25 21:16:15 +02:00
Palana
0d12ffb559 coreaudio-encoder: Extract encoder creation 2015-06-25 21:16:15 +02:00
Palana
7a430000fc coreaudio-encoder: Fix low bitrate sound (≤64 kbit/s) 2015-06-25 21:16:15 +02:00
jp9000
84567f2745 UI: Implement scene reordering
This simply saves/loads the actual list widget item order.

The reason why this is done is because internally, libobs doesn't have a
list of scenes, it only has a list of sources.  The list of scenes is
actually something artificially implemented by the basic window user
interface.
2015-06-25 03:55:33 -07:00
jp9000
19932f552a UI: Fix output mode name when setting defaults
The item in the [Output] section for the output mode is "Mode", not
"Type".
2015-06-25 01:06:46 -07:00
jp9000
f15965e721 UI: Add menu to visit website to basic main window 2015-06-25 01:02:47 -07:00
jp9000
c6a3287a16 UI: Remove unused actions from basic main window 2015-06-25 00:35:20 -07:00
jp9000
c618ac4e04 UI: Remove unused signals from basic main window 2015-06-25 00:23:17 -07:00
jp9000
94edb7f5d6 UI: Add warning if using no/multiple tracks
Certain output formats don't support multiple tracks, so it's important
to warn the user if they select multiple tracks.

Also warn the user if they select no tracks.
2015-06-21 22:34:58 -07:00
jp9000
556fde66ae UI: Warn user if recording format unsupported
If the recording format is unsupported or doesn't support multiple
tracks, warn the user to check their settings.
2015-06-21 22:34:54 -07:00
jp9000
2679c8c3ad UI: Remove "FLV" from "FLV Recording Path" text 2015-06-21 22:34:53 -07:00
jp9000
a24af63527 UI: Allow multi-track recording in advanced output 2015-06-21 22:34:52 -07:00
jp9000
d07664b129 UI: Add option to select recording format
Add a listboxes to recording to allow changing file formats (allows mp4,
mov, mkv, ts, flv)
2015-06-21 22:34:51 -07:00
jp9000
227508a72a UI: Use ffmpeg muxer instead of flv by default
This allows the ability to save different container formats, such as
mp4, mkv, and ts files.
2015-06-21 22:34:50 -07:00
jp9000
9048743ebe obs-ffmpeg: Add ffmpeg muxer
In addition to the flv file format, this allows the ability to save to
container formats such as mp4, ts, mkv, and any other containers that
support the current codecs being used.

It pipes the encoded data to the ffmpeg-mux process, which then safely
muxes the file from the encoded data.  If the main program unexpectedly
terminates, the ffmpeg-mux piped program will safely close the file and
write trailer data, preventing file corruption.
2015-06-21 22:34:49 -07:00
jp9000
33a040b025 obs-ffmpeg: Add ffmpeg muxer pipe program 2015-06-21 22:34:49 -07:00
jp9000
71e4f3091b libobs: Add OBS_OUTPUT_UNSUPPORTED error code
This allows an output to specify that the format or track count is
unsupported.
2015-06-21 22:34:47 -07:00
jp9000
657985da94 libobs: Allow obs-encoder callback self-removal
Allows obs-encoder callbacks to remove themselves while in a callback.
2015-06-21 22:34:46 -07:00
jp9000
693962a468 libobs: Allow audio-io callback self-removal
Allows audio-io callbacks to remove themselves while in a callback.
2015-06-21 22:34:45 -07:00
jp9000
6587b18d59 libobs: Add return code to process pipe destroy 2015-06-21 22:34:44 -07:00
jp9000
43956388b2 libobs: Fix bug with process piping
The size parameter is the size of the elements, not the size of the
data.  The size parameter should be 1, and the elements should be the
number of bytes.

The reason why I'm making this change is because the fread/fwrite would
fail when the parameters were swapped.
2015-06-21 22:34:43 -07:00
jp9000
336cd7ebe9 UI: Fix bug with path property browse button
When the editable list property was added, I added a case to a switch
statement without putting a break on the case before it.
2015-06-21 03:54:00 -07:00
jp9000
ecabe35f36 obs-filters: Add scroll filter 2015-06-21 01:21:22 -07:00