0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

960 Commits

Author SHA1 Message Date
Palana
c19b9160ad Fix byte order for PSPacked422 users
Byte order was changed in 9595a78e8a
2014-06-02 16:44:29 +02:00
jp9000
e72c0925be win-dshow module: Fix configuration issues
The biggest problem with DirectShow is that available configuration
capabilities can change if you so much as look at it the wrong way.

Previously, configuring devices often didn't configure the device
settings correctly, you would choose one setting and then another
setting wouldn't be compatible with that settings.

Let's take the terrible microsoft lifecam series for example.  First,
you'd be at 640x480 happily webcam'ing away, which is using the YUY2
format.  Then you decide "hey, this webcam resolution is a bit low.  I
would love to have it a bit high resolution so it's a bit more crisp and
clear."  You'd select 1280x720, and then suddenly the only format
supported is MJPEG output.  However, the interface has to update that
fact, it can't list YUY2 if MJPEG is the only one available for this
resolution.  This doesn't just apply to formats either, this applies to
framerates and such as well.  Some framerates will only be supported by
certain resolutions which can in turn only be supported by certain
formats.

This causes user interface for configuration to be really be a nightmare
to manage if you want these features to be available to the user.  It's
extremely annoying because you have to update all the configuration UI
after something has changed, double check the configuration values, and
if the values aren't supported, update those configuration values.
2014-05-30 19:54:58 -07:00
jp9000
040615c6bc Fix CMakeLists.txt yet again 2014-05-30 03:45:34 -07:00
jp9000
40f9448a83 Fix win-dshow module CMakeLists.txt
Didn't include the DirectShow library, and forgot to add one source file
2014-05-30 03:43:53 -07:00
jp9000
d2ff9d5bf4 UI: Add 'win-dshow' plugin initialization
I really need to make this thing automatically search for plugins some
time.  I've got to admit it's kind of annoying.
2014-05-30 03:31:49 -07:00
jp9000
c55b1771cd Add preliminary DirectShow capture plugin
This covers the basics of devices.  Mostly functional but not at 100%
yet.  Uses 'libdshowcapture' library to capture directshow video/audio.
Both libdshowcapture and the plugin still need some work.  Should at
least capture basic webcams and capture cards for the time being.
2014-05-30 03:29:48 -07:00
jp9000
1343d6bdee libobs: Allow deferred source udpate on create
This allows sources to optionally defer update on creation in order to
prevent updates from being called from threads other than the video
thread.
2014-05-30 03:24:15 -07:00
jp9000
1c8e27f220 win-dshow: Add submodule 'libdshowcapture' 2014-05-30 03:17:25 -07:00
jp9000
924f780f50 WASAPI plugin: Mark parameter macro 2014-05-30 03:09:31 -07:00
jp9000
796ad99335 Plugins: Remove old dshow plugin 2014-05-30 03:09:09 -07:00
jp9000
924709735e libobs/util: Add DStr RAII helper class
..Could also add some super nifty stuff later on too.  However, I think
using std::string whenever possible is probably for the best.
2014-05-30 02:46:08 -07:00
jp9000
90f0bd6887 UI: Add support for buttons in properties view. 2014-05-30 02:44:14 -07:00
jp9000
dfdba6636b libobs/util: Fix string conversion functions
There was a fundamental flaw with the string type conversion functions
where the sizes were not being properly accounted for.  They were using
the 'len' value as a value for the output rather than only for the
input, which was bad because the output could have more or less
characters than the input.
2014-05-30 02:42:03 -07:00
jp9000
e18795a164 libobs/util/dstr.c: Add missing dstr_from_wcs 2014-05-30 02:40:23 -07:00
jp9000
38b610efca libobs/util/dstr.c: Don't find/replace if empty 2014-05-30 02:39:33 -07:00
jp9000
75d25b4e5b libobs: Init source info before calling 'create'
When a source's private data is being created by a module, it wasn't
able to call most source functions because most functions rely on the
obs_source_info part of the context to be set.  This fixes that issue.

It was strange that this wasn't already the case because the other
context types already did the same thing.
2014-05-30 02:35:24 -07:00
jp9000
9595a78e8a libobs: Add planar 4:2:0 async texture support
This uses the reverse planar YUV 4:2:0 conversion shader to output a YUV
texture without having to convert it via CPU.  Again, this will reduce
video upload bandwidth usage to 37.5% of the original rate.  I suspect
this will be particularly useful for when an FFmpeg or libav input
plugin for playing videos is made.

NOTE: There's an issue with certain texture sizes right now I haven't
been able to identify, if the full size of texture data divided by the
base texture width is an uneven number, the V chroma plane seems like it
can potentially shift, though I only had this happen with 160x90
resolution C920.  Almost all resolutions tend to be even.  Needs further
testing with more devices that support planar YUV 4:2:0 output.
2014-05-30 02:23:36 -07:00
jp9000
85dcfcaa34 libobs: Add button support to properties
This adds button support to properties, which will allow a properties
pane to let the user click a button to activate something with a
particular obs context.  When pressed, the button will execute the
callback given, with the context's private data as a parameter.
2014-05-30 02:16:46 -07:00
jp9000
5be241b17a libobs: Add planar YUV 4:2:0 reverse shader
This allows uploading of I420 textures and directly converting on the
GPU.  Cuts down upload bandwidth to 37.5% of original rate.
2014-05-30 02:13:32 -07:00
Jim
50adea9fd0 Merge pull request #104 from Tak0r/master
Added German translation
2014-05-25 13:53:41 -07:00
Jim
17147c1a9d Merge pull request #106 from BtbN/fix
Unset cached variables on failure in Jansson find module
2014-05-25 13:53:35 -07:00
BtbN
602b048089 Unset cached variables on failure in Jansson find module 2014-05-25 16:37:49 +02:00
Frank Gehann
e32151693e Added German translation 2014-05-24 22:30:44 +02:00
Jim
143882ee71 Merge pull request #102 from BtbN/external_jansson
Add support for external jansson
2014-05-24 08:05:12 -07:00
Jim
31a58aa232 Merge pull request #99 from Arkkis/master
Finnish Locale
2014-05-24 08:04:39 -07:00
BtbN
2cc24dccab Add support for external jansson 2014-05-24 15:47:03 +02:00
Jim
6ff79c386d Merge pull request #100 from shousa/master
fix typo
2014-05-24 06:40:16 -07:00
Jim
e0da47e4ce Merge pull request #101 from BtbN/librtmp_symbols_fix
Hide librtmp symbols so they don't collide with system libraries
2014-05-24 06:39:54 -07:00
BtbN
862840b3a0 Hide librtmp symbols so they don't collide with system libraries 2014-05-24 14:13:44 +02:00
shousa
3c2be4ee0f fix typo
fix typo
2014-05-24 12:00:58 +09:00
Arkkis
11dd634994 Updated Locale.ini 2014-05-23 22:11:13 +03:00
Arkkis
6aad488f31 Updated Locale.ini 2014-05-23 22:09:49 +03:00
Arkkis
749d384b5e Finnish Locale 2014-05-23 22:02:31 +03:00
Jim
83f92d8281 Merge pull request #96 from trapped/master
Added Italian locale
2014-05-23 09:01:40 -07:00
Jim
9b8140f536 Merge pull request #97 from BtbN/cmake_fixes
Fix fdk-aac library search names
2014-05-23 09:01:16 -07:00
BtbN
5f96d478c5 Fix fdk-aac library search names 2014-05-23 05:12:55 +02:00
Jim
f722887f0b Merge pull request #95 from shousa/master
Add Japanese translation
2014-05-22 18:39:24 -07:00
Jim
df47f31e83 Merge pull request #93 from BtbN/fdk
Add libfdk_aac encoder module
2014-05-22 18:33:46 -07:00
BtbN
817c25884d Make obs-ffmpeg aac encoder output which encoder is beeing used 2014-05-23 00:06:29 +02:00
BtbN
ca7ba2e234 Add libfdk encoder 2014-05-23 00:06:28 +02:00
Giorgio Pellero
349556075e Added Italian locale
The English locale file was a bit vague and I didn't have time to delve deep into the UI source code, so it's a bit generic.
2014-05-22 20:36:06 +02:00
shousa
282abfc962 Add Japanese translation
Add Japanese translation
2014-05-23 00:00:40 +09:00
Jim
e703c92c85 Merge pull request #92 from fryshorts/pulse-input
A few smaller fixes for the pulseaudio plugin
2014-05-22 05:40:23 -07:00
BtbN
9daaacd76a Add Libfdk find module 2014-05-22 13:03:47 +02:00
BtbN
e2c2e50f4c Fix ffmpeg/x264 find modules according to cmake find module naming conventions 2014-05-22 13:03:47 +02:00
jp9000
68d40f13be Fix a few warnings on windows 2014-05-22 03:59:51 -07:00
jp9000
d536df30b0 Add dst_size parameter to character conv funcs
Character conversion functions did not previously ask for a maximum
buffer size for their 'dst' parameter, it's unsafe to assume some given
destination buffer may have enough size to accommodate a conversion.
2014-05-22 03:46:57 -07:00
jp9000
6578e2952b UI: Fix string conversion bug
Parameter two of os_wcs_to_utf8 is how many characters to convert, not
how big the buffer is.
2014-05-22 03:00:16 -07:00
fryshorts
65b8fb2f4e Remove pa timestamps option from pulseaudio plugin
Due to desync issues with the pa timestamps, os ones are
now the only option.
2014-05-21 22:54:23 +02:00
fryshorts
e0536e70ba Fix requested latency for pulseaudio plugin
When the PA_STREAM_ADJUST_LATENCY flag is passed, pulse will interpret
the fragsize attribute as a literal targeted latency.
2014-05-21 22:54:23 +02:00