Commit Graph

1399 Commits (ac2f792d507232d8ddbbdf08f61e974258ba2d8f)

Author SHA1 Message Date
SuslikV 2d2ca06f6d obs-x264: Don't show buffer size if buffer size off
Whether buffer size is visible is determined by the value of the "Use
buffer size" property (the "use_bufsize" setting).

(Commit edited and formatted by Jim: separated this code from the
previous commit, and gave it a proper commit message)

Closes jp9000/obs-studio#567
2016-07-18 07:18:38 -07:00
SuslikV 2fb1d18056 obs-x264: Fix settings string typo
This is why macros should be used for settings strings.

(Commit edited and formatted by Jim: separated this code from the
following commit, and gave it a proper commit message)

Closes jp9000/obs-studio#567
2016-07-18 07:14:29 -07:00
jp9000 7feb21572f win-capture: Update D3D9 shared texture patches 2016-07-15 13:00:21 -07:00
Jim 0c415ee12c Merge pull request #562 from tgurr/vlc-video-linux
vlc-video: Enable building the plugin on Linux
2016-07-13 00:34:17 -07:00
jp9000 2732375dba rtmp-services: Update YouTube max bitrate 2016-07-10 01:07:33 -07:00
jp9000 d7ed0f1976 Revert "win-capture: Track gl "swap" invocations to prevent duplicate work"
This reverts commit 4c505e7030.

Reverting this for the time being due to issues with quakelive.  This
will be more thoroughly tested and hopefully added again.
2016-07-10 00:38:15 -07:00
jp9000 6ac832fbb2 obs-filters: Fix scroll filter sampler state
When the crop filter was changed to a crop/pad filter, the sampler state
was changed to use a transparent border for the U/V addressing mode.
However, what was not realized at the time was that the scroll filter
also shared the crop effect file, and the scroll filter depended on the
old sampler state (wrap u/v).

This fixes the issue by simply setting a u/v wrap sampler state in the
scroll filter.
2016-07-08 03:03:23 -07:00
Timo Gurr c086aac2ea vlc-video: Fix library name searched for on Linux 2016-07-07 16:42:14 +02:00
Timo Gurr a1ec0ecee3 vlc-video: Enable building the plugin on Linux 2016-07-07 16:24:09 +02:00
Gol-D-Ace 81adb13f59 Update translations from Crowdin 2016-07-06 01:18:27 +02:00
jp9000 ee4febcd06 linux-capture: Don't find window via class if class empty 2016-07-03 22:27:38 -07:00
Palana 4c505e7030 win-capture: Track gl "swap" invocations to prevent duplicate work
Tested using FTL (steam): SwapBuffers ultimately calls wgl_swap_buffers
causing an additional copy which just isn't necessary

This also causes game capture to sometimes capture overlays even when
not intended
2016-07-03 13:18:23 -07:00
jp9000 f8fcba2fa2 Revert "obs-ffmpeg: Use core count for output threads by default"
This reverts commit bd70e73c25.

Turns out the commit was due to a miscommunication -- the commit it was
fixing actually worked fine, and this fix was unnecessary.
2016-07-02 23:54:43 -07:00
jp9000 e389ae8a75 linux-capture: Additionally search windows via WM_CLASS
If window capture fails to find a window with a matching title, search
for a window with the same window class additionally as a backup.

Replaces the third part of the internal window string with the class
name instead of the program path due to the fact that the program path
rarely seemed to work.
2016-07-02 23:49:19 -07:00
jp9000 42d7bf1237 Revert "win-dshow: Reword "buffering" options to be more specific"
This reverts commit a6d7cbf221.
2016-07-02 12:05:10 -07:00
jp9000 a6d7cbf221 win-dshow: Reword "buffering" options to be more specific
Due to users inquiring what the "buffering" option does, it would be
best to have a bit more details in its wording as to its function.
2016-07-01 17:03:13 -07:00
jp9000 9413a43869 obs-filters: Add scaling/aspect ratio filter
Allows forcing a specific resolution or aspect ratio on a source, with
user-defined sampling.
2016-06-29 08:00:52 -07:00
Olle Kelderman c7e3dfc347 obs-filters: Change 'Crop' filter to 'Crop/Pad' filter
Allows the ability to pad in addition to cropping.  Changes the name to
Crop/Pad filter.

(Additional edits by Jim: Greatly refactored/simplified filter code)

Closes jp9000/obs-studio#532
2016-06-28 02:46:36 -07:00
Rodrigo Ipince 12fb9508b2 rtmp-services: Add Kamcord service
Closes jp9000/obs-studio#547
2016-06-27 23:52:07 -07:00
SuslikV 8a9cbaae18 image-source: Prevent random_file call when file list empty
Simple workaround to prevent integer division by zero in random_file
when add new source.

Closes jp9000/obs-studio#550
2016-06-27 20:11:03 -07:00
jp9000 bc9d68e2ad text-freetype2: Do not set default text 2016-06-27 03:18:48 -07:00
jp9000 bd70e73c25 obs-ffmpeg: Use core count for output threads by default
Recent FFmpeg versions seem to have changed the default thread count for
most codecs to 1.  Use the max core count by default as it was
originally.
2016-06-27 03:18:40 -07:00
jp9000 b012c7280a win-capture/graphics-hook: Fix vs2015 internal compiler error
Removing this union fixes the internal compile error that would occur on
visual studio 2015 update 2 and above when these variables were all in a
union.
2016-06-22 14:40:54 -07:00
jp9000 d7db0b8b01 (API Change) libobs: Fix output data cutoff on stop
(Note: This commit also modifies obs-ffmpeg and obs-outputs)

API Changed:
obs_output_info::void (*stop)(void *data);

To:
obs_output_info::void (*stop)(void *data, uint64_t ts);

This fixes the long-time design flaw where obs_output_stop and the
output 'stop' callback would just shut down the output without
considering the timing of when obs_output_stop was used, discarding any
possible buffering and causing the output to get cut off at an
unexpected timing.

The 'stop' callback of obs_output_info now takes a timestamp with the
expectation that the output will use that timestamp to stop output data
in accordance to that timing.  obs_output_stop now records the timestamp
at the time that the function is called and calls the 'stop' callback
with that timestamp.  If needed, obs_output_force_stop will still stop
the output immediately without buffering.
2016-06-22 14:10:39 -07:00
jp9000 605590606f obs-outputs: Remove send_remaining_packets
Because output stop timing has been fixed, there is no need to send the
remaining packets in the queue because it now just waits for the stop
timing anyway.
2016-06-20 02:56:33 -07:00
Kilian von Pflugk bc2b31f10b rtmp-services: Nood add offical recommends 2016-06-16 23:58:27 +02:00
jp9000 dc04acdb44 vlc-video: Add ability to add directories to playlist 2016-06-15 16:20:36 -07:00
jp9000 d0eae5d0e6 image-source: Add ability to add directories to slideshow 2016-06-15 16:20:12 -07:00
jp9000 d32424e5ad win-capture: Reset d3d9 capture if device recreated
Fixes a bug where if a D3D9 program recreates its device the capture
would become invalid.  Certain games (especially blizzard games) will
completely recreate their Direct3D device if a critical D3D9 error
occurs.
2016-06-11 12:27:06 -07:00
jp9000 d89299fc1a vlc-video: Add VLC video source
Adds the ability to add video playlists via libvlc instead of via the
media source.  This is mostly just being added as a secondary option to
the media source to reduce maintenance costs and save time.  Currently
libff cannot pause/unpause/seek, and isn't programmed to handle
playlists yet.

If VLC is installed on the computer (with the same architecture) it will
allow video playback via libVLC.  In the future, users should be able to
optionally download VLC libraries via the installer as well if they
don't want to necessarily install VLC to get the plugin working.

This plugin performs runtime linking instead of compile-time linking;
compiling VLC is not required, only its headers are required.  To
compile, clone the VLC repository and set the VLCPath cmake variable to
point to the VLC repository directory.
2016-06-06 23:53:59 -07:00
Jim aded8fccc3 Merge pull request #551 from kazukioishi/master
win-dshow: Fix audio output mode not showing up
2016-06-05 19:33:38 -07:00
jp9000 57d580f8a9 linux-capture: Convert window strings to UTF-8 strings
The UI expects everything to be in UTF-8, so convert all window strings
to UTF-8 whenever getting a window name.
2016-06-05 19:25:37 -07:00
jp9000 5d16e44899 linux-capture: Fix window capture crashes
The xcomposite window capture crashes were due to a few factors:
-------------------------------
1.) The source's X error handler was possibly being overwritten by
another part of the program despite us locking the display, presumably
something in Qt which isn't locking the display when pushing/popping its
own error handler (though this is not yet certain).  The source's calls
to X functions happen in the graphics thread, which is separate from the
UI thread, and it was noticed that somehow the error handler would be
overwritten almost seemingly at random, indicating that something else
in the program outside of OBS code was not locking the display while
pushing/popping the error handler.

To replicate this, make it so that the source cannot find the target
window and so it continually searches for it each video_tick call, then
resize the main OBS window continually (which causes Qt to push/pop its
own error handlers).  A crash will almost always occur due to BadWindow
despite our error handling.

2.) Calling X functions with a window ID that no longer exists,
particularly XGetWindowAttributes, in conjunction the unknown error
handler set in case #1 would cause the program to outright crash because
that error handler is programmed to crash on BadWindow for whatever
reason.  The source would call X functions without even checking if
'win' was 0.

3.) The source stored window IDs (in JSON, even if they've long since
become invalid/pointless, such as system restarts).  This is a bad
practice and will result in more cases of BadWindow.

Fixing the problem (reducing the possibility of getting BadWindow):
-------------------------------
Step 1.) Deprecate and ignore window IDs in stored settings.  Instead of
using window IDs to find the window, we now must always search the
windows and find the target window via the window name exclusively.
This helps ensure that we actually consistently have a working window
ID.

Step 2.) Do not call any X functions if the window ID is 0.

Step 3.) Reset the window ID to 0 any time the window has updated, and
make the source find the window again to ensure it still exists before
attempting to use any X functions on the window ID again.
2016-06-05 00:12:43 -07:00
Kazuki Oishi 7328c2e2d7 win-dshow: Fix audio output mode not showing up 2016-06-05 00:27:28 +09:00
nd f7ac9258d4 obs-filters: Change async delay filter max delay to 20 sec
Closes jp9000/obs-studio#549
2016-05-30 10:42:16 -07:00
jp9000 6ca3cd3504 win-capture: Fix VS2015 update 2 compiler error
Having volatile variables inside of a union causes a C1001 compiler
error in visual studio 2015 update 2.

Closes jp9000/obs-studio#544
2016-05-28 09:40:49 -07:00
fryshorts eed9547197 linux-pulseaudio: Check for failed operations
Add checks to make sure the pulseaudio operation objects are actually
valid and the request did not fail right away. Other pulseaudio
functions dealing with the objects expect them not to be NULL,
otherwise they will kill the application with a failing assert.
2016-05-28 13:19:16 +02:00
jp9000 1a72cd4007 obs-ffmpeg: Set AVCodecContext thread_count to 0
For some reason in the FFmpeg output, this AVCodecContext variable is
being set to 1 by FFmpeg itself somewhere, and it's causing a massive
slowdown when encoding with FFmpeg directly.  This should be set to 0 to
specify to use as many threads as necessary.
2016-05-27 10:18:02 -07:00
jp9000 3deae76395 win-dshow: Update libdshowcapture to 0.5.10
Fixes a crash with audio format enumeration
2016-05-26 15:24:16 -07:00
jp9000 e73546b521 image-source: Don't repeat same image when randomizing
When randomizing the image slide show, do not repeat the same image more
than once in a row
2016-05-26 12:12:35 -07:00
jp9000 8da65b5c99 image-source: Add option to randomize slideshow 2016-05-26 11:35:29 -07:00
jp9000 3b17416b82 image-source: Add image slideshow source 2016-05-26 11:14:22 -07:00
jp9000 e77e87007c obs-outputs: Remove unused variable 2016-05-26 09:10:21 -07:00
jp9000 f16a1b1aef obs-x264: Default to CBR if no other RC specified
This had the possibility of leaving the rc variable uninitialized.
2016-05-26 08:13:22 -07:00
jp9000 e935056887 image-source: Reset gif seek position when source activated 2016-05-26 08:13:22 -07:00
Kilian von Pflugk e4133485c6 rtmp-services: fix url 2016-05-20 20:43:29 +02:00
Kilian von Pflugk f1b2adf9f1 rtmp-services: Add Nood as a service
Nood is a Live video streaming platform and community for adults
https://www.nood.tv
2016-05-20 19:21:56 +02:00
Robin Hielscher 7e6ff1ae05 rtmp-services: Update Facebook Live encoder settings
As commented on: cab2819033 (commitcomment-17482672)
And according to: https://www.facebook.com/facebookmedia/get-started/live

Max 2-second keyframe interval and max video bitrate of 2500.

Closes jp9000/obs-studio#541
2016-05-17 04:23:28 -07:00
jp9000 757c1942dc obs-ffmpeg: Fix NVENC lossless mode
Lossless mode is set through the preset setting, and the profile ffmpeg
setting was incorrectly being set as lossless instead.
2016-05-16 04:18:29 -07:00
jp9000 48185cc404 rtmp-services: Update restream.io 2016-05-15 12:23:09 -07:00
jp9000 b101868e47 Revert "win-capture: Don't draw window if minimized"
This reverts commit 997f05f10e.
2016-05-15 06:14:18 -07:00
jp9000 997f05f10e win-capture: Don't draw window if minimized 2016-05-15 04:35:29 -07:00
jp9000 5a5b8b20e3 win-capture: Clear window capture if window no longer exists 2016-05-15 04:35:01 -07:00
jp9000 d24a81868e win-capture: Do not render game capture if not active 2016-05-15 04:20:39 -07:00
Gol-D-Ace fe56a12867 Update translations from Crowdin 2016-05-14 00:27:59 +02:00
jp9000 2707f05c46 Revert "win-capture: Allow window capturing of current process"
This reverts commit 8d520b970d.

This can actually cause a hard lock due to the windows API when
destroying window capture.  When the graphics thread locks the source
list for doing tick or render, and then the UI thread tries to destroy a
source, the UI thread will wait for the graphics thread to complete
rendering/ticking of sources.  The video_tick of window capture would
then check windows in the same process and try to query the window's
name via GetWindowText.  However, GetWindowText is synchronous, and will
not return until the window event has been processed by the UI thread,
so it will perpetually lock because the two threads are waiting for each
other to finish.
2016-05-13 04:21:39 -07:00
jp9000 8d520b970d win-capture: Allow window capturing of current process
Allows window capture to capture windows of the current process, and
adds windows of the current process to the end of the window list.
2016-05-13 02:14:24 -07:00
jp9000 a140d749f2 obs-ffmpeg: Fix type size mismatch warning 2016-05-12 23:01:45 -07:00
jp9000 e73b025533 obs-ffmpeg: Fix ffmpeg-mux unicode file saving (win32)
On windows, if you were saving a file name or directory with characters
that are not of the current windows character set, it could cause the
file saving process to fail.  This fixes it so that on windows it uses
wmain and converts the unicode command line to a UTF-8 command line,
which works with FFmpeg.
2016-05-12 20:20:49 -07:00
jp9000 bd9980a206 win-capture: Reset game cap. wait_for_target_startup on update
This flag should be reset when the user changes the game capture
settings.
2016-05-12 19:42:00 -07:00
jp9000 94e22dae49 win-capture: Instantly capture already-hooked processes
If a process is already hooked, immediately initialize the capture
rather than wait for the processes to initialize or wait for the timer
to trigger.
2016-05-12 19:38:46 -07:00
jp9000 8681baeec3 win-capture: Shut down game cap. when not showing
Prevents game capture from acting as a global source.  This fixes an
issue where a game capture in another scene could capture a window and
prevent a separate game capture in the current scene from being able to
capture that same window.
2016-05-12 19:36:33 -07:00
jp9000 9493095c25 win-capture: Shut down win8 monitor capture when not showing
Completely shut down monitor capture when it's not being shown in the
program (for example in a different scene).  This fixes an issue where
it would cause lag when a game enters fullscreen mode.
2016-05-12 17:59:01 -07:00
jp9000 2801cf0f37 rtmp-common: Use "rate_control" to set CBR mode
Instead of using "cbr" to set the rate control mode for encoders (which
is now considered deprecated for all encoders), set "rate_control" to
"CBR".
2016-05-11 13:12:32 -07:00
jp9000 7f1cabd81b obs-x264: Add rate control, deprecate "use cbr" setting
Instead of having a "cbr" setting that turns CBR on and off, adds a
"rate_control" parameter that sets the rate control method, which can be
one of the following: CBR, ABR, VBR, CRF.

If the "cbr" setting is used, it will throw a deprecation warning to the
log.
2016-05-11 13:12:31 -07:00
jp9000 c7923bcbe4 obs-qsv11: Add deprecated warning for forced CBR mode
Using the "cbr" parameter is now considered deprecated in favor of using
"rate_control" to set the rate control method.
2016-05-11 13:12:31 -07:00
jp9000 978e607522 obs-ffmpeg: Change NVENC to use rate control
Instead of using an option that turns CBR on/off, adds rate control
methods: VBR, CBR, CQP, Lossless.

This moves lossless from being a preset to being a rate control method.
2016-05-11 13:12:30 -07:00
jp9000 0157d02564 obs-ffmpeg: Add lossless mode to NVENC encoder 2016-05-05 15:24:32 -07:00
jp9000 ff38176c60 obs-ffmpeg: Increase upper NVENC bitrate limit
The bitrate for the properties was capped at 90000, which is a bit low.
2016-05-04 20:31:12 -07:00
Gol-D-Ace f507d70033 rtmp-services: Bump version for services.json to 20 2016-05-01 22:54:59 +02:00
CallumHoward cab2819033 rtmp-services: Add Facebook Live as a service
Closes jp9000/obs-studio#539
2016-05-01 13:08:32 -07:00
jp9000 61ab648bac obs-qsv11: Fix QSV rescaling
When using per-encoder rescaling, QSV would overwrite the current
encoder scale value in the get_video_info callback with the base video
width/height instead of using the current encoder width/height.
2016-04-28 16:01:38 -07:00
Richard Stanway 65fcd20242
libff: Improved handling of EOF in the decoder threads
(Also modifies obs-ffmpeg to handle empty frames on EOF)

Previously the demuxer could hit EOF before the decoder threads are
finished, resulting in truncated output. In the worse case scenario the
demuxer could read small files before ff_decoder_refresh even has a chance
to start the clocks, resulting in no output at all.
2016-04-28 23:58:28 +02:00
jp9000 b16557371c obs-outputs: Improve error handling when sending headers
There was no error checking when sending headers/metadata, so what would
happen is that if a header/metadata send failed (meaning the socket was
disconnected), it would continue to act as if it was still connected,
and it would block and lock up on the next send/recv call.
2016-04-26 20:14:31 -07:00
Richard Stanway e5e5189c7b
win-capture: Make sure we don't try to hook ourselves
Can trigger when using "Hook any fullscreen application" is enabled and
the projector is active.
2016-04-25 23:46:20 +02:00
jp9000 5edc0c9580 obs-filters: Fix more chroma key shader code
In aa4e18740a I mistakenly thought that I could add the variables
back in and that it would automatically cull variables that aren't used,
but that wasn't the case -- the shader parser always checks to see
whether parameters were set, and if they're not, it'll fail.  This fixes
an issue where the shader would try to access parameters that are no
longer needed and fail due to the shader parameter check.

YUV-based shader support has been removed (due to the fact that no
sources ever use YUV shading) so there's no reason to keep around the
YUV processing code.
2016-04-24 15:57:46 -07:00
jp9000 aa4e18740a obs-filters: Fix chroma key shader bug 2016-04-24 13:55:39 -07:00
jp9000 7c3d858110 obs-ffmpeg: Remove unused variable 2016-04-24 13:01:14 -07:00
Richard Stanway 8f3289fc4d
text-freetype2: Fix a crash if there's insufficient glyph texture space 2016-04-24 20:21:07 +02:00
Gol-D-Ace c2e4926323 Update translations from Crowdin 2016-04-24 19:55:39 +02:00
jp9000 1bec777210 image-source: Set starting browse path to last used file dir
Set the starting browse path to the directory of the current file used
for the source.
2016-04-23 20:22:11 -07:00
jp9000 448ae26e64 obs-qsv11: Prevent more than one active QSV encoders
Currently, multiple QSV encoders cannot be active at the same time
(otherwise it will crash).  This is a temporary solution to prevent
crashes from occurring when more than one QSV encoder tries to start up
at the same time.

Additionally, in the future there should be a way for encoders to be
able to communicate with the front-end when an error such as this
occurs.
2016-04-23 16:18:02 -07:00
jp9000 6f02d33673 obs-qsv11: Remove unused global variable 2016-04-23 14:55:40 -07:00
jp9000 5349bbf633 obs-filters: Skip scroll filter if parent has no cx/cy
There's no point in the filter continuing its processing if there's
nothing to draw.
2016-04-23 14:39:38 -07:00
jp9000 a23d8e3f2c obs-filters: Fix scroll filter offsets becoming non-finite
If the parent source of a scroll filter has a 0 width or 0 height, the
scroll filter would do a division by zero on the size_i variable, which
would then cause the offset variable to perpetually have a non-finite
value, thus preventing the scroll filter from rendering properly after
that due to the non-finite offset value being uploaded to the shader.
2016-04-23 14:39:37 -07:00
Richard Stanway 215f2441e2
text-freetype2: Don't create vertex buffer if text is empty 2016-04-23 17:49:04 +02:00
jp9000 bc38427862 obs-qsv11: Rename encoder 2016-04-23 07:34:12 -07:00
Gol-D-Ace 5ed7081213 Update translations from Crowdin 2016-04-23 10:29:21 +02:00
jp9000 ff99ba7818 libobs: Allow filter processing function to return false
(Note: this commit also modifies the obs-filters and test-input modules)

Changes the obs_source_process_filter_begin return type so that it
returns true/false to indicate that filter processing should or should
not continue (for example if the filter is bypassed or if there's some
other sort of issue that causes the filtering to fail)
2016-04-22 10:18:12 -07:00
jp9000 42305f1c98 text-freetype2: Don't draw anything if no text to draw
Under certain circumstances (when there's no text and a filter is
applied for example) the freetype 2 text source would still draw.
2016-04-22 08:23:44 -07:00
jp9000 86a41f844f obs-ffmpeg: Remove unused variable 2016-04-19 18:21:15 -07:00
jp9000 ba70b44152 obs-ffmpeg: Also remove 'tier' from locale text 2016-04-19 16:14:03 -07:00
jp9000 98cc538776 obs-ffmpeg: Remove 'tier' from FFmpeg NVENC encoder
The 'tier' parameter is used with the NVENC HEVC encoder, not with the
AVC encoder.
2016-04-19 14:45:46 -07:00
jp9000 a39cde9d08 obs-qsv11: Fix win7 crash when fake monitor isn't forced
When using QSV is used on a windows 7 machine with a dedicated card, you
have to fake a monitor connection to your Intel graphics to be able to
use QSV.  If you do not, the initialization will fail with an error.
The error for that situation is not handled properly, and a variable
will be used while null.  Instead, the function should safely return
after that error is received.

Also, do not call ClearData in the destructor unless QSV has been
properly initialized (if m_pmfxENC is null).
2016-04-19 12:29:50 -07:00
jp9000 43eba49a50 obs-ffmpeg: Fix warning and remove unnecessary null checks
The if statement erroneously ended with a ';', which means that the code
is always executed, but there's no reason to even have these if checks
in the first place as the functions themselves return safely with null
pointers.
2016-04-19 10:29:34 -07:00
jp9000 17132ba27f win-mf: Deprecate MF NVENC encoder 2016-04-19 09:20:27 -07:00
jp9000 8e1943065c obs-ffmpeg: Add FFmpeg NVENC encoder 2016-04-19 09:20:26 -07:00
jp9000 81313dfd35 win-mf: Deprecate MF QSV encoder 2016-04-19 08:29:23 -07:00
Seung-Woo Kim 3e4bcf06bc obs-qsv11: Add native obs-studio QSV encoder 2016-04-19 08:29:22 -07:00
jp9000 d56dc4791d win-capture: Fix cursor corruption bug (typo) 2016-04-18 18:34:41 -07:00
jp9000 bef1b37ae2 win-capture: Fix case where hook only captures one frame
When using a chain hook method (forward or reverse), it was unwisely
assumed that the previous hook in the chain would not overwrite new
hooks when it's called.  When the game capture hook calls the previous
hook in the chain, certain other programs that hook (in this case,
rivatuner on-screen display) would overwrite the hook with older data
and erase the game capture hook, causing it to only capture the first
frame and then never capture again.

This patch ensures that the hook is always saved before calling the next
hook in the chain and then restored after the call returns.  It also
preserves any new hooks that may be added on top of it at any point.
2016-04-14 23:45:19 -07:00
Richard Stanway c42f666b02
obs-outputs: Fix assign instead of compare on socket address type
Detected by Coverity Scan (CID 92187, 92170)
2016-04-13 02:23:23 +02:00
jp9000 a589ea8c14 rtmp-services: Use "scenecut=0" x264 option for Twitch
This option is an x264-specific feature that may generate additional
keyframes when a major visual change in the output is detected.  This
functionality is undesirable for streaming because it can cause
keyframes to become inconsistent and unpredictable, which can negatively
affect viewer buffering.
2016-04-09 23:39:12 -07:00
jp9000 87810bcf1a rtmp-services: Add the ability to specify custom x264 opts
Certain services may request certain x264-specific options (such as
scenecut=0 to prevent additional keyframes from being generated)
2016-04-09 23:34:16 -07:00
jp9000 cdcb8d1f81 obs-ffmpeg: Fix warnings with FFmpeg 3.0.0+
Fixes warnings with deprecated function av_free_packet (which was
replaced by av_packet_unref)
2016-04-09 18:10:48 -07:00
Gol-D-Ace ad31acca5d rtmp-services: Update restream.io ingests 2016-04-09 17:57:49 +02:00
Aesen Vismea 9cf56f8b4c linux-capture: Add "Use alpha-less texture format" option
This is to work around a Mesa issue that prevents copying
between RGB and RGBA textures. Other drivers seem to allow
this, even though it's technically not allowed by the GL
spec.

Closes jp9000/obs-studio#514
2016-04-08 03:17:33 -07:00
Guillermo A. Amaral f6a940cce7 linux-alsa: Add ALSA audio input plugin (linux)
Closes jp9000/obs-studio#494
2016-04-08 02:53:21 -07:00
jp9000 1faaba73b0 obs-ffmpeg: Allow user to set color range on media source 2016-04-03 21:54:02 -07:00
jp9000 d8a357e01a image-source: Use os_stat instead of stat
(Note: This commit also modified text-freetype2)

Prevents issues from being able to update files that may not be using
the current system encoding on windows.
2016-04-03 18:03:52 -07:00
jp9000 e460dfeb83 win-dshow: Add 'deactivate when not showing' option
Useful for two purposes:

1.) When many devices are hooked up to the system and used in separate
scenes, but only one device active at once is desired

2.) Allows users who are dependent on outputting audio to desktop to
disable that audio (via disabling that device) when the device isn't
being displayed
2016-04-03 15:55:15 -07:00
jp9000 22a766ef80 rtmp-services: Add mSportz service 2016-04-03 15:29:09 -07:00
hwdro 262599f0f2 obs-transitions: Add 'Fade to Color' transition
Closes jp9000/obs-studio#521
2016-03-24 16:23:29 -07:00
jp9000 2f2cb138bb obs-outputs: Remove trailing/leading whitespace from key/url 2016-03-24 13:42:54 -07:00
jpk dd75f1a661 win-dshow: Add support for Y800 video format (grayscale)
Add support for devices that can output in grayscale (Y800).
2016-03-24 03:34:05 -07:00
jpk c3629eacb5 libobs: Add Y800 color format support
(Note: Also modified the obs-ffmpeg plugin module)

Allows the ability for frame data to pass 8-bit grayscale images (Y800
color format).

Closes jp9000/obs-studio#515
2016-03-24 03:33:35 -07:00
hwdro e3a9f395a6 obs-transitions: Add 'slide' transition
Closes jp9000/obs-studio#516
2016-03-24 02:19:16 -07:00
pantonvich 58b108b261 decklink: Fix issues showing older devices
Certain older devices (such as the Decklink Duo and Quad) could not be
selected due to the fact that they rely on BMDDeckLinkTopologicalID for
their unique identifier rather than BMDDeckLinkPersistentID.

See http://forum.blackmagicdesign.com/viewtopic.php?f=12&t=33967

Closes jp9000/obs-studio#517
2016-03-24 02:03:36 -07:00
Jim 32358ba636 Merge pull request #518 from hwdro/TFT-A8
text-freetype2: Use GS_A8 type glyphs texture
2016-03-24 01:23:55 -07:00
Christoph Hohmann 18a2b61b85 image-source: Fix reloading bug when stat fails
(Note: This commit also modified text-freetype2)

The implementation of get_modified_timestamp() did not check the return
value of stat(), so in case the check fails the values in the stats
structure can be any garbage on the stack and the value of
stats.st_mtime can change on every call. This can trigger a reload of
the image every second, even if the file was not actually modified.

Closes jp9000/obs-studio#520
2016-03-24 01:14:23 -07:00
sorayuki a2b6432f53 win-capture: Fix game capture file integrity test
Fixes the file integrity test when required files are placed in a path
containing non-english character encodings.

Closes jp9000/obs-studio#523
2016-03-24 01:05:47 -07:00
thekrzos 97352a469e rtmp-services: Add DJlive.pl to services
Added DJlive.pl - polish platform for DJ`s
2016-03-23 23:18:12 +01:00
jp9000 b605f30800 obs-transitions: Fix warning
Reported via clang:
warning: unused parameter 'data' [-Wunused-parameter]
2016-03-22 12:02:55 -07:00
jp9000 9e15e3d8fd libobs: Remove need for DrawMatrix technique in effects
(Note: This commit also modifies obs-filters and text-freetype2)

This simplifies writing of effects.  DrawMatrix is no longer necessary
because there are no sources that require drawing with a color matrix
other than async sources, and async sources are automatically processed
and don't defer their initial render stage to filters.
2016-03-21 21:22:26 -07:00
jp9000 2fa7ef5807 obs-ffmpeg: When browsing files, start from last file dir 2016-03-21 21:22:24 -07:00
jp9000 bcdb3dccb9 win-capture: Always use anti-cheat by default
Originally this on by default, but then was changed to being off by
default because it was thought that there were permission issues, but it
turned out that the permission issues were a separate bug, so it's safe
to have this be default to on again.
2016-03-21 14:11:23 -07:00
jp9000 363d449789 win-capture: Actually always refetch capture addresses
195fe9a560 did not actually fix the issue; the code was misread and
the wrong section of code was disabled.  This actually forces a refetch.
2016-03-21 13:54:50 -07:00
jp9000 9a54b61df6 text-freetype2: Mark ft2 text source as custom draw
Fixes a bug where the first effect filter on the freetype2 text source
wouldn't be properly applied
2016-03-20 21:40:37 -07:00
Gol-D-Ace c95beb2920 rtmp-services: Update Twitch ingests 2016-03-20 20:16:57 +01:00
jp9000 69da1151e0 Update translations from Crowdin 2016-03-19 12:08:48 -07:00
jp9000 195fe9a560 win-capture: Always refetch game capture addresses
This is a fast/immediate solution to a possible bug with caching the DLL
versions for game capture hook addresses - may as well just reload game
capture hook addresses each time the program is run for the time being
just to be safe.  Load time will increase a little for the time being
but it's worth it to prevent any issues with game capture.
2016-03-13 08:20:37 -07:00
hwdro e0592beab3 text-freetype2: Use GS_A8 type glyphs texture
Since glyphs are rendered by FT as 8-bit gray levels bitmaps, it would
be a waste of memory to cache glyphs in a RGBA texture.
2016-03-10 15:23:42 +02:00
Gol-D-Ace d497c63f1b rtmp-services: Update restream.io ingests 2016-03-03 08:11:16 +01:00
jp9000 f33f8d8e6f obs-transitions: Add 'swipe' transition 2016-03-01 15:18:58 -08:00
Gol-D-Ace 826d5c08d7 rtmp-services: Update restream.io ingests 2016-02-26 20:49:40 +01:00
jp9000 80fffeb144 win-dshow: Update libdshowcapture ver. to 0.5.8 2016-02-23 14:08:18 -08:00
Gol-D-Ace 4ce6df04d9 rtmp-services: Update recommended beam.pro settings 2016-02-22 21:43:02 +01:00
Charles Ray Shisler III 2e642fcc61 linux-capture: Remove red background from texture
When a source window was not available, a red background was shown
instead. This was undesirable, and expected behavior would be for the
background to be transparent, enabling what exists behind the source
to be shown.
2016-02-21 19:15:21 -08:00
Charles Ray Shisler III 2bdc1e9d7c linux-capture: Fix texture lingering after window closes
After source window closes, texture is still visible in preview until
the source window opens again.
2016-02-21 18:59:30 -08:00
Gol-D-Ace 2b7036dc93 Add latest translations from Crowdin 2016-02-21 22:16:12 +01:00
jp9000 79b13b7df6 obs-transitions: Mark functions as static
These functions were mistakenly not marked as static.  They are not used
outside of their compiled object module files, therefore there's no
reason for them not to be static.
2016-02-21 12:11:09 -08:00
Radzaquiel 54bdb4ddf9 rtmp-services: Update Hitbox ingest list
Modify: EU-North (London) => EU-West (London)
Add: EU-North (Amsterdam)
Closes jp9000/obs-studio#508
2016-02-20 00:21:21 +01:00
jp9000 d4c836c63b rtmp-services: Fix syntax error in json 2016-02-15 06:24:24 -08:00
Gol-D-Ace 2e1e51af52 rtmp-services: Update beam.pro ingests 2016-02-15 15:16:16 +01:00
jp9000 1326924699 rtmp-services: Update streamup servers 2016-02-13 17:17:49 -08:00
yogpstop 4b4ddbb33e obs-outputs: Add USE_SSL option (disabled by default)
Closes jp9000/obs-studio#487
2016-02-07 15:47:18 -08:00
jp9000 77c538bd33 obs-outputs: Disabled OpenSSL deprecated warnings on apple
Apple wants to get people to move over to their own crypto APIs instead
of using OpenSSL, so disable the warning in the files where OpenSSL is
used for the time being.
2016-02-07 15:33:10 -08:00
jp9000 867c58472e obs-outputs: Fix a few warnings in librtmp 2016-02-07 15:33:10 -08:00
jp9000 74c78c1f13 obs-ffmpeg: Fix media source starting even if not active
If the media source is set to restart on activation, it also shuts down
when not active.  However, it would *always* start regardless of
active/inactive when the source is first created.  It shouldn't do that,
it should start up only when it becomes active.
2016-02-04 10:58:26 -08:00
dodgepong ea9db8249b Add latest translations from CrowdIn 2016-01-31 18:28:35 -05:00
jp9000 959b6610c4 win-dshow: Update libdshowcapture to 0.5.7 2016-01-27 15:19:37 -08:00
jp9000 c431e0434c win-dshow: Pass proper range value to frame
The "full_range" member variable of the video frame was being passed
"false" each time even though it may not necessarily be set to partial
range
2016-01-27 15:07:15 -08:00
jp9000 cd97ce2a17 libobs: Add source output flag OBS_SOURCE_DO_NOT_DUPLICATE
Certain types of sources (display captures, game captures, audio
device captures, video device captures) should not be duplicated.  This
capability flag hints that the source prefers references over full
duplication.
2016-01-26 11:49:50 -08:00
jp9000 46bb2622c4 obs-transitions: Implement cut transition 2016-01-26 11:49:46 -08:00
jp9000 4b781c7b04 obs-transitions: Implement fade transition
A basic fade transition that fades to/from a source via a simple cross
fade.
2016-01-26 11:49:45 -08:00
jp9000 2591f24594 win-capture: Add game capture fix for darkest dungeon
Darkest dungeon uses an unusual technique for drawing its frames: a
fixed 1920x1080 frame buffer used in place of the backbuffer, which is
then stretched to fit the size of the screen (whether the screen is
bigger or smaller than the actual texture).

The custom frame would cause glReadBuffer to initially fail with an
error.  When this happens, their custom frame buffer is in use, so all
that needs to be done is simply reset the capture and force the current
output size to 1920x1080 while that custom frame is in use.

They presumably did this in order to ensure the game looks the same at
any resolution.  Instead of having to use power-of-two sprites and
mipmaps for every single game sprite and stretch/skew each of them
(which would risk the final output "not looking quite right" at
different resolutions), they simply use non-pow-2 sprites with no
mipmaps and render them all on to one texture of a fixed size and then
stretch that final output texture.  That ensures that the actual
composite of the game still looks the same at any resolution, while
reducing texture memory by not requiring each sprite to use a
power-of-two texture and mipmaps.
2016-01-26 11:49:28 -08:00
jp9000 7f0f3d25c9 obs-ffmpeg: Remove overly verbose FFmpeg logging
For the time being, FFmpeg logging is disabled due to the fact that it
can just output way too much data.
2016-01-26 11:49:27 -08:00
jp9000 22885713b0 obs-ffmpeg: Add "restart when active" media source property
Adds the option of making the media file restart when the source becomes
active (such as switching to a scene with it).

Due to lack of libff features to start/stop/pause/seek media files,
currently this just destroys the demuxer and recreates it.  Ideally,
libff should have some functions to allow a more optimal means of doing
those things.
2016-01-26 11:49:26 -08:00
jp9000 419d6b1a22 obs-ffmpeg: Refactor media source properties
Reactors a bit of code related to starting up FFmpeg and makes it so the
initial view for the media source's properties displays the most
commonly desired settings.

Instead of the media source properties showing the URL mode by default
along with a whole bunch of properties that are confusing to most users,
starts on file mode and changes defaults to be a bit more sensible
related to file input.

Also, as a temporary measure for fixing color format issues (some video
files would display their color information incorrectly), forced format
conversion is now enabled by default, and has been moved to advanced
settings.  Ideally, the actual bug causing color format issues in either
media-io or libff should be fixed at some point.
2016-01-26 11:49:26 -08:00
jp9000 df4f0c4142 obs-ffmpeg: Fix media source file filter
When browsing for a file, it would also just use *.* for the file
filter, which is a pain to use.  This has been changed to use a
reasonable file filter related to common video/audio files so you don't
have to wade through non-media files just to select a media file.  A
filter to show all files is still available as well.
2016-01-26 11:49:25 -08:00
jp9000 bd6ffd76d0 obs-filters: Make mask filter use gs_image_t helper
Prevents it from loading the entire image in the graphics thread, and
allows for animated gifs in the filter (not that anyone would ever do
that.  ..right?)
2016-01-26 11:49:24 -08:00
jp9000 4f782f2415 obs-filters: Make mask/blend image center w/aspect by default
Fixes what is arguably the most annoying feature of the mask/blend
filter, the fact that the image always stretches to the entire source.
It now centers and preserves aspect ratio by default, with an option to
make it stretch and discard aspect ratio to make it operate as it did
before.
2016-01-26 11:49:23 -08:00
jp9000 423f5ea1fc image-source: Use gs_image_file (adds animated gif support) 2016-01-26 11:49:22 -08:00
jp9000 ebadd359c0 image-source: Have images not unload by default
Images continually loading/unloading every time transitioning occurs
adds a lot of unnecessary transition lag.  The user can always change
this value manually and/or use scene collections, so change the default
setting to make it not unload/reload by default feels a bit more safe.
2016-01-26 11:49:21 -08:00
jp9000 756fec3503 linux-capture: Clear x events when exiting handler
This is probably not necessary but might fix an issue where errors pass
through to other parts of the program, possibly causing the crash on
exit related to the xcomposite capture.
2016-01-26 11:49:21 -08:00
Lucian Poston c392164f03 linux-capture: Log warning when unable to query windows
Checks whether window manager supports ewmh. Logs warning if ewmh is not
supported.

Closes jp9000/obs-studio#488
2016-01-26 11:49:20 -08:00
Gol-D-Ace 37ce829511 rtmp-services: Update Twitch ingests 2016-01-15 08:12:31 +01:00
Gol-D-Ace f80fced014 rtmp-services: Update recommended hitbox settings 2015-12-27 06:14:50 +01:00
jp9000 2c8edb8a8a win-capture: Clear GL error flag before initializing capture
Some games don't catch GL errors via glGetError, so there's a
possibility that an error will pass through to the capture calls,
causing a false failure.

The most simple solution is to just clear the error flag on each capture
call.
2015-12-10 15:54:30 -08:00
jp9000 deca80531e win-capture: Add hook exception for Just Cause 3 2015-12-03 17:19:35 -08:00
Palana d870bbb643 obs-ffmpeg: Add custom muxer options to ffmpeg-mux 2015-11-27 15:48:24 +01:00
Palana 38c9c38b9f obs-ffmpeg: Set mux output context filename
This enables e.g. the HLS muxer to output all files in the same directory, with
appropriate names
2015-11-27 15:37:59 +01:00
jp9000 1bbb18ea3d obs-filters: Mark unused parameter 2015-11-20 14:31:01 -08:00
jp9000 78d5e27abe obs-filters: Reset cx/cy/mul/add crop vals in tick, not render
To first render the filter, the width/height values must be set, but
currently they're only set in the render function, which means that the
crop filter can never be rendered when the program first starts up.
This would cause the filter to fail to render at all under those
circumstances.

This patch moves the calculations from render to tick to ensure that
they're always called and the values are always set.
2015-11-20 14:07:14 -08:00
jp9000 50c61898d0 win-capture: Fall back to creating d3d contexts if offsets bad 2015-11-20 14:07:14 -08:00
jp9000 1755511b2f win-capture: Hook Reset/ResetEx in Present* funcs
The virtual address table values for Reset/ResetEx can sometimes point
to functions that are in libraries outside of D3D8.dll and D3D9.dll, and
will cause a crash if used.  Instead, just hook Reset/ResetEx when one
of the Present* functions are called.
2015-11-20 14:06:37 -08:00
jp9000 d510b629c9 obs-outputs: Fix "sometimes uninitialized" warning
Fixes warning (clang):

variable 'added_packet' is used uninitialized whenever 'if' condition is
false [-Wsometimes-uninitialized]
2015-11-18 14:12:54 -08:00
jp9000 f0cf699c50 obs-outputs: Remove stop thread (unnecessary)
Since the RTMP_Close was moved to the send thread (where it should have
been) the stop thread now has no real purpose.
2015-11-18 14:00:28 -08:00
jp9000 f05f0592e0 obs-outputs: Don't allow new data if disconnected 2015-11-18 12:42:14 -08:00
jp9000 6a27da9bd7 obs-outputs: Use atomic load functions 2015-11-18 12:42:14 -08:00
jp9000 ba7b53f330 obs-outputs: Close stream in send thread 2015-11-18 07:49:51 -08:00
jp9000 ee55dafe24 obs-outputs: Atomically update 'active' variable 2015-11-18 07:48:27 -08:00
jp9000 07254d0390 obs-outputs: Call free_packets in init_connect
This may end up being a bit redundant, but it's just to ensure that the
packet buffer is free before connecting.
2015-11-17 07:51:46 -08:00
jp9000 d4df6c191f obs-outputs: Only log packets remaining if above 0 2015-11-17 07:49:05 -08:00
jp9000 226337a6ca obs-outputs: Check for recv error 2015-11-16 13:57:06 -08:00
Gol-D-Ace 2ee1d82860 Add latest translations from Crowdin 2015-11-16 21:04:55 +01:00
jp9000 7634d1099c win-capture: Add new game capture patches 2015-11-14 14:25:17 -08:00
Palana fa2311bc4a mac-avcapture: Add color space/video range properties 2015-11-14 17:54:18 +01:00
Palana 3d558d65ba mac-avcapture: Add manual configuration
Currently supported settings:
- Resolution
- Frame rate
- Input format
2015-11-14 15:57:21 +01:00
Palana 520f300f0e mac-avcapture: Refactor code 2015-11-14 15:57:21 +01:00
Palana b4928a62ad mac-avcapture: Move preset properties initialization 2015-11-14 15:34:46 +01:00
Palana 4d9bd7187b mac-avcapture: Remove obsolete UNUSED_PARAMETER marker 2015-11-14 15:34:46 +01:00
Palana 8a21668477 mac-avcapture: Allow deselecting capture devices 2015-11-14 15:34:46 +01:00
Palana d1468c186c mac-avcapture: Clear output when capture is stopped 2015-11-14 15:34:46 +01:00
Palana f3c33c232d mac-avcapture: Improve logging (less LOG_ERRORs) 2015-11-14 15:34:46 +01:00
Palana 5eb5453fcc mac-avcapture: Move to (Objective) C++ + ARC 2015-11-14 15:34:46 +01:00
Palana 8d90c8a44e mac-avcapture: Remove unnecesary file 2015-11-14 15:34:46 +01:00
Palana 404d600d53 mac-avcapture: Remove unused includes 2015-11-14 15:34:46 +01:00
jp9000 ea69f9cf61 obs-outputs: Call recv when data received
Not calling recv when data is received will accumulate data in the
internal recveive buffer until it's full, in which case is will stop
acknowledging.  This can lead to unjustified disconnections.
2015-11-11 17:45:02 -08:00
jp9000 a6b69a0704 obs-outputs: Log network interface information (win32) 2015-11-11 16:52:48 -08:00
Richard Stanway 3474c61085 win-capture: Use MEM_RESERVE to comply with VirtualAllocEx spec 2015-11-06 18:16:29 +01:00
jp9000 b7f64c7482 obs-outputs: Use atomic bool functions 2015-11-03 15:03:40 -08:00
jp9000 40250a62f0 obs-outputs: Remove unnecessary variable
The 'stopping' variable is superfluous due to the fact that 'stop_event'
accomplishes essentially the same exact thing.
2015-11-02 18:36:09 -08:00
jp9000 730132853a obs-outputs: Join with correct thread on destroy
If there was an attempt to destroy the rtmp-stream output while it was
already connecting and stopping at the same time, it would try to join
with the stop thread rather than with the connect thread.  The connect
thread would then continue past destruction.
2015-11-02 15:53:12 -08:00
jp9000 3dab1ebb0a obs-outputs: Send stop signal if no service assigned
The code assumed that the service was valid when that may not be the
case by the time it gets to the code.
2015-11-02 15:52:05 -08:00
jp9000 247c6526cf obs-outputs: Assign names to RTMP threads 2015-11-02 14:52:43 -08:00
jp9000 e350eb5a4c obs-outputs: Stop in thread to prevent locking UI
Sometimes stopping a connection can lock up due to data that still
remains to be sent, and this would lock up the thread requesting the
stop (typically the UI thread).  So instead of locking up the calling
thread, spawn a new thread specifically for stopping so the calling
thread can continue uninterrupted.  If the user attempts to reconnect,
it will wait for the stop thread to complete in the connect thread
before attempting to connect.
2015-11-02 14:50:34 -08:00
jp9000 a0e112ffd9 obs-outputs: Remove unused thread return variable 2015-11-02 14:02:27 -08:00
jp9000 a2a372c141 obs-outputs: Log remaining packets 2015-11-02 13:55:52 -08:00
jp9000 8756115f67 obs-outputs: Have a timeout for backed up packets
If packets get backed up for too long of a time, just disconnect instead
of trying to output them all.
2015-11-01 15:13:37 -08:00
jp9000 071222029b obs-outputs: Stop packet input if disconnected 2015-11-01 14:57:55 -08:00
jp9000 3b48817a7b obs-outputs: Fix race condition
It's possible that packets would still be coming in while the packets
were being freed.
2015-11-01 14:52:49 -08:00
jp9000 c9b9811ff2 rtmp-services: Add new service
Adds JOICASTER as a service selection.
2015-10-27 12:38:41 -07:00
jp9000 6ad8df8adb (API Change) libobs: Use single func for base effects
API removed:
--------------------
gs_effect_t *obs_get_default_effect(void);
gs_effect_t *obs_get_default_rect_effect(void);
gs_effect_t *obs_get_opaque_effect(void);
gs_effect_t *obs_get_solid_effect(void);
gs_effect_t *obs_get_bicubic_effect(void);
gs_effect_t *obs_get_lanczos_effect(void);
gs_effect_t *obs_get_bilinear_lowres_effect(void);

API added:
--------------------
gs_effect_t *obs_get_base_effect(enum obs_base_effect effect);

Summary:
--------------------
Combines multiple near-identical functions into a single function with
an enum parameter.
2015-10-19 00:52:45 -07:00
Gol-D-Ace 4b4a13bd17 rtmp-services: Update Twitch ingests 2015-10-17 15:56:58 +02:00
jp9000 6ba5e31d05 coreaudio-encoder: Use byte sequence for non-breaking spaces
Use explicit UTF-8 byte sequence for the "no-break space" character.

Prevents issues with certain editors, and fixes the following compiler
warning on Visual C++:

warning C4819: The file contains a character that cannot be represented
in the current code page (X). Save the file in Unicode format to prevent
data loss
2015-10-15 01:31:19 -07:00
Gol-D-Ace 5aca0a7563 rtmp-services: Remove unnecessary iNSTAGIB.tv entry
iNSTAGIB.tv and Vaughn Live share the same ingestion system. Having
this entry is therefore unnecessary.
2015-10-14 07:21:17 +02:00
jp9000 019f038dbe image-source: Remove unused variable 2015-10-13 19:21:54 -07:00
jp9000 c77544f546 decklink: Add option to select pixel format
This replaces the name-based detection of the 4K intensity pro, and
allows other devices to be able to use the BGRA pixel format, if the
user so chooses.
2015-10-13 19:08:01 -07:00
Gol-D-Ace 2e93772339 rtmp-services: Update Twitch ingests 2015-10-12 19:56:40 -07:00
Richard Stanway 6c15d814bf obs-filters: Null check filter->effect instead of filter
Detected by Coverity Scan (CID 12876, 12877, 12878, 12879)
2015-10-12 23:21:45 +02:00
Richard Stanway 55dd8f8726 obs-ffmpeg: Fix a race condition in create_or_fetch_log_context
Another thread could be manipulating the active_log_contexts array while the current thread is trying to read it, resulting in an uninitialized memory crash as the da_push_back call was not protected by the mutex.
2015-10-12 23:21:45 +02:00
Richard Stanway 7630946874 win-capture: Check return values on Windows API functions 2015-10-12 23:21:45 +02:00
Richard Stanway 8f2460525f win-capture: Fix buffer overrun in get_window_class
Detected by Coverity Scan (CID 12856)
2015-10-12 23:21:44 +02:00
Aarni Koskela 6bc7fc65b3 image-source: Check for file changes
Polls for file changes like the text plugin does.  This is an interim
solution; both the text plugin and image source should use a file
monitoring API, preferably implemented through libobs.

Closes jp9000/obs-studio#482
2015-10-08 03:20:29 -07:00
Richard Stanway d1fbacd784 text-freetype2: Fix loading from files with unicode names 2015-10-08 00:57:12 +02:00
jp9000 667768b96b text-freetype2: Fix garbled rendering if face changed
When using a text file with the source and the font face is changed, it
would cause it to fail to update the glyphs and text accordingly.  It
would trigger an error jump at line 392 of text-freetype2.c, ultimately
resulting in the text to render garbled after that.

How to reproduce:
Set the source to get text from a file, then just change the font face
(but not the size or anything else).
2015-10-05 16:31:35 -07:00
Copy Liu c4f5769df4 text-freetype2: Refresh glype cache after file update
When updating text from file periodically, newer glyphs that weren't
already cached would not end up being rendered.  This fixes the issue by
calling cache_glyphs after the file has been updated.

How to reproduce the original issue:
Set a text-freetype2 source to load an english-only text file.  Then
overwrite the text in the file with non-english characters.  The
non-english characters will then fail to render.

Reported at https://obsproject.com/mantis/view.php?id=336

Closes jp9000/obs-studio#481
2015-10-05 16:00:06 -07:00
jp9000 bdfb52410c text-freetype2: Fix serialized variable size
This variable needs to be the same size for both architectures.  size_t
is 8 on 64bit and 4 on 32bit.
2015-10-05 14:18:56 -07:00
jp9000 b4597218f0 win-capture: Use GetSytemDirectory instead of SH*
Instead of using shell functions to get the windows system directory,
use the kernel32 functions (GetSystemDirectory and
GetSystemWow64Directory).  Reduces a bit of unnecessary overhead.
2015-10-05 14:00:52 -07:00
jp9000 e91f5384b4 text-freetype2: Cache data to reduce load time
This caches the font list data to a file to minimize load times.  Font
data will be refreshed when any font files are added/removed, based upon
a checksum of the font file names and dates (if available).
2015-10-04 21:16:31 -07:00
jp9000 f29ac7770c win-capture: Cache data to reduce load time
Caches the D3D graphics offsets to file for the sake of improving module
load time.  If the D3D/DXGI DLL versions change, the data will be
refreshed.
2015-10-04 21:16:31 -07:00
jp9000 28947e96d7 win-wasapi: Remove resolved TODO comment 2015-10-04 21:15:54 -07:00
jp9000 18542461f2 win-wasapi: Use system timestamps by default for input
Microphones and other input devices can often have bad or erroneous
timestamps.  Although we handle bad timestamps much better in
obs-studio, there are still lingering issues that can crop up from time
to time with device QPC timestamps that leads to mic data not playing
back properly.  It's best if it be off by default rather than on, which
will now cause it to use system timestamps for input devices by default.
This changes it to the same handling as OBS1 for this case.
2015-10-04 21:15:48 -07:00
Jim 8bf95f1a23 Merge pull request #480 from Gol-D-Ace/vaughn-instagib-ingests
rtmp-services: Update vaughn / instagib ingests
2015-09-28 09:46:58 -07:00
Gol-D-Ace 3dc0f0843a rtmp-services: Update vaughn / instagib ingests 2015-09-28 18:42:51 +02:00
jp9000 ef4b826e97 win-dshow: Update to libdshowcapture 0.5.6
Adds LGP Lite capture support
2015-09-22 20:49:03 -07:00
dodgepong 76c18b079b Latest translations from CrowdIn 2015-09-22 23:33:29 -04:00
jp9000 e57aa3cab2 win-capture: Do not reset GL capture if cx/cy is 0
It is not necessary to reset the capture when cx or cy is at 0 because 0
means the application is minimized.
2015-09-22 18:08:20 -07:00
jp9000 7010edee9e win-capture: Fix crash with 64bit bounce hook
The new 'offset' value was not being passed back to the caller, which
caused the caller to continue to use the old value and thus would cause
an invalid hook and crash.
2015-09-22 18:07:50 -07:00
jp9000 12985d7493 win-mf: Don't call CoInitializeEx
The call to CoInitializeEx in the win-mf module caused some sort of
conflict with the decklink module, causing the decklink module to crash
on exit.  Instead, let libobs handle COM initialization.
2015-09-22 11:30:39 -07:00
jp9000 51c4480697 win-capture: Fix infinite GL reacquire loop
If the GL capture part of the game capture hook fails to initialized for
whatever reason, it will go in to an infinite reacquire loop.  If it
fails to initialize shared texture capture, try shared memory capture
instead.
2015-09-21 21:40:01 -07:00
jp9000 7c39eb4ea4 win-capture: Don't hook game if source not showing 2015-09-21 21:38:54 -07:00
jp9000 e10cf47e0d obs-ffmpeg: Fix 'possible loss of data' warnings
Fixes warning:
warning C4244: 'initializing' : conversion from 'int64_t' to 'int',
possible loss of data
2015-09-21 18:35:27 -07:00
jp9000 ec5059cee1 win-capture: Always have some capture FPS limit
For game capture, if a game is running at for example 800 FPS and limit
capture framerate is off, it would try to capture all 800 of those
frames, dramatically reducing performance more than what would ever be
necessary.

When limit capture framerate is off, instead of capturing all frames,
capture frames at an interval of twice the OBS FPS, identical to how
OBS1 works by default.  This should greatly increase performance under
that circumstance.
2015-09-19 09:42:29 -07:00
jp9000 ddcf2436c1 obs-x264: Adjust log message
Use the actual parameter from the x264 params for CRF, and also make
sure to specify that CRF is meant to be 0 if CBR is enabled.
2015-09-19 09:42:24 -07:00
jp9000 606a0fc695 obs-x264: Log CRF value 2015-09-19 08:20:18 -07:00
jp9000 e54118592b obs-ffmpeg: Set colorspace/range hints
Sets the color range/space for FFmpeg output encoders that support it.
2015-09-19 08:20:17 -07:00
jp9000 8d0edc1377 obs-ffmpeg: Send stop signal on unexpected stop
This also adds the ability to detect whether it stopped due to lack of
space or not -- particularly useful for the FFmpeg output due to
lossless file format support.
2015-09-19 08:20:07 -07:00
jp9000 b96f15a625 obs-ffmpeg: Do not require encoder ids to be set
For the FFmpeg output, the encoder ids are sort of superfluous.  They
really should be optional.  If they're not set, it should use the
encoder name string instead to determine the ids automatically.
2015-09-18 22:11:49 -07:00
jp9000 e077880ab5 win-mf: Clean up encoder logging 2015-09-17 17:41:03 -07:00
jp9000 8280dbc596 win-mf: Do not register encoder if it can't create
It seems that certain encoders (quicksync) do not have proper back-end
support in the windows media foundation libraries for certain CPUs.
Quicksync doesn't appear to support CPUs that are not haswell (4xxx) or
above.  It's really annoying, but there's not much we can do about it
until we implement our own custom quicksync implementation.

This check simply makes it attempt to spawn an encoder to check to see
whether the encoder can actually be created before registering an
encoder.
2015-09-17 16:52:53 -07:00
jp9000 c107181b9f obs-outputs: Stop output after joining send thread
The encoders were stopping before processing was completed, which could
cause the output to access data that's potentially invalidated.
2015-09-17 14:17:41 -07:00
jp9000 88996aef73 win-mf: Fix more issues on encoder shutdown
The previous commit (672378d20) was supposed to fix issues with the
encoder releasing while data was still being processed, but did not
account for when the encoder has never started up.  That was my fault.

Furthermore, the way in which it was waiting to drain events was
incorrect.  The encoder may still be active even though there aren't any
events queued.  The proper way to wait for an async encoder to finish up
is to process output samples until it requests more input samples.
2015-09-17 13:42:43 -07:00
jp9000 672378d202 win-mf: Drain events before releasing encoder
After I made it so that the encoder internal data gets destroyed when
all outputs stop using it (fa7286f8), the media foundation h264 encoder
started having crashes on shutdown.  After a lot of testing, I realized
that the reason it started happening is almost assuredly because active
encoding events had not yet been completed.

After making it wait on those events by calling DrainEvents(true), the
crashes stopped.  So asynchronous actions were clearly still occurring
and it was shutting down while data was still being processed, thus
leading to a crash.
2015-09-16 19:34:53 -07:00
Jim 7788ccdd86 Merge pull request #476 from bssteph/master
Clean up Intensity Pro 4K commit a bit
2015-09-16 17:48:36 -07:00
kc5nra 595f451eb7 mac-vth264: Add Apple H264 encoder
Adds a VideoToolbox based H264 encoder for OSX, which most notably
allows the use of hardware encoding (Quicksync).

NOTES:
- Hardware encoding is handled by Apple itself internally.  The plugin
  itself has little control over many details due to the way that Apple
  designed the VideoToolbox interface.  Generally however, quicksync is
  used if available on the CPU, and quicksync is almost always available
  due to the fact that macs are exclusively Intel.

- The VideoToolbox does not seem to implement CBR, so it won't be
  available.  These encoders are generally not recommended for
  streaming.
2015-09-16 16:43:53 -07:00
jp9000 afa2985f64 win-mf: Add media foundation h264 encoder
Implements hardware encoders through the Media Foundation interface
provided by Microsoft.

Supports:
- Quicksync (Intel)
- VCE (AMD)
- NVENC (NVIDIA, might only be supported through MF on Windows 10)

Notes:
- NVENC and VCE do not appear to have proper CBR implementations.  This
  isn't a fault of our code, but the Media Foundation libraries.
  Quicksync however appears to be fine.
2015-09-16 15:16:26 -07:00
jp9000 6285a47726 (API Change) libobs: Pass type data to get_name callbacks
API changed from:
obs_source_info::get_name(void)
obs_output_info::get_name(void)
obs_encoder_info::get_name(void)
obs_service_info::get_name(void)

API changed to:
obs_source_info::get_name(void *type_data)
obs_output_info::get_name(void *type_data)
obs_encoder_info::get_name(void *type_data)
obs_service_info::get_name(void *type_data)

This allows the type data to be used when getting the name of the
object (useful for plugin wrappers primarily).

NOTE: Though a parameter was added, this is backward-compatible with
older plugins due to calling convention.  The new parameter will simply
be ignored by older plugins, and the stack (if used) will be cleaned up
by the caller.
2015-09-16 09:21:12 -07:00
Palana 386ee73443 obs-ffmpeg: Add custom muxer settings
This allows changing e.g. the number of segments in a hls playlist and
its caching behavior with:
"hls_allow_cache=1 hls_list_size=0"
2015-09-16 10:47:58 +02:00
Palana d8723dbd40 obs-ffmpeg: Set FFmpeg AVFormatContext filename
This is used by some muxers that set AVFMT_NOFILE and doesn't seem to
hurt muxers that don't set it; notable this makes the hls muxer output
its m3u8 playlist with the proper filename in the proper directory
2015-09-16 10:27:35 +02:00
Brian S. Stephan ec9d2b42c4 decklink: detect BMDPixelFormat in instance constructor
cleaning up my previous commit a bit. we can just keep the
appropriate BMDPixelFormat as a data member and keep StartCapture() a
bit clearer.

this might also be helpful if (when?) the detection code needs to be
more robust or configurable
2015-09-15 22:48:00 -05:00
Brian S. Stephan 90a138ac13 decklink: capture in RGB for BMI Intensity Pro 4K
detect the device type when initializing the device instance and
determine whether to capture YUV or RGB. tested with a Blackmagic
Intensity Pro and a Blackmagic Intensity Pro 4K in the same machine,
capturing at the same time, on Linux
2015-09-14 23:38:38 -05:00
Mathias Panzenböck b266b563fa obs-ffmpeg: Fix compile error
This fixes the compile error: "'AVDISCARD_NONINTRA' undeclared" when
using a libavcodec version earlier than 55.67.100.

Closes jp9000/obs-studio#469
2015-09-12 22:14:24 -07:00
hwdro fc19d9d11b obs-filters: Fix noise-gate calculation errors
For both cases the cur_level calculations were "wrong". For one channel
case, I assume that was only an oversight, as for two channels case
cur_level "calculation", getting the level from downmixing to mono will
result in an attenuated level than expected. One solution is to use the
highest level of both channels to drive the gate.
2015-09-09 18:07:30 +03:00
Radzaquiel ee62910014 rtmp-services: Update Hitbox servers list
Added: EU-East (Vienna, Austria)
2015-09-05 18:07:29 +02:00
jp9000 13d22645e4 win-capture: Use correct variable for system modules
..This is rather embarrassing.  I used the parameter variable and the
actual variable that I wanted to used went completely unused.  Would
static analysis catch something like this, I wonder?  Would probably
have to be really good static analysis.
2015-08-29 21:03:54 -07:00
Gol-D-Ace 3cc98e734a rtmp-services: Add YouTube Gaming reference
YouTube Gaming is live since today (26 August 2015) and people will ask
for it.
This makes it a bit clearer that YouTube and YouTube Gaming
(which share the same ingestion system) work with OBS MP.
2015-08-26 21:15:50 +02:00
jp9000 657619e642 win-dshow: Update libdshowcapture to 0.5.5 2015-08-23 20:27:26 -07:00
jp9000 be5283bb51 rtmp-services: Fix warnings for updater 2015-08-19 17:47:25 -07:00
jp9000 1a842ecd15 rtmp-services: Automatically update services.json
Uses the file-updater utility library to update the services.json file.
If the remote version is incompatible or corrupted, will reject the
file.
2015-08-19 16:26:22 -07:00
jp9000 68d2dab6fd rtmp-services: Use cached services.json if present
This will use the services.json file present in the cache, or if it has
the wrong format version or is corrupted for whatever reason, uses the
local version instead.

Also a minor refactor, makes it so that you call the open_services_file
function to get the services array, rather than having to get the file
name each time.
2015-08-19 16:21:58 -07:00
jp9000 b5f1bbdd4c rtmp-services: Add format_version to services.json
The entire services file had to be restructured, but this allows us to
be able to change the format of the json file safely (if ever needed).
2015-08-19 16:19:03 -07:00
jp9000 d08701338f rtmp-services: Add get_int_val hepler function
This is just for accessing a json object.  I should be using obs_data_t
for this instead of json directly, but it doesn't really matter.
2015-08-19 15:46:28 -07:00
jp9000 d5ebe48180 Revert "win-capture: Use texture for actual source size"
This reverts commit 74354dc4cf.  I really
shouldn't have modified this, especially not in this way.  Was the wrong
approach.  The thing I was trying to fix was very rare as well.
2015-08-16 12:52:09 -07:00
jp9000 f6f7388599 rtmp-services: Fix warning
The return value is supposed to be a boolean value; not NULL.
2015-08-16 10:37:40 -07:00
Gökberk Yaltıraklı 8efbcc599a linux-capture: Try to reacquire lost windows
When a window being captured is closed, it never tries to reacquire.
This just searches for the window in video_tick and reacquires if the
currently set window is found again.

Closes jp9000/obs-studio#465
2015-08-16 09:35:10 -07:00
jp9000 3b8addba3e rtmp-services: Add streamup to services 2015-08-16 08:08:13 -07:00
jp9000 b373f82c9e rtmp-services: Add WatchPeopleCode to services 2015-08-16 08:08:13 -07:00
jp9000 a61758c701 rtmp-services: Add restream.io to service list 2015-08-16 08:08:13 -07:00
jp9000 4c724485ae rtmp-services: Rearrange services 2015-08-16 08:08:13 -07:00
jp9000 1f31fa803b rtmp-services: Remove gaminglive.tv
Apparently the site has been dissolved and/or bought out.  It seems it
will reform as something else later on in the future.
2015-08-16 08:08:13 -07:00
jp9000 9499ffc1d2 rtmp-services: Add rtmp URL lookup config file
This URL is set via cmake instead of being baked in to the actual source
code.
2015-08-16 08:08:13 -07:00
jp9000 1c5a071eb8 rtmp-services: Add "Show all services" option
I made the rather tough call of not showing all services by default; I
didn't want to have to do this, but too many services are asking to be
put in to the program, and any time I add a service in to the list, I
feel uncomfortable because I feel like I'm potentially advertising them,
and/or they're using our program to advertise as well.  Some of these
services are particularly bad at policing illegal/copyrighted content,
host content that I personally find distasteful or incredibly stupid
(what the heck is up with these "vaping" streams?), or are just fairly
terrible websites in general that I just feel uncomfortable with showing
by default.

However, I do not really want to reject anyone either, I want to let
their users be able to use our program with relative ease, but more than
anything I just simple don't want to be seen as "endorsing" some of
these websites (more than others in particular).  I know that a "show
all services" checkbox is probably pretty pointless/superfluous thing to
do, but I feel like it's at the very least a means of saying "hey, I
don't really endorse these guys," or "use at your own risk," or
"warning: this website is incredibly terrible."

Honestly, I couldn't really think of any better solution that would
 a.) still list all services without outright censoring them, and
 b.) prevent us from being seen as "endorsing" all services.

(Although maybe this whole thing feels a bit.. passive aggressive.  I
feel like I'm tipping over someone's garden gnome in the middle of the
night while they're sleeping.  Still, it's something.)

NOTE: This code is backward compatible; i.e., if you previously had a
service selected that's not common but don't have the "show all"
checkbox checked, it'll still show that service for convenience.
2015-08-16 08:08:13 -07:00
jp9000 61d86d938a rtmp-services: Always use CBR for all services
Services almost always recommend this be enabled, and I generally want
to make configuration easier for users; with CBR they don't have to set
things like the CRF value.
2015-08-16 06:43:43 -07:00
jp9000 1ca065b0f2 obs-outputs: Use name and version for encoder
My fault; should have realized that this would be better to do.  Uses
"obs-studio" as the name, and includes the version (same format as the
others)
2015-08-14 17:49:21 -07:00
Marc Chambers db6d9bb042 obs-outputs: Include encoder name in RTMP flashVer
This will help ensure the receiving end knows that OBS is being used.

Closes jp9000/obs-studio#464
2015-08-14 15:58:55 -07:00
kc5nra 34b95eff8a obs-ffmpeg: Sychronize logging on log context
Different logging can occur from different contexts.
This adds isolation for each context passed to the
AV log.
2015-08-14 07:53:52 -07:00
John Bradley 6e69b0f4f0 obs-ffmpeg: Move log callback up to plugin scope 2015-08-14 07:53:51 -07:00
John Bradley d04fbd7549 obs-ffmpeg: Log source info on update/create
Adds a log message whenever the source is created or updated
containing all the properties set to help debugging remote
users' problems.
2015-08-14 07:53:50 -07:00
John Bradley 78d5240e18 obs-ffmpeg: Add more informative logging to source 2015-08-14 07:53:48 -07:00
John Bradley 207203d104 obs-ffmpeg: Normalize ffmpeg source argument name 2015-08-14 07:53:47 -07:00
John Bradley 59482ec29b obs-ffmpeg: Normalize video frame method arguments 2015-08-14 07:53:46 -07:00
kc5nra 34cc2438c1 obs-ffmpeg: Output ffmpeg messages line by line 2015-08-14 07:53:45 -07:00
Palana 5727dc2a3b coreaudio-encoder: Add explicit initialization
Microsoft's C++ compiler doesn't initialize all members properly without
this
2015-08-12 19:15:21 +02:00
Palana 7ad7142bd3 coreaudio-encoder: Replace darray with std::vector
The single darray solution was potentially unsafe since you're not
allowed to modify the (encode) buffer between calls to
complex_input_data_proc which is potentially violated if the darray
had to be resized due to capacity being < 2 * in_bytes_required
2015-08-12 19:03:41 +02:00
Palana 13681e9b1c coreaudio-encoder: Fix registering non-existing functions 2015-08-12 15:47:38 +02:00
Haden F a14d242369 rtmp-services: Fix YouTube name capitalization
Closes jp9000/obs-studio#462
2015-08-10 18:20:41 -07:00
Palana fcfe891dcf coreaudio-encoder: Update bitrate property on sample rate modification 2015-08-10 16:35:04 +02:00
Palana eb5745a363 coreaudio-encoder: Add output sample rate setting/property 2015-08-10 16:35:04 +02:00
Palana 5172328ad9 coreaudio-encoder: Add AudioFormat property enumeration helpers 2015-08-10 16:35:04 +02:00
Palana 966b4d97e0 coreaudio-encoder: Make bitrate enumeration samplerate-aware 2015-08-10 16:35:04 +02:00
Palana 15a32530f0 coreaudio-encoder: Undef 'local' macro 2015-08-10 16:27:53 +02:00
Palana f786f89e35 coreaudio-encoder: Remove unused (obsolete) functions 2015-08-10 16:27:53 +02:00
Palana 6ad48ddb20 coreaudio-encoder: Update default bitrate matching/logging 2015-08-10 16:27:53 +02:00
Palana 27761f9b7a coreaudio-encoder: Update bitrate property enumeration/logging 2015-08-10 16:27:53 +02:00
Palana c55643c488 coreaudio-encoder: Refactor get_default_converter helper 2015-08-10 16:27:52 +02:00
Palana ecbe5988cd coreaudio-encoder: Make initialization logging less verbose 2015-08-10 16:27:52 +02:00
Palana 9b1095feb5 coreaudio-encoder: Add bitrate enumeration helper with better logging 2015-08-10 16:27:52 +02:00
Palana 5d2fa5685c coreaudio-encoder: Add more logging helpers 2015-08-10 15:55:34 +02:00
Palana d6b0a60327 coreaudio-encoder: Move to C++ 2015-08-10 15:54:31 +02:00
Palana 02a09fdee3 coreaudio-encoder: Fix whitespace/indentation 2015-08-10 15:54:31 +02:00
jp9000 96dc5f796e win-capture: Add more d3d9 exceptions for win 10
Adds exceptions for D3D9 version 10.0.10240.16412.
2015-08-07 21:27:35 -07:00
jp9000 05eef74891 mac-capture: Don't call CFRelease on null vars
CFRelease is not meant to be used with null variables.  Check the
variables before calling CFRelease.
2015-08-03 00:08:03 -07:00
jp9000 927a90cfa7 win-capture: Use get_win_ver (not GetVersionEx) 2015-08-01 14:51:24 -07:00
jp9000 74354dc4cf win-capture: Use texture for actual source size 2015-08-01 14:51:19 -07:00
Gol-D-Ace bdda2b0b23 rtmp-services: Update twitch.tv ingests 2015-08-01 21:24:09 +02:00
Palana 255e9d6848 coreaudio-encoder: Fix potential memory leak
Found via clang-3.7 static analysis
2015-08-01 08:59:39 +02:00
jp9000 595de46e9d decklink: Fix crash (null pointer dereference)
This is my fault; I made an idiotic assumption about the data and it
ended up causing the plugin to crash.  This is definitely one of my more
embarrassing moments.
2015-07-25 09:51:30 -07:00
Jim b22bc8127e Merge pull request #457 from Radzaquiel/patch-7
obs-x264: Change string for translation
2015-07-22 08:34:07 -07:00
jp9000 c87d3b1f12 cmake: Rename FindFFMpeg to FindFFmpeg
This was sort of driving me crazy: The 'm' in FFmpeg isn't supposed to
be capitalized.
2015-07-18 16:32:26 -07:00
Radzaquiel 16be021c5b obs-x264: Change string for translation
Adding the acronym "VFR" & keeping it this way in the string could be a good thing as the acronym is used worldwide in video encoding.
2015-07-18 14:38:51 +02:00
jp9000 77b7a83249 win-capture: Add D3D9 exceptions for win10 RTM 2015-07-16 15:45:33 -07:00
jp9000 c8d5058f1d obs-x264: Add option to use variable framerate
This just changes the x264 encoder settings; it doesn't actually change
the framerate of OBS.  OBS will always output at a constant framerate
regardless of whether this option is on or off; this just changes how
the encoder encodes the data.
2015-07-16 15:45:33 -07:00
Gol-D-Ace e4d0b54a0d rtmp-services: Update twitch.tv ingests 2015-07-16 07:14:08 +02:00
Gol-D-Ace ca64755d9b rtmp-services: Update twitch.tv ingests 2015-07-14 02:12:50 +02:00
Jim 9c0aaed4d1 Merge pull request #454 from Gol-D-Ace/twitch-ingests
rtmp-services: Update twitch.tv ingests
2015-07-12 10:28:35 -07:00
Gol-D-Ace 938ef67553 rtmp-services: Update twitch.tv ingests 2015-07-12 13:15:15 +02:00
Jim 139832db11 Merge pull request #452 from chaironeko/fix-auth-streams
Fixes for Authenticated RTMP streams
2015-07-11 20:52:09 -07:00
Jess Mayo f1a6b37e8e obs-outputs: Add bounds checking to b64enc
This fixes "warning: unused parameter 'maxsize' [-Wunused-parameter]"
introduced when authentication was turned on.
2015-07-12 12:34:47 +09:00
jp9000 bf1d07f513 win-capture: Fix bad return type
This was casting the return type to bool, which caused any non-zero
return code be converted to 1.
2015-07-11 15:36:53 -07:00
jp9000 45ed0a39a8 win-capture: Don't mark string mem. as executable
This is writing a string which LoadLibraryW can read in the target
process; it's not being executed so there's no reason to mark it as
executable.
2015-07-11 15:35:31 -07:00
jp9000 0833651adc win-dshow: Update libdshowcapture to 0.5.4 2015-07-11 15:33:57 -07:00
jp9000 2bf764a721 win-mf: Remove unused variable 2015-07-11 14:26:53 -07:00
jp9000 bdc1a052fe win-dshow: Fix mingw compiler errors/warnings 2015-07-11 14:26:52 -07:00
jp9000 931f42dab1 win-capture: Fix mingw compiler warnings 2015-07-11 14:26:51 -07:00
jp9000 845a9d2f1a decklink: Fix mingw compiler warnings 2015-07-11 14:26:50 -07:00
jp9000 aa0e64b7c9 coreaudio-encoder: Fix mingw warnings 2015-07-11 14:26:49 -07:00
Taylor Blau 0cf68a16fb rtmp-services: enable CBR for beam.pro 2015-07-11 15:54:29 -04:00
Jess Mayo cec88d2897 obs-outputs: Fix stuck "Connecting" with no key
With no stream key, no streams were actually being created.
This is a crazy configuration anyway, but it resulted in OBS getting
stuck in the "Connecting" state with no way to cancel.
We now just use the blank key and hope for the best.
2015-07-11 14:01:11 +09:00
Jess Mayo 1682d77df3 obs-outputs: Fix rtmp authentication
Reinstate flag checks in RTMP_Close that were erroneously removed.

Clear out the Link state before we establish a new connection. There is
too much state carried around during authentication that has no good
place to clear it in librtmp, which assumes a clean structure when the
connection is initially established.
2015-07-11 13:53:07 +09:00
Taylor Blau fb4bee25df rtmp-services: Update Beam's recommended settings 2015-07-10 16:49:48 -04:00
jp9000 0b2e1d6a9c win-mf: Fix bug where 48khz wouldn't work
This bug corrupted the audio headers due to mis-use of operator
precedence.
2015-07-09 10:45:24 -07:00
jp9000 ad3d448f19 obs-ffmpeg: Use actual audio encoder sample rate
Uses the sample rate the audio encoder is running at for ffmpeg muxing
(in case the audio sample rate had to be changed by the encoder)
2015-07-09 10:44:24 -07:00
jp9000 50b47a6861 obs-outputs: Use actual audio encoder sample rate 2015-07-09 10:43:32 -07:00
jp9000 3ef3ce29e4 win-capture: Update d3d9 hooks for win10 preview 2015-07-08 12:50:27 -07:00
Jim fff323a0d5 Merge pull request #450 from dodgepong/latest-crowdin-translations
Add latest translations from CrowdIn
2015-07-08 12:04:30 -07:00
dodgepong fb679bdd02 Add latest translations from CrowdIn 2015-07-08 14:56:07 -04:00
Jim e28f2690dd Merge pull request #449 from chaironeko/mantis-163-quit-crash
obs-outputs: Fix crash with quit while connecting
2015-07-07 23:09:26 -07:00
John R. Bradley 3ae747dd50 win-mf: Add Media Foundation AAC Encoder
Adds Microsoft Media Foundation AAC Encoder that supports
96k to 192k bitrates.  This plugin is only enabled on Microsoft
Windows 8+ due to performance issues found on Windows 7.
2015-07-07 23:05:44 -07:00