Commit Graph

2463 Commits (2054161717182d6c95cde520be8268ca1c7bb50e)

Author SHA1 Message Date
Palana 9dca07db30 libobs: Handle obs_scene_add failure
Previously a NULL item would cause a crash when reading transform info.
The crash can be reproduced by e.g. editing scenes.json so that two
scenes contain each other. Example scenes.json:

{
    "current_scene": "Scene",
    "sources": [
        {
            "flags": 0,
            "id": "scene",
            "mixers": 0,
            "name": "Scene",
            "settings": {
                "items": [
                    {
                        "align": 5,
                        "bounds": {
                            "x": 1440.0,
                            "y": 900.0
                        },
                        "bounds_align": 0,
                        "bounds_type": 2,
                        "name": "Scene 2",
                        "pos": {
                            "x": 0.0,
                            "y": 0.0
                        },
                        "rot": 0.0,
                        "scale": {
                            "x": 1.0,
                            "y": 1.0
                        },
                        "visible": true
                    }
                ]
            },
            "sync": 0,
            "volume": 1.0
        },
        {
            "flags": 0,
            "id": "scene",
            "mixers": 0,
            "name": "Scene 2",
            "settings": {
                "items": [
                    {
                        "align": 5,
                        "bounds": {
                            "x": 1.0,
                            "y": 1.0
                        },
                        "bounds_align": 0,
                        "bounds_type": 0,
                        "name": "Scene",
                        "pos": {
                            "x": 854.0,
                            "y": -520.0
                        },
                        "rot": 0.0,
                        "scale": {
                            "x": 1.75,
                            "y": 1.7562724351882935
                        },
                        "visible": true
                    }
                ]
            },
            "sync": 0,
            "volume": 1.0
        }
    ]
}
2015-02-17 13:41:49 +01:00
HomeWorld 641f626593 UI: Display message if no properties available
Display "No properties available" text in the property view if there are
no properties available.

Closes Pull Request #377
2015-02-16 18:39:39 -08:00
Kevin Tardif c293c17620 Generate proper DL_OPENGL value for linux
Since we rely on the dynamic linker to find the library for us via
dlopen(), we need to have DL_OPENGL be .so.N, not the full library
filename, as ldconfig doesn't cache the full filename

Use of TARGET_SONAME_FILE requires the library to be marked as SHARED,
not MODULE

This closes pull request #370
2015-02-16 15:28:42 -05:00
jp9000 2cc4c6e8d3 UI: Prevent re-updating of the stream encoder
Using advanced output mode, the stream encoder could be updated with the
same settings, causing the encoder to output those changes
unnecessarily.
2015-02-15 22:08:55 -08:00
jp9000 77f2fda3ce UI: Fix adv. mode recording settings update bug
The recording settings are updated only when not using the streaming
encoder for recording.
2015-02-15 22:08:55 -08:00
Jim ee4f8443b1 Merge pull request #372 from kc5nra/fix-typo-in-readme
Fix typo in README
2015-02-14 15:40:07 -08:00
kc5nra 3f7239741d Fix typo in README 2015-02-14 17:09:18 -06:00
jp9000 8e9924d6a1 win-dshow: Do not update encoders if active
Do not update the avermedia encoders if they are already active, they
weren't designed to be updated in real time, so it will cause encoding
to break.
2015-02-14 15:04:11 -08:00
Socapex 86d4ee68e6 UI: Do not save the project if null
If the jsonData string is null, then there's nothing that should be
written.

Closes pull request #366 from Socapex/debugcrash
2015-02-14 12:19:41 -08:00
jp9000 73c7a7f8bb Specify to load submodules for both win and mac 2015-02-14 12:10:52 -08:00
Jim c0b9a11c5d Merge pull request #371 from martell/master
win-dshow: Reorder CapsMatch for gcc
2015-02-14 11:21:04 -08:00
Martell Malone f079bc9f7f win-dshow: Reorder CapsMatch for gcc 2015-02-14 19:14:27 +00:00
Jim 8ecbe91d9a Merge pull request #367 from fryshorts/adv-audio-crash
UI: Small fixes to advanced audio settings
2015-02-14 10:02:00 -08:00
jp9000 104415d5c3 win-capture: Fix hook bug that could cause crashes
I had this issue where IDXGISwapChain::ResizeBuffers would fail in the
hooks, causing games to crash when they resized their backbuffers
because ResizeBuffers would return an 'invalid call' HRESULT value.  In
the ResizeBuffers documentation it says that it will only happen if a
backbuffer currently has any outstanding references, but there's no way
this would happen unless ResizeBuffers internally calls Present or vise
versa.

After ResizeBuffers has been called, the very first call to Present will
somehow seemingly invalidate and/or destroy the current backbuffer.
It's very strange, but that seems to be what's going on, at least for
the game I was testing.  So if you are performing a post-overlay
capture, then you must ignore the capture on the very first call to
Present.

It's Microsoft's code so you can't really know what's going on, you just
have to work around these strange issues seemingly in the dark.
2015-02-14 09:12:24 -08:00
jp9000 8b59b606c5 win-capture: Use right call type for hook funcs
Although STDMETHODCALLTYPE is technically WINAPI (__stdcall), it's best
not to make any assumptions.
2015-02-14 07:48:36 -08:00
jp9000 5d9cac1f80 win-dshow: Rename the avermedia encoders again
Slight clarification (I guess)
2015-02-14 07:48:35 -08:00
jp9000 ae931b32cf win-capture: Fix debug function strings
These had an older name of what the function used to be named
2015-02-14 07:48:35 -08:00
Jim 2c5a5b82c4 Merge pull request #369 from Bl00drav3n/master
Fixed a bug in color conversion code for 16bit textures.
2015-02-13 16:24:23 -08:00
Bl00drav3n 1f9f50c800 Fixed a bug in color conversion code for 16bit textures. 2015-02-14 01:08:38 +01:00
fryshorts 90ccae6f4c UI: Ensure only one advanced audio settings window
Add a check to prevent that the advanced audio settings dialog is only
once. When the dialog is already present raise it to the top instead.
2015-02-13 13:11:15 +01:00
fryshorts c45e74039f UI: Fix crash in advanced audio settings
Delete source controls when the settings window is deleted.
2015-02-13 13:11:15 +01:00
Jim 6099c65ff7 Merge pull request #363 from dodgepong/latest-crowdin-translations
Add latest translations from crowdin
2015-02-11 16:18:39 -08:00
dodgepong 2b01030607 Add latest translations from crowdin 2015-02-11 19:15:08 -05:00
jp9000 04925993b0 win-dshow: Fix names of AVerMedia encoders 2015-02-11 15:29:31 -08:00
Jim 9b4ebc2205 Merge pull request #361 from dodgepong/latest-crowdin-translations
Add latest translations from crowdin
2015-02-11 13:28:55 -08:00
dodgepong 187f5181c7 Add latest translations from crowdin 2015-02-11 16:27:24 -05:00
jp9000 20d1c2c410 UI: Add 'Advanced' settings section
Currently, this allows the setting of values such as:
- Audio buffering time
- Color format (still somewhat unsupported)
- YUV color space (if a YUV format)
= YUV color range (if a YUV format)

More color formats will be added in the future, such as RGB and YUV
4:2:2 formats.
2015-02-11 13:10:57 -08:00
jp9000 bd2110947a UI: Disable unused export/import menu options 2015-02-11 13:10:56 -08:00
jp9000 c90e55739f win-dshow: Allow overriding of color space/range
Certain devices may have a different color space or color range than
they may report, so allow the user to set it manually themselves if they
so wish.
2015-02-11 13:10:55 -08:00
jp9000 7e0a86e583 win-dshow: Fix stack overflow bug
Martell changed this function without realizing that this was calling a
function below it, not recursively calling itself.  The reason why he
got the warning was because there was no forward declaration of the
function that was being called; I think he's used to C where only one
function definition can exist with the same name.  In this case, it was
another function with the same name but with different parameters,
something that's permitted in C++.  I wish I had realized this sooner.

This fixes the crashes people have been having with devices.
2015-02-11 13:10:54 -08:00
jp9000 ba3cac938a libobs: Update to version 0.8.2 2015-02-11 13:10:53 -08:00
Palana 24d2737b9d Merge branch 'librtmp-fixes' 2015-02-11 17:53:47 +01:00
Palana 8a3dd2ef8a librtmp: Try to parse IPv6 addresses
This should (hopefully) allow URLs of the form rtmp://[abcd::1]/app
2015-02-11 17:52:56 +01:00
Palana ce25cf86b6 librtmp: Remember addrlen from getaddrinfo
OS X doesn't like sizeof(struct sockaddr_storage) as last parameter
for connect
2015-02-11 17:52:56 +01:00
Palana b7375fd1be Revert "Revert "obs-outputs: Update to latest librtmp version""
This reverts commit ac72e0392d.
2015-02-11 17:40:14 +01:00
jp9000 bda7cfc3ed UI: Remove unused variable 2015-02-11 08:06:37 -08:00
jp9000 dce0afa84f UI: Use grid layout for advanced audio properties
This fixes the issue where the labels wouldn't have enough space for
localization text in certain circumstances, and also fixes some issues
with alignment
2015-02-11 08:02:56 -08:00
jp9000 1fc132dc77 UI: Add 'Save' and 'Discard' to localization text 2015-02-11 05:47:05 -08:00
jp9000 9b850c7be1 mac-syphon: Name plugin "Game Capture (Syphon)"
People were getting a bit confused over what the "Syphon" source was,
and often wouldn't use it because they didn't know what it was for.
2015-02-10 22:28:56 -08:00
jp9000 ffc7b3c666 libobs: Fix multi. video encoder sync issues
When using multiple video encoders together with a single audio encoder,
the audio wouldn't be in sync.

The reason why this occurred is because the dts_usec variable of the
encoder packet (which is based on system time) would always be reset to
a value based upon the dts (which is not guaranteed to be based on
system time) in the apply_interleaved_packet_offset function.  This
would then in turn cause it to miscalculate the starting audio/video
offsets, which are required to calculate sync.

So instead of calling that function unnecessarily, separate the check
for whether audio/video has been received in to a new function, and only
start applying the interleaved offsets after audio and video have
actually started up and the starting offsets have been calculated.
2015-02-10 22:10:41 -08:00
jp9000 c2832b8b1c UI: Add "enforce streaming service settings"
Add a checkbox named "Enforce streaming service encoder settings"
checkbox to advanced output.  Disabling this checkbox allows the user to
optionally disable the enforcement of streaming service encoder
settings.  I had a user complain that they didn't want to always have
the service's preferred encoder settings forced on them.
2015-02-10 22:10:40 -08:00
jp9000 fc574a0d7b UI: Fix custom encoder settings not applying
Somehow the code to hook this particular widget was deleted, so add it
back in.
2015-02-10 22:10:39 -08:00
jp9000 943f89b873 UI: Apply service encoder settings (simple output)
Ensures that the current service's encoder settings are applied to the
encoders used with the simple output.  This is always on for simple
output so users don't have to mess with it themselves.
2015-02-10 22:10:39 -08:00
jp9000 3ca57fbb3e UI: Set simple mode reconnect signal to toggled()
clicked() is the wrong signal to use, it only activates on actual user
click, not when the value is changed.  toggle() activates whenever the
value itself is changed.
2015-02-10 22:10:38 -08:00
jp9000 368f04727c UI: Set simple output mode bufsize minimum to 0 2015-02-10 22:10:07 -08:00
jp9000 2149817af7 obs-x264: Set lower buffer size limit to 0
0 is a common value used for recording.
2015-02-10 19:32:35 -08:00
jp9000 a05ed355f5 libobs: Fix 64bit -> 32bit conversion warnings 2015-02-10 19:31:25 -08:00
jp9000 5a4a9befd2 rtmp-services: Add encoder settings callback
Swaps out the old initialize callback code that applied encoder settings
to the new apply_encoder_settings callback
2015-02-10 19:27:37 -08:00
jp9000 4eacb5f3e9 libobs: Add API to apply service encoder settings
Instead of having services automatically apply encoder settings on
initialization (whether the output wants to or not), instead make it
something that must be explicitly called by the developer.  There are
cases where the developer may not wish to apply the service-specific
settings, or may wish to override them for whatever reason.
2015-02-10 19:23:36 -08:00
jp9000 fe849ec482 libobs: Update to 0.8.1 2015-02-09 19:32:40 -08:00