2651 Commits

Author SHA1 Message Date
Palana
9ca450426a Refactor mac-avcapture cleanup and improve session init error handling 2014-06-04 20:02:02 +02:00
Palana
994565dbfb Improve mac-avcapture logging
Log messages are now prefixed with the source name to distinguish between
multiple sources
2014-06-04 20:02:02 +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
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
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
BtbN
862840b3a0 Hide librtmp symbols so they don't collide with system libraries 2014-05-24 14:13:44 +02: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
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
e2c2e50f4c Fix ffmpeg/x264 find modules according to cmake find module naming conventions 2014-05-22 13:03:47 +02: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
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
fryshorts
66d8ad8eaf Fix packet/frame counter for pulseaudio plugin
Reset the counters when the recording is stopped.
2014-05-21 22:49:34 +02:00
fryshorts
ac4a054bdd Add some statistics to pulseaudio plugin
This patch adds counters for packets and frames for debugging purposes.
2014-05-19 21:28:41 +02:00
fryshorts
f3d9d248b6 Fix a memory leak in pulseaudio plugin 2014-05-19 21:28:33 +02:00
fryshorts
ad9d15c838 Change logging statements for pulseaudio plugin
This removes some useless and annoying logging and on the other
hand bumps the prio on more important ones.
2014-05-19 21:28:33 +02:00
jp9000
1d2e5d50a4 Add FLV file output code
This doesn't add FLV file output to the user interface yet, but we'll
get around to that eventually.  This just adds an FLV output type.

Also, removed ftello/fseeko because off_t is a really annoying data
type, and I'd rather have a firm int64_t for large sizes, so I named it
to os_fseeki64 and os_ftelli64 instead, and changed the file size
function to return an int64_t.
2014-05-16 00:18:23 -07:00
Jim
f5e85e167b Merge pull request #74 from BtbN/linux_new_plugins
Add xcomposite capture
2014-05-15 02:24:26 -07:00
Jim
4d13e2fbca Merge pull request #83 from fryshorts/xshm-input
linux-xshm: added support for multi-screen setups
2014-05-15 02:24:16 -07:00
jp9000
3280cd1dbb Fix code formatting issues
80 columns limit preferably
spaces after if/for/while
KNF code styling
2014-05-15 02:18:01 -07:00
jp9000
03ca5919ce UI: Add popup warnings for connection failure
Also, check for null stream path/key in the RTMP output module.
2014-05-12 15:34:46 -07:00
Palana
fa22417f8c Handle libobs fourcc byte order change in mac-avcapture 2014-05-13 00:17:12 +02:00
Palana
c57d883506 Fix mac-avcapture compilation with OSX SDK version < 10.9 2014-05-13 00:14:27 +02:00
Palana
e9b6d1d189 Fix typo in mac-avcapture 2014-05-13 00:10:57 +02:00
fryshorts
76d2bf2c29 Add README for the xshm plugin
The file contains some development information specific to the plugin.
2014-05-12 22:07:07 +02:00
fryshorts
071c4251d8 Add support for multi-screen setups
This patch adds support for multi-screen setups by using xinerama
information if available to determine the screen size and position.

In case xinerama is not available or not active it uses the information
provided for the x screen.

To clean up the code some generic helper functions were moved to a
separate source file.
2014-05-12 22:07:07 +02:00
fryshorts
9f76396227 Add offset to xcursor
This patch adds the option to specify an offset for the cursor position.

Small fix to texture format aswell.
2014-05-12 22:07:07 +02:00
BtbN
b3adef6c8d Fix all warnings in rtmp output 2014-05-10 03:40:23 +02:00
BtbN
8dc9ca5c81 Add xcomposite capture 2014-05-09 03:12:30 +02:00
BtbN
3e224b9750 Fix mav-avcapture dependencies 2014-05-08 14:43:16 +02:00
BtbN
ce542525fc Fix dependency on win32-pthreads 2014-05-08 14:43:16 +02:00
Palana
cfc3f2590e Update OSX dependencies for cmake generators other than ninja/make 2014-05-08 14:31:43 +02:00
Palana
b9c544969e Request global headers from ffmpeg aac encoder
FAAC and FDK AAC don't populate AVCodecContext::extradata{_size} unless
CODEC_FLAG_GLOBAL_HEADER is set
2014-05-08 14:19:10 +02:00
Palana
00bdf11649 Bypass time conversion if AVCaptureInputPort has no clock
This should add compatibility for OSX < 10.9
2014-05-05 20:31:47 +02:00
Palana
c36ce49706 Minor cleanup in mac-avcapture 2014-05-05 20:31:47 +02:00
jp9000
52746c2523 Add (temporary terrible) volume controls
- Add volume control

   These volume controls are basically nothing more than sliders.  They
   look terrible and hopefully will be as temporary as they are
   terrible.

 - Allow saving of specific non-user sources via obs_load_source and
   obs_save_source functions.

 - Save data of desktop/mic audio sources (sync data, volume data, etc),
   and load the data on startup.

 - Make it so that a scene is created by default if first time using the
   application.  On certain operating systems where supported, a default
   capture will be created.  Desktop capture on mac, particularly.  Not
   sure what to do about windows because monitor capture on windows 7 is
   completely terrible and is bad to start users off with.
2014-05-03 22:54:38 -07:00
jp9000
5a3bdc413d Fix Obj-C property usage
...I really need to go through my Objective-C reading material
2014-04-29 02:33:08 -07:00
jp9000
24cf70053e Mac A/V capture: Fix minor issue
Use the port clock instead of the master clock
2014-04-29 02:27:17 -07:00
jp9000
0b5ba66b33 async vid.: Fix potential endless buffering issue
If a source with async video wasn't currently active, it would endlessly
buffer the video data, which would cause memory to grow endlessly until
available memory was extinguished.

This really needs to be replaced with a proper caching mechanism at some
point.
2014-04-28 20:38:15 -07:00
Jim
76d7126a04 Merge pull request #72 from fryshorts/pulse-input
Several Improvements to the pulseaudio capture
2014-04-28 17:39:10 -07:00
Palana
88574a27de Add basic OSX AV capture plugin
Currently only cameras using interleaved 4:2:2 YCbCr are supported, e.g.
recent internal iSight cameras
2014-04-29 00:06:12 +02:00
fryshorts
9a14661507 Add option to use alternative timestamps
With this option enabled the plugin will generate timestamps
based on the system time instead of using the ones provided by
pulse audio. This might fix problems with audio desync and may
become the default/only option in the future.
2014-04-28 22:00:04 +02:00
fryshorts
30a688e942 Implement defaults functions
The defaults functions will now return the default device for the
input/output as provided by pulseaudio.
The default output device is the monitor of the default sink.
2014-04-28 22:00:04 +02:00
fryshorts
bbda252e2d Add support for changing the audio device while recording
Changing the audio device in the source properties will now cause
the plugin to switch recording to the new device.
2014-04-28 22:00:04 +02:00