Commit Graph

2578 Commits (c1a00817bbc4d897319c3ac22fba7440c344f9a3)

Author SHA1 Message Date
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
jp9000 3a90be39dd libobs: Deallocate lingering unused cache frames
This fixes an issue where cache frames would not free at all after
having been allocated with no upper limit on the cached frame size.  If
cached frames go unused for a specific period of time, they are
deallocated and removed from the cache.

This is preferable to having an upper cache limit due to the potential
for async delay filtering.
2015-03-27 00:07:16 -07:00
jp9000 f03e66fc99 Revert "libobs: Fix memory leak (Enforce cache limit)"
This reverts commit 4459ed3e2c.
2015-03-26 23:40:36 -07:00
jp9000 4459ed3e2c libobs: Fix memory leak (Enforce cache limit)
Under certain circumstances the cache could be prone to growing too
large unintentionally.  Setting a hard maximum limit should prevent
memory from growing if we suddenly get a lot of frames.
2015-03-26 22:59:48 -07:00
jp9000 6e22ac41b8 libobs: Swap async source frames in tick
Async frames are only swapping when rendering, or when not visible.
This is a flawed design due to the fact that there are certain
circumstances where the source is neither visible nor currently
rendering.

This is what caused a memory leak when scene items were marked as
invisible, because if a source has an async child source and decides not
to render that source for whatever reason, the child source would not
process the async frames at all, and the cache would just grow.

To fix this, simply moving the async frame cycle to tick fixes the issue
due to the fact that tick is always called regardless of circumstance.
2015-03-26 22:59:48 -07:00
Jim 1ab1a97b30 Merge pull request #404 from dodgepong/latest-crowdin-translations
UI: Add latest translations from CrowdIn
2015-03-25 18:03:26 -07:00
dodgepong a04548070c UI: Add latest translations from CrowdIn 2015-03-25 20:51:25 -04:00
Jim fc5d335cb6 Merge pull request #403 from Gol-D-Ace/ingest-servers-Vaughn-Live-iNSTAGIB
rtmp-services: Update Vaughn Live / iNSTAGIB.tv ingests
2015-03-25 17:43:18 -07:00
John Bradley 54fdd6555e mac-syphon: Fix NSURL selector compatibility 10.8
Use NSURL path.fileSystemRepresentation to be
compatibile with the 10.8 SDK. This appears to be
a convenience selector and should operate the same.
2015-03-25 19:01:47 -05:00
jp9000 96353332f3 win-capture: Fix game capture acquiring issue
If capture starts too quickly, the file mapping will return 2, which
means file not found, and it would then reset the capture and try again.
Sometimes this would result in long intervals where it wouldn't capture.
This fixes the issue by simply making game capture retry if file mapping
returns error number 2.
2015-03-25 14:14:43 -07:00
jp9000 709ad0705e UI: Don't use deferred update on cancel
If properties are set to defer updating, don't call obs_source_update on
dialog rejection.
2015-03-25 14:14:43 -07:00
jp9000 9e39a2c787 UI: Use setGeometry to restore saved dimensions
There was an issue where the position/size would keep changing every
time the program opened/closed, was due to the fact that we were not
calling setGeometry to restore the position/size.
2015-03-25 14:14:42 -07:00
jp9000 75ee8ff528 libobs: Update version number to 0.9.0 2015-03-25 14:14:41 -07:00
jp9000 621158f8e1 libobs: Fix warning
Removed this variable some time back, but didn't test on GCC (which
throws this warning), so I never knew about it until recently.
2015-03-25 14:14:40 -07:00
jp9000 2fdd58d312 UI: Add #pragma once to double slider widget 2015-03-25 14:14:40 -07:00
jp9000 2f6ba39b41 obs-filters: Add color key filter
Masks out a specific color range in RGB color space.  Commonly used with
solid image data or animated video rather than live video.
2015-03-25 14:14:39 -07:00
jp9000 adb392e08a obs-filters: Add chroma key filter
This allows applying a mask based upon the chroma value (U/V) of a
specific color in YUV color space.  Commonly used to mask out
greenscreens and bluescreens in live video.
2015-03-25 14:14:38 -07:00
jp9000 bee5b3a2d2 obs-filters: Add color correction filter
Adds a color correction filter if one wishes to just apply
gamma/constrast/brightness/opacity/color to a source.
2015-03-25 14:12:05 -07:00
jp9000 bd1ede883d obs-filters: Add crop filter
Allows any source to be cropped, though note that this renders to
texture first, so for more optimal results, cropping values should
probably be put in to capture sources that can be cropped as they're
actually rendered by the source.
2015-03-25 14:12:05 -07:00
jp9000 9138766620 obs-filters: Add mask/blend filter
This filter allows the ability to use a texture to modify the video
output of a source, the ability to:
- apply a color-based mask (dark = transparent, light = opaque)
- apply a mask based upon the alpha of an image
- blend an image via subtraction, addition, or multiplication
2015-03-25 14:12:04 -07:00
jp9000 55534d5d8d obs-filters: Add async delay filter
Adds a filter for delaying asynchronous video/audio data, for example
from webcams, video devices, or media playback sources.  Mainly intended
to allow users to sync up their webcams to other devices.
2015-03-25 14:12:03 -07:00
jp9000 3c5cc5cd54 UI: Add visibility checkbox to main sources list
Adds a visibility checkbox to the main sources list so that users can
temporarily disable/re-enable sources.  Only applies to scene items, not
the sources themselves.
2015-03-25 14:12:02 -07:00
jp9000 86ed7f12f3 UI: Allow scenes to use filters 2015-03-25 14:12:01 -07:00
jp9000 118665ec99 UI: Add missing locale text
"Close" and "Interact"
2015-03-25 14:12:00 -07:00
jp9000 ceba24c7e9 UI: Add user interface for filters 2015-03-25 14:12:00 -07:00
jp9000 ff363bc77b UI: Add QListWidget subclass to emit focus change
The FocusList subclass of QListWidget emits a GotFocus signal when it
gets focus -- used for the filters window to know when a specific filter
list gets focus.
2015-03-25 14:11:59 -07:00
jp9000 642aa7454f UI: Add list item widget w/ visibility checkbox
This is used to allow the user to temporarily disable sources/filters.

For each item in the list box, it displays a visibility checkbox (with
eye icon) that the user can click to disable/re-enable sources or
filters.

I did not end up using the Qt::ItemIsUserCheckable flag with the list
items for a few reasons:

- We could not style the checkbox indicator without qss screwing up
  other parts of the list widget style on certain operating systems

- We could not get the icon to properly invert on active selection like
  the text does on mac/linux, which made it look strange

- Clicking the checkbox too fast would cause it to signal a double-click
  on the icon, opening the properties for a source in the source list
2015-03-25 14:11:58 -07:00