889 Commits

Author SHA1 Message Date
jp9000
c82771e594 UI: Add deinterlacing to UI
Accessible via the context menu of a source.
2016-03-21 21:22:32 -07:00
jp9000
4ef26e63f7 UI: Add installer script 2016-03-21 16:23:41 -07:00
TotalCaesar659
a42c967260 UI: Add Russian translation for desktop icon
Closes jp9000/obs-studio#522
2016-03-20 11:11:20 -07:00
jp9000
69da1151e0 Update translations from Crowdin 2016-03-19 12:08:48 -07:00
jp9000
27edc1b045 Revert "UI: Unify output record paths across setting dialogs"
This reverts commit 911f2df130ce1995c40966dbe81b0c3bc628a08e.
2016-03-19 10:33:22 -07:00
jp9000
aa2bea3749 (API Change) libobs: Don't use signal for obs_load_sources
(Note: This commit also changes the UI)

Changed:
-------------------
void obs_load_sources(obs_data_array_t *sources_list);

To:
-------------------
void obs_load_sources(obs_data_array_t *sources_list,
		obs_source_load_cb callback, void *private_data);

Signals should really never be required to use to make some function
work properly.  The "source_load" signal was required for the
obs_load_sources function, but it's meant more for loading private data
in the settings, not for general loading of sources.

This changes it so that a callback is explicitly required to load the
sources.
2016-03-04 12:59:56 -08:00
jp9000
694a6da7b8 UI: Don't draw audio/transition sources in properties 2016-03-02 15:30:31 -08:00
jp9000
3b1775d97f UI: Add configurable transitions 2016-03-01 15:18:34 -08:00
jp9000
57054a237f UI: Don't add quick transition if it doesn't exist 2016-03-01 15:17:27 -08:00
Charles Ray Shisler III
911f2df130 UI: Unify output record paths across setting dialogs
It seems more intuitive if the recording paths for the Simple
Output, Advanced Default Output and Advanced FFmpeg Output are
linked together, so that the user does not have to manage three
paths if switching between the different options.

The UI elements are also connected so that a change to one
signals a change to the others with the corresponding config
setting.
2016-02-25 01:41:23 -08:00
Gol-D-Ace
2b7036dc93 Add latest translations from Crowdin 2016-02-21 22:16:12 +01:00
jp9000
5a071ace4a UI: Add label/control buddy pairs for main windows 2016-02-21 11:19:26 -08:00
jp9000
11271ce6e0 UI: Set accessible name for adv audio props button
People who are blind cannot know what the button does due to lack of any
strings associated with the button.
2016-02-21 11:17:26 -08:00
jp9000
560b69ecb3 UI: Use uncompressed audio for lossless
Originally there was an issue using FLAC for audio in AVI files, AVI
files wouldn't play back with some players.  Because FLAC doesn't work,
and lossless should be lossless, instead just used uncompressed WAV
data for the lossless audio, which is always supported.
2016-02-09 19:24:44 -08:00
jp9000
d66759d60f Revert "UI: Use flac for lossless audio"
This reverts commit 6e20310945ad181938b6e096f2af0b13bb1f97d6.

FLAC doesn't work properly in AVI files, and MKV files don't work in
vegas.  So, sadly the only solution is to use lossless audio at a super
high bitrate for the time being.
2016-02-09 18:46:15 -08:00
partouf
d75ed15037 libobs: Add file saving to file property
(This commit also modifies the UI)

Closes jp9000/obs-studio#502
2016-02-07 16:33:57 -08:00
jp9000
292e893a2d UI: Prevent video init with bad video settings
A lot of people had the problem where they'd initialize video settings
with 0 width or height on their output resolution value.  This just
changes it so that the user always has a valid resolution so video
initialization doesn't just outright fail.
2016-02-04 14:42:46 -08:00
jp9000
a999017e95 UI: Do not select on right-click
Originally an intentional design decision, right-clicking would also
perform selection, which is actually rather annoying and unnecessary.
2016-02-04 12:10:30 -08:00
jp9000
6e20310945 UI: Use flac for lossless audio
It was mistakenly using ac3 at a high bitrate -- lossless should be
lossless, both video and audio.
2016-02-04 11:56:20 -08:00
jp9000
a071c03470 UI: Fix studio mode always duplicating scene
If scene duplication mode is disabled and studio mode is turned on, it
would always initially duplicate scene regardless of whether scene
duplication mode was activated or not.
2016-02-04 10:11:50 -08:00
jp9000
fddb7d283d UI: Fix settings window data always being "changed"
Fixes a bug introduced in 6407707a04 where if you open the settings
window the settings would always think there were new changes.  It was
marking a control as changed when it shouldn't be
2016-01-31 15:32:43 -08:00
dodgepong
ea9db8249b Add latest translations from CrowdIn 2016-01-31 18:28:35 -05:00
jp9000
6407707a04 UI: Ensure the output res. is modified along with base 2016-01-31 00:55:05 -08:00
jp9000
3ca327fd76 UI: Resize program view if resolution settings changed 2016-01-31 00:55:04 -08:00
jp9000
48a3230b07 UI: Fix a wrong label alignment in settings window 2016-01-31 00:54:56 -08:00
jp9000
9e17328392 UI: Fix Delete shortcut for scenes/sources listboxes
When the new UI was put in, the action shortcuts were unintentionally
removed from the list boxes.
2016-01-31 00:54:50 -08:00
boombatower
8593c4bacd UI: Fix GCC 4.8 compilation issue
Apparently using QPointer container for the QObject being given to the
connect function makes it so it can't find the actual function to use.
I'm guessing this is incomplete functionality or a bug that existed in
GCC 4.8.  Doesn't happen in 4.9+.
2016-01-29 14:09:13 -06:00
jp9000
544953c870 UI: Implement transitions and preview/program mode
Implements transitions, and introduces "Studio Mode" which allows live
editing of the same or different scenes while preserving what's
currently being displayed.

Studio Mode offers a number of new features:
  - The ability to edit different scenes or the same scene without
    modifying what's currently being displayed (of course)

  - The ability to set up "quick transitions" with a desired transition
    and duration that can be assigned hotkeys

  - The option to create full copies of all sources in the program scene
    to allow editing of source properties of the same scene live without
    modifying the output, or (by default) just use references.  (Note
    however that certain sources cannot be duplicated, such as capture
    sources, media sources, and device sources)

  - Swap Mode (enabled by default) which swaps the program scene with
    the preview scene when a transition completes

Currently, only non-configurable transitions (transitions without
properties) are listed, and the only transitions available as of this
writing are fade and cut.  In future versions more transitions will be
added, such as swipe, stingers, and many other various sort of
transitions, and the UI will support being able to add/configure/remove
those sort of configurable transitions.
2016-01-26 11:49:56 -08:00
jp9000
a61933dd8e (API Change) libobs: Add 'type' to obs_scene_duplicate
(Note: This commit also modifies the UI)

Allows the ability to duplicate sources fully copied, and/or have the
scene and its duplicates be private sources
2016-01-26 11:49:52 -08:00
jp9000
669da7ba36 libobs: Do not use signals with audio capture/controls
(Note: This commit also modifies UI)

Instead of using signals, use designated callback lists for audio
capture and audio control helpers.  Signals aren't suitable here due to
the fact that signals aren't meant for things that happen every frame or
things that happen every time audio/video is received.  Also prevents
audio from being allocated every time these functions are called due to
the calldata structure.
2016-01-26 11:49:47 -08:00
jp9000
b0104fcee0 (API Change) libobs: Remove source_type param from functions
(Note: test and UI are also modified by this commit)

API Changed (removed "enum obs_source_type type" parameter):
-------------------------
obs_source_get_display_name
obs_source_create
obs_get_source_output_flags
obs_get_source_defaults
obs_get_source_properties

Removes the "type" parameter from these functions.  The "type" parameter
really doesn't serve much of a purpose being a parameter in any of these
cases, the type is just to indicate what it's used for.
2016-01-26 11:49:37 -08:00
jp9000
adcbf9311b UI: Remove "audio buffering time" (skip)
(Note: This commit breaks libobs compilation.  Skip if bisecting)
2016-01-26 11:49:30 -08:00
bla
f32f65bb1f UI: Don't create sources popup menu if no scenes
Closes jp9000/obs-studio#499
2016-01-26 11:48:53 -08:00
jp9000
832043fc7f UI: Disable OSX V-Sync when program is open
OSX has an annoying feature called "BeamSync", which on later versions
of OSX is always on.  For whatever reason, Apple devs decided to force
this feature to always be on, so applications must always render with
v-sync regardless of what they set their swap interval to.

This issue would cause syncing to the vertical refresh for each
additional active display, and wouldn't allow rendering above the
current refresh rate.  This caused major rendering stalls and prevented
video frame timing from being accurate.

This fixes the issue by using an undocumented set of functions to
disable BeamSync.  Note that because this is an undocumented method of
working around the issue, its existence cannot be guaranteed.  If the
functions no longer exist for whatever reason, it will safely do
nothing.
2016-01-25 17:44:41 -08:00
jp9000
c072ba55b2 UI: Hide renderer/adapter when not on windows
Also hide adapter list if not using Direct3D.
2016-01-25 17:29:11 -08:00
jp9000
22f7e6a82d UI: Move Renderer/Adapter to advanced
These really are advanced options that users shouldn't need to change
normally, so moving them to advanced makes sense, and keeps them away
from users who don't know what they're doing.
2016-01-25 17:29:11 -08:00
jp9000
9e4761347d UI: Fix a case where output res. stays invalid
If the base resolution is set to an invalid resolution, it would cause
the output resolution to automatically change to an invalid resolution.
After the invalid resolution was set for the output resolution, it would
stay at that invalid resolution.

This fixes it so it always tries to find the output resolution closest
to what was last actually set or actually edited.
2016-01-25 17:29:10 -08:00
jp9000
9b5ac1fbd2 UI: Fix preview right-click menu getting wrong source
When right-clicking items in the preview window and getting context
menus for them, it would often make the wrong scene item be associated
with the context menu because of the fact that it was using
QListWidget::currentItem instead of querying the actual selected list.

You must query the actual selection list via QListWidget::selectedItems
because QListWidget::currentItem does not work properly for
multi-selection list widgets.
2016-01-25 17:29:10 -08:00
jp9000
e5fc4dbbcd UI: Warn if high resource usage when encoding
Shows a warning stating that encoding is stalling, and shows the number
and percentage of frames that were skipped due to encoding.
2016-01-25 17:29:10 -08:00
jp9000
3749436cd5 UI: Fix "invalid" audio devices in audio settings
If a global audio device is disconnected or for whatever reason is no
longer available when audio settings is opened, it will erroneously
select index 0 of the combo box ("Disabled") by default because it can't
find it in the combo box.  This fixes that issue by making it insert an
item in to the combo box specifying that the previously available audio
device is no longer available, and properly preserving the user's
settings.
2016-01-25 17:29:10 -08:00
jp9000
bbbdd4442c UI: Add options to enable/disable stream confirm dialogs
Some streamers would accidentally hit start/stop streaming, which on
certain services would send out mass emails to all their followers.
This just adds options to general settings to optionally enable dialogs
that confirm whether to actually start/stop streaming when the button is
clicked.
2016-01-25 17:29:10 -08:00
jp9000
213d8ce154 UI: Add "Always On Top" option to file menu 2016-01-25 17:29:10 -08:00
jp9000
9991f6a7ec UI: Fix advanced audio properties duplication bug
Because of the patch that removed the "user sources list" in libobs
(70fec7ae8), obs_enum_sources will now enumerate the global audio
sources, where it didn't before.  In the advanced audio properties
dialog, before the patch I had to use code to manually include them, but
I neglected to remove that code when I made that patch, so it would
cause them to be added more than once.  This just removes that code.
2016-01-25 17:29:10 -08:00
jp9000
6da742ba02 UI: Fix bug where default scene would not be added to list 2016-01-25 17:29:10 -08:00
jp9000
db48e3471e UI: Add GetCurrentSceneSource inline function 2016-01-25 17:29:10 -08:00
jp9000
b8547aa811 UI: Add menu button (split button) class
When you assign a menu to a normal QPushButton, it becomes a button that
only allows you to have a menu.  This class lets you click the button
and have a menu at the same time.
2016-01-25 17:29:10 -08:00
jp9000
370761ba29 UI: Add helper to delete layout and layout contents 2016-01-25 17:29:09 -08:00
jp9000
6262abc2c8 UI: Resize main preview on the widget's resize signal
Fixes a bug where the preview's size calculations wouldn't update if the
widget itself was resizes but the window wasn't resized.
2016-01-25 17:29:09 -08:00
jp9000
d7d5e55d2c UI: Add splitter to main window
Allows adjusting the size of the bottom section of the main window
2016-01-25 17:29:09 -08:00
jp9000
3c83be374e UI: Remove obs_source_add and sourceSceneRefs variable
Prunes code used to workaround libobs "user sources" (such as
sourceSceneRefs) and instead simply holds its own references and saves
sources it chooses with obs_save_sources_filtered.
2015-12-22 05:49:01 -08:00