0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00
Commit Graph

2454 Commits

Author SHA1 Message Date
jp9000
3816b0bff9 UI: Fix tooltips for scene move up/down buttons 2015-04-10 07:27:31 -07:00
jp9000
d18a164c78 win-dshow: Update libdshowcapture to 0.4.4
Adds the following changes:
- Prioritize YUV formats over non-YUV formats for performance and to
  prevent intermediary filters
- Directly connect filters when possible to avoid intermediary filters
2015-04-10 07:27:31 -07:00
jp9000
21deb26557 win-dshow: Ensure autoselected FPS updates formats
Fix an issue where if the FPS property is set to "Match Output FPS" it
will not show all the available video formats.
2015-04-10 07:27:30 -07:00
jp9000
75bc7d3153 win-wasapi: Fix timeout bug
The WaitForSignal message is supposed to return return true if the
handle was signaled, not if the wait timed out.
2015-04-10 07:27:29 -07:00
jp9000
1143b1d631 win-wasapi: Prevent repeating connect fail message
Fixes an issue where if the device can't be connected, it will
continually repeat the connection failure message.
2015-04-10 07:27:29 -07:00
jp9000
f3069e3ea5 text-freetype2: Prevent potential null dereference 2015-04-10 07:27:28 -07:00
jp9000
0e2a5d2de2 obs-outputs: Do not drop I-frames
When frames were dropped, it would also drop I-frames, which can mess
with the keyframe calculation of certain services that depend on
I-frames in their output protocol (such as HLS).
2015-04-10 07:27:27 -07:00
jp9000
4e54c89f9c libobs: Fix full range min/max output
The minimum and maximum color range values were not being set by the
video_format_get_parameters function when full range was in use; I
assume it's because the expected min/max values of full range is
{0.0, 0.0, 0.0} and {1.0, 1.0, 1.0}, so I'm just making it so that it
sets those values if using full range.

Way to replicate the issue (windows):
1.) Create a win-dshow device capture source
2.) Select a device and set it to a YUV color format to enable YUV color
conversion
3.) Select "Full Range" in the color range property.
4.) Restart OBS, the device will then start up, but will display green
due to the fact that the min/max range values were never set, and are
left at their default value of 0.
2015-04-10 07:27:26 -07:00
jp9000
095159c23a libobs: Fix bug with filter bypassing
Due to a bad 'if' expression, when a filter that is not last in the
chain is disabled or being bypassed, it ends up still calling the
filter's video processing function unintentionally.

This fix makes sure that it only calls the appropriate render functions
if the next filter target is the source, otherwise it will just call
obs_source_video_render to process the next filter in the chain.

How to replicate the bug:
1. Create two crop filters on the same source
2. Give each crop filter a different distinct value
3. Disable both crop filters
4. The image would still be cropped
2015-04-10 07:27:26 -07:00
jp9000
13fd6ff064 libobs: Use bilinear low res scale effect
The normal scaling methods cannot sample enough pixels to create an
accurate output image when the output size is under half the base size,
so use the bilinear low resolution scaling effect in that case instead
to ensure a more accurate low resolution image.
2015-04-10 07:27:25 -07:00
jp9000
65517ea4cf libobs: Add low resolution bilinear scale effect
This effect preserves detail of images that are scaled below half size
by using sampling 9 pixels.
2015-04-10 07:27:24 -07:00
jp9000
b18e957d81 libobs: Add missing function definitions
Add missing function definitions for the lanczos and bicubic effects
2015-04-10 07:27:23 -07:00
jp9000
27a0749d8d libobs: Add func to set display background color
This function sets the background color for a display
2015-04-10 07:27:23 -07:00
jp9000
1a9c512f38 libobs: Add functions to disable main preview
If you don't need to see what's displayed, then this is particularly
useful for two reasons:
1. It reduces the number of draw/present calls
2. It can prevent issues with certain hardware setups where rendering on
   a monitor hooked up to a separate card can experience slowdowns
2015-04-10 07:27:22 -07:00
jp9000
ebfe477caf libobs: Add ability to disable displays
Sometimes it can be useful to turn off rendering to the display in order
to reduce the number of draw calls and present calls.
2015-04-10 07:27:21 -07:00
fryshorts
9cc56f2516 UI: Fix precision in float comparison helper
Use std::abs instead of abs to avoid loss in precision and also fix
the corresponding warning from clang (3.5.0):

warning: using integer absolute value function 'abs' when argument is
of floating point type [-Wabsolute-value]

Closes jp9000/obs-studio#414
2015-04-08 01:45:12 +02:00
Jim
917daff6ec Merge pull request #409 from jb55/nixos-install
NixOS installation instructions
2015-04-05 18:21:06 -07:00
Jim
8b472dc3a0 Merge pull request #408 from flibitijibibo/master
Buildfix for older FFmpeg versions (F20 RPMFusion)
2015-04-05 18:20:05 -07:00
Palana
70b2ffeee7 UI: Fix custom buffer size for simple output
The buffer size was being saved as 'VBufsize' while all read operations
tried to read 'Bufsize'
2015-04-04 22:17:10 +02:00
jp9000
54535753ee Revert "libobs: Add UI-independent plugin search paths"
This reverts commit 99c674e41f.

These commits were originally added to allow multiple user interfaces to
use the same plugins, but I soon realized that multiple user interfaces
can use multiple libobs versions, so each user interface should have its
own set of plugins to manage.  Some user interfaces may not wish to use
certain plugins anyway, so this fixes that issue as well.
2015-04-03 19:54:36 -07:00
jp9000
ec0048e05e Revert "Merge pull request #410 from bazukas/nix-modules"
This reverts commit 92d800cc18, reversing
changes made to 35a4acede0.

These commits were originally added to allow multiple user interfaces to
use the same plugins, but I soon realized that multiple user interfaces
can use multiple libobs versions, so each user interface should have its
own set of plugins to manage.  Some user interfaces may not wish to use
certain plugins anyway, so this fixes that issue as well.
2015-04-03 19:54:03 -07:00
Jim
92d800cc18 Merge pull request #410 from bazukas/nix-modules
Add $HOME/.obs-plugins as default module search dir on Linux
2015-04-03 19:06:45 -07:00
Azat Khasanshin
6b066e9bc6 Add $HOME/.obs-plugins as default module search dir on Linux 2015-04-03 19:20:05 +03:00
jp9000
35a4acede0 mac-capture: Get cursor visible setting on create
When display capture is created, the hide_cursor variable is not
initialized, so just initialize it to the setting in the create
function.
2015-04-02 17:48:22 -07:00
jp9000
a892fa9e33 mac-capture: Fix display capture cursor bug
The kCGDisplayStreamShowCursor option used with the dictionary does not
work if you assign @true or @false to it.  After some testing, it needs
to point to the id cast of either kCFBooleanTrue or kCFBooleanFalse in
order for it to work properly.

If it doesn't use either of those values, the display stream seems to
use its internal default, which on 10.8 and 10.9 is visible, and 10.10+
is invisible, which would explain why people on 10.10 couldn't get the
cursor to capture.
2015-04-02 17:47:53 -07:00
William Casarin
a2acfd7ff4 NixOS installation instructions 2015-04-02 15:51:32 -07:00
Ethan Lee
fd4f2e29aa Buildfix for older FFmpeg versions (F20 RPMFusion) 2015-04-01 06:50:22 -04:00
John Bradley
453b505637 UI: Ensure rescale res is non-null and length > 0 2015-03-31 15:49:43 -05:00
Jim
97ca9e0ea5 Merge pull request #407 from kc5nra/ffmpeg-output-stuff
More advanced ffmpeg output selection
2015-03-30 16:26:26 -07:00
kc5nra
b218957f38 UI: Add Format, Audio and Video ComboBoxes
Adds ComboBoxes for selecting format and audio/video
codecs. The ComboBoxes also show only valid codec
combinations for a particular container format.
2015-03-30 18:16:57 -05:00
kc5nra
f04be51947 obs-ffmpeg: Set channel layout to avoid warning 2015-03-30 17:58:44 -05:00
kc5nra
aa82340a1e obs-ffmpeg: Set stream time_base to avoid warnings 2015-03-30 17:58:44 -05:00
kc5nra
c53f8cbed8 obs-ffmpeg: Add format and codec id support
Allow specification of specific codec ids and container
format to muxing.
2015-03-30 17:58:37 -05:00
John Bradley
4c570826c2 obs-ffmpeg: Workaround for a64 encoder bug
the Commodore A64 codecs seem to deref the video frame
too many times causing a crash.  For now just skip if this
codec.
2015-03-30 17:30:38 -05:00
kc5nra
f128283655 obs-ffmpeg: Fix outputs without both video/audio
Fixes a crash in formats that don't support both video and audio
streams.
2015-03-30 17:30:38 -05:00
kc5nra
8743e722ae UI: Properly disable when scale disabled
Enable/Disable scale output ComboBox based on whether
the scale checkbox is selected.
2015-03-30 17:30:37 -05:00
kc5nra
0976126ebb deps-libff: Add ff codec/format utility functions
This adds utility functions for determining which
codecs and formats are supported by loaded FFMpeg
libraries.  This includes validating the codecs that
a particular format supports.
2015-03-30 17:30:29 -05:00
kc5nra
9f301cda94 deps-libff: Add extern "C" to all headers 2015-03-30 17:26:15 -05:00
kc5nra
36820a05e0 deps-libff: Link FFmpeg libraries 2015-03-30 17:26:15 -05:00
Radzaquiel
9983dbb491 INSTALL: update for Ubuntu & Debian-based distros
Added instructions for Ubuntu 15.04
Added JACK2 support in Debian-based distros
2015-03-30 15:16:08 -07:00
Jim
8d158e6ad4 Merge pull request #405 from MedicMomcilo/patch-1
FSF address
2015-03-30 15:08:36 -07:00
John Bradley
fc596f6141 obs-ffmpeg: Fix spurious bad channel layout
Some formats (like WMV) would send out audio packets that
had channels set but did not specify a channel layout.
Solution is to no longer rely on channel layout to get the
channels and just get the channel count directly off the
FFmpeg audio frame.
2015-03-30 10:59:59 -05:00
MedicMomcilo
c8a07533cf FSF address
Address for FSF was wrong, corrected
2015-03-29 19:18:39 +02:00
jp9000
d42a7ce66e UI: Fix crash log handling
Using Qt to handle crash dialogs is too unstable, so better to just use
the windows API directly and display a windows message box just to be
safe.
2015-03-27 14:29:37 -07:00
jp9000
0d704cdf92 UI: Fix bug with enforced audio encoder settings
I forgot that the track index is 1-based, not 0-bsaed.
2015-03-27 13:35:43 -07:00
jp9000
3bbefc5b57 UI: Only apply service settings to stream encoder
All audio encoders are currently having the service-specific settings
applied to them, so this makes it so that it checks which track the
stream is set to and only applies it to that specific encoder.
2015-03-27 12:55:15 -07:00
jp9000
99060e5bf2 Update to 0.9.1 2015-03-27 12:24:54 -07:00
jp9000
c7e1878390 libobs: Use default blend state with scenes
Instead of manually setting the blend state to the desired values, use
gs_reset_blend_state to ensure we have the default blend state (which
for color is a typical srcalpha/invsrcalpha alpha blending operation,
then the alpha channels are added together).

This fixes an issue where filtered scenes would look strange due to the
fact that alpha was not being blended properly.
2015-03-27 11:22:58 -07:00
jp9000
be52fa26f9 Add gs_blend_function_separate
This allows the ability to separate the blend states of color and alpha.

The default blend state has also changed so that alpha is always added
together to ensure that the destination image always gets an alpha value
that is actually usable after the operation (for render targets).

Old default state:
  color source: GS_BLEND_SRCALPHA, color dest: GS_BLEND_INVSRCALPHA
  alpha source: GS_BLEND_SRCALPHA, alpha dest: GS_BLEND_INVSRCALPHA

New default state:
  color source: GS_BLEND_SRCALPHA, color dest: GS_BLEND_INVSRCALPHA
  alpha source: GS_BLEND_ONE,      alpha dest: GS_BLEND_ONE
2015-03-27 11:18:02 -07:00
jp9000
95f5a3c260 libobs: Clear current async frame if cache freed
If the cache is freed the current async frame will of course become
invalid, so make sure it's set to null if the cache is freed.
2015-03-27 10:03:47 -07:00