Commit Graph

4639 Commits (bd34dce8b638d0b3266a1e1fd2948a59f13067ae)

Author SHA1 Message Date
jp9000 bd34dce8b6 UI: Add helper class to translate message box buttons 2017-05-13 14:05:03 -07:00
jp9000 1c5591e644 UI: Make Qt use locale text for QWizard buttons 2017-05-13 13:07:12 -07:00
jp9000 35454f7fc5 UI: Fix a few locale items, and add a few missing ones 2017-05-13 13:01:56 -07:00
jp9000 0e1ae62355 UI: Add stats dialog
Shows performance stats, and streaming/recording stats, and helps warn
the user when they have less-than-optimal values with coloring on the
values (e.g. yellow when getting low on disk space, red when getting
really low)
2017-05-13 01:52:54 -07:00
jp9000 ee734c17a5 UI: Add themeID values for colors to style sheets 2017-05-13 01:52:53 -07:00
jp9000 d0d9cc4254 UI: Add function to get current memory usage (win32) 2017-05-13 01:52:45 -07:00
jp9000 d6872af0a2 obs-ffmpeg: Implement get_total_bytes in recording outputs
Allows seeing statistics such as bitrate and total bytes saved for
recording outputs.
2017-05-13 01:21:20 -07:00
jp9000 5c773d6807 libobs: Add obs_output_reconnecting func
Returns whether the output is currently in a state of reconnecting or
not.
2017-05-13 01:21:18 -07:00
jp9000 0a7361f4cc libobs: Add functions to get total/lagged frames
Useful for rendering statistics.
2017-05-13 01:21:17 -07:00
jp9000 cb9a478821 libobs: Add function to get average render time
Useful for real-time rendering statistics
2017-05-13 01:21:16 -07:00
jp9000 5ba37f81ec libobs-opengl: Fix potential crash w/ viewports
'device->cur_swap' can be null in this function, and gl_getclientsize
expects it not to be null.
2017-05-13 01:21:15 -07:00
jp9000 9e466a4697 libobs/util: Add function to get free disk space 2017-05-13 01:21:14 -07:00
jp9000 ce44791932 CI: Use git fetch --unshallow for OSX 2017-05-12 18:19:40 -07:00
jp9000 8962899b77 obs-ffmpeg: Add signal/proc to restart media playback
A convenient feature if the user wants to trigger the media to play back
on the fly for whatever reason.
2017-05-10 19:54:03 -07:00
Gol-D-Ace 95ffca850d rtmp-services: Rename hitbox.tv to Smashcast
Ingest URLs are the same for now.
2017-05-11 02:49:28 +02:00
Jim 01db15128c Merge pull request #911 from fryshorts/decklink-fixes
Decklink fixes
2017-05-10 16:44:53 -07:00
Richard Stanway 0c167d27a6
win-capture: Hide cursor when in background (window capture) 2017-05-11 00:01:33 +02:00
Richard Stanway 9e95b2eb6f
Various: Don't use boolean bitfields
Using bitfields causes less optimized code generation and the memory
savings are minimal as none of the objects are instantiated enough
times to be worth it.

See https://blogs.msdn.microsoft.com/oldnewthing/20081126-00/?p=20073
2017-05-10 23:28:46 +02:00
Richard Stanway 62c40eac0c
win-capture: Hide cursor when in background (game capture)
Prevents random OS cursors showing if someone alt+tabs out of a game but
still moves their cursor over the captured area (possibly fullscreen).
2017-05-10 23:08:25 +02:00
fryshorts 00cb0540a5 decklink: Remove unused variables to fix warning
Remove two unused variables that are causing a compiler warning on gcc.
The size was probably added in the past to calculate the the packet
size, but in the end was not actually needed.
2017-05-10 22:47:58 +02:00
fryshorts c8ce08d4b6 decklink: Add option to disable the plugin
Add an option to the cmake build system to disable the plugin. This is
needed on arm, as the plugin uses x86-intrinsics.
2017-05-10 22:43:15 +02:00
fryshorts 311cd6fb79 decklink: Fix compiler warning about ignored const
Fix a warning from gcc about one of the const keywords being ignored.
This happens because the returned type is not a reference contrary to
the methods above.
2017-05-10 22:43:15 +02:00
Richard Stanway 09f6882137
UI: Show invalid Bind to IP entries in the settings
This fixes a case where the user sets an IP but then that IP is no longer
valid, resulting in OBS showing "Default" in the settings but still trying
to bind to the invalid IP internally.
2017-05-10 21:44:28 +02:00
Jim 9eed12deb0 Merge pull request #909 from juvester/ci-wget
CI: OSX - Use wget instead of curl
2017-05-10 10:42:56 -07:00
Jim 2bf9d54899 Merge pull request #910 from fryshorts/linux-safe-replace
libobs: Fix os_safe_replace not working linux
2017-05-08 10:38:49 -07:00
fryshorts 0527cb5c15 libobs: Fix os_safe_replace not working linux
Make sure the target file exists before attempting to create a backup.
This will allow for the function to work correctly if the target does
not yet exist.
2017-05-08 19:24:02 +02:00
juvester 2cb73f32a2 CI: OSX - Use wget instead of curl
Possible fix for "curl: (56) SSLRead()" errors on Travis.
[skip appveyor]
2017-05-08 16:10:51 +03:00
jp9000 4049a5a882 UI: Add auto-configuration wizard
The auto-configuration wizard is designed to allow first-time or
novice/uneducated users or to set up video and encoding settings in a
very quick and easy way.  It'll automatically perform a bandwidth test,
and/or test the user's video settings to determine the most ideal
settings for streaming and recording (assuming a 1-pc setup).
2017-05-08 02:12:03 -07:00
jp9000 51e5f5fc64 UI: Remove colon from a few locale items
The colon makes it difficult to use these locale items for other
purposes, and the colon isn't used much elsewhere, so just remove them.
2017-05-06 12:12:37 -07:00
jp9000 f9595938d0 UI: Add 1920x1080/1280x720 to the settings base res list
Adds 1920x1080 and 1280x720 to the drop-down list of "default"
base/canvas resolutions rather than just the user's monitor resolutions,
in case the user wants to set the canvas to 1920x1080 or 1280x720
without having to manually type it in.  Added as a minor convenience.
2017-05-06 11:29:41 -07:00
jp9000 9d019e90ab UI: Limit default canvas res to 1920x1080 or below
The reasoning behind this is because having a very large canvas size can
negatively affect the user experience -- most sources end up seeming
smaller than they need to be to users, resulting in the user needing to
size up the sources, or in the case of webcams it makes the user try to
use much larger webcam resolutions than they should reasonably need to
do, resulting in higher unintentional resource usage.  The program will
additionally require more fillrate to render and downscale things as
well.

This applies only to the default starting base/canvas resolution for new
users only.

Additionally, users that ran the program pre-19 will be unaffected by
this change, as it will detect that and set the old defaults to prevent
an unexpected change in resolution for those users.
2017-05-06 11:29:40 -07:00
jp9000 ca0d4d18d5 UI: Don't subject base/output resolutions defaults
If defaults change for the base or output resolutions, it could
unintentionally affect users who are using defaults by chance and have
never changed those values.

Instead, save those values are soon as defaults are set if the users
haven't already set them.
2017-05-06 11:29:39 -07:00
jp9000 b850bc6415 UI: Add function to enable/disable outputs 2017-05-06 11:29:37 -07:00
jp9000 d1329d1798 obs-outputs: Fix frame dropping when using ultrafast
x264 on ultrafast won't drop any b-frames, so it might buffer packets a
bit too much in that case.

The frame drop duration calculation now searches for the first valid
video frame within the packets buffer.  Additionally, it no longer
prevents frame dropping for a specific time after dropping frames,
because the first case eliminates the need for that.
2017-05-06 11:29:36 -07:00
jp9000 585b3ed945 obs-outputs: Add connect time callback for rtmp output 2017-05-06 11:29:35 -07:00
jp9000 f6517d2be3 obs-outputs: Add null output
Allows encoding without necessarily outputting to a file or stream.
Useful for running encoding tests.
2017-05-06 11:29:33 -07:00
jp9000 a81646ed9c libobs: Don't allow lagged frames to be counted as skipped
Prevents lagged frames (frames that took too long to render) to be
counted as skipped frames (frames that are skipped due to encoding
taking too long to process)
2017-05-06 11:29:32 -07:00
jp9000 668763550c libobs: Add function to allow getting output connect time 2017-05-06 11:29:31 -07:00
jp9000 ad57aa1520 libobs: Add function to allow custom output drawing
Optionally allows drawing directly to the primary output instead of
having to use a source to draw.
2017-05-06 11:29:29 -07:00
jp9000 ffef736640 libobs: Pass exact data when calling obs_get_video_info
Originally, obs_get_video_info would recreate the obs_video_info
structure that was originally passed to it from obs_reset_video.  This
changes that to just store a copy of the obs_video_info when calling
obs_reset_video, and then copying that to the parameter of
obs_get_video_info when called.
2017-05-06 11:29:28 -07:00
jp9000 6fc74d69a9 libobs: Add functions to get logical/physical cores 2017-05-06 11:29:27 -07:00
jp9000 829ec5be2d libobs: Fix skipped frames reporting
When frames are skipped the skipped frame count would increment, but the
total frame count would not increment, causing the percentage
calculation to fail.

Additionally, the skipped frames log reporting has been moved to
media-io/video-io.c instead of each output.
2017-05-06 11:29:25 -07:00
jp9000 7c6c7bc4c0 libobs: Add random shader
Strangely, to the "Solid" effect file.
2017-05-06 11:29:24 -07:00
jp9000 f9b5da513a libobs: Fix tex.Load lookup (needs int3, not int2)
libobs' shader language is basically HLSL, and tex.Load uses an int3 for
2D textures, with texture mipmap index for the last component.  This bug
bypassed testing because the front-end automatically switches to OpenGL
if D3D11 initialization fails, and when converted to GLSL, works fine
because texelFetch only requires two components.  This also means
there's a bug in GLSL shader conversion code, because it's essentially
ignoring the third component when it shouldn't be.
2017-05-06 10:39:42 -07:00
Jim 5ad446b4b2 Merge pull request #907 from fryshorts/settings-crash-fix
UI: Fix settings dialog crashing on linux
2017-05-06 10:01:04 -07:00
fryshorts 937356cc8a UI: Fix settings dialog crashing on linux
Fix a double free in the settings window that occurs on linux only.
The UI Element already gets deleted above as a child of the
advAudioGroupBox which is not present on linux.
Apart from making the code even more unreadable, this will likely
come back to haunt us if the advAudioGroup will ever be shown on linux.
2017-05-06 15:59:41 +02:00
jp9000 e7f754df97 libobs: Use tex.Load for reverse NV12/I420 funcs
Eventually, most things should be replaced with Load where applicable
(though in some cases sub-pixel sampling is desired).

This commit also fixes a bug where NV12 async sources wouldn't render
correctly.
2017-05-06 01:24:45 -07:00
jp9000 e04ab3da7f text-freetype2: Make font lookup recursive on mac
On macs, some fonts can be in sub-folders of the font folder, and may
not properly be found.  This fixes that to detect directories and make
the lookup recursive.
2017-05-05 22:57:28 -07:00
Richard Stanway a23c009a69 Various: Optimize bundled PNG files
By losslessly recompressing and removing redundant metadata, this saves
around 910 KB.
2017-05-05 19:56:00 +00:00
Jim b0f5694181 Merge pull request #904 from cg2121/vlc-source-random
vlc-video: Add ability to shuffle playlist in VLC source
2017-05-05 09:56:53 -07:00