Commit Graph

1705 Commits (ce782b44b71279bafb3849aa8059b350f95f8254)

Author SHA1 Message Date
jp9000 2446f62180 Do not call dlclose on modules
This apparently can cause issues with certain modules (as noted by
faruton with his browser plugin)
2014-09-12 20:36:35 -07:00
jp9000 4e78635764 win-dshow: Use a single thread per device
This prevents certain issues I've encountered with devices where they
expect to shut down in a specific thread they started up in, as well as
a number of other issues, such as the configuration dialogs.

The configuration dialogs require that a message loop be present, and
this was not the case previously because everything was in the video
thread, which has no windows-specific code.

Configuration/crossbar/etc dialogs will now execute correctly.
2014-09-12 20:36:34 -07:00
jp9000 1291351a2a win-dshow: Properly log colorspace on format fail 2014-09-12 20:36:34 -07:00
jp9000 8bdc967ae9 win-dshow: Implement dynamic format change support
This adds support for dynamic format changes on the fly.  Format,
resolution, sample rate, can all now be changed by the current
directshow device on the fly.
2014-09-12 20:36:34 -07:00
jp9000 24ae80a481 win-dshow: Implement decoding of encoded devices 2014-09-12 20:36:33 -07:00
jp9000 2378ecdbb5 win-dshow: Clear video/audio frame data on init 2014-09-12 20:36:33 -07:00
jp9000 755f95a3a7 win-dshow: Add FFmpeg decoding support 2014-09-12 20:36:32 -07:00
jp9000 bf1fea3494 win-dshow: Allow automatic handling of source res
On an asynchronous video source, the source resolution is automatically
handled by the core, and set to the resolution of the last video data
that was sent.  There is no need to manually specify a resolution.
2014-09-12 20:36:32 -07:00
jp9000 1abcdd7f50 WinHandle: Do not close handle on operator &
This is not a com pointer; it should not release/close the handle when
an & operator is used, it should only return the handle value.  Clearing
is only used on assignment.
2014-09-12 20:36:32 -07:00
jp9000 11b0fe122c Improve async source render timing
This helps ensure that an asynchronous video source is played as close
to its framerate as possible, reduces the risk of duplication as
much as possible, and helps to ensure that playback is as smooth as
possible.
2014-09-12 20:36:31 -07:00
jp9000 52e08249f1 Only render async frames to texture once per frame
This prevents multiple needless calls to obs_source_get_frame and other
functions.  If the texture has already been processed, then just render
it as-is in any subsequent calls to obs_source_video_render.
2014-09-12 20:36:31 -07:00
Jim 07c2d32a68 Merge pull request #261 from fryshorts/pulse-input
Use default source settings for recording in pulse input
2014-09-12 13:03:54 -07:00
jp9000 febede1fde Update libdshowcapture to 0.2.3 (Fix audio assert) 2014-09-06 14:37:52 -07:00
jp9000 4cb0c0c6f0 Update libdshowcapture to 0.2.2 (fix for HD-PVR 1) 2014-09-06 14:15:01 -07:00
jp9000 f3c47796ab Update libdshowcapture to 0.2.1 (HD-PVR 1 support) 2014-09-06 14:00:47 -07:00
jp9000 6c14dbe6ff Update libdshowcapture to 0.2.0 2014-09-06 12:45:21 -07:00
jp9000 efc589653f Remove processEvents
This doesn't really have a purpose, and appears to cause issues for
faruton's plugin, so removing it for the time being.
2014-09-04 15:19:01 -07:00
BtbN 895ad80759 Add api to get module data and binary paths 2014-09-04 14:03:47 -07:00
BtbN de4e4f7b42 Don't require an existing datadir for modules to load 2014-09-04 14:03:46 -07:00
BtbN 05af461282 Fix path to modules in AppData 2014-09-04 14:03:46 -07:00
jp9000 20e005e34a win-dshow: Swap UYVY and YVYU formats
These values were erroneously using their opposing types for the source
frame format.
2014-09-04 14:02:32 -07:00
jp9000 5defc67991 Remove audio/video sync reference counter
This is actually unnecessary now that there's a hard limit on the
maximum offset in which audio can be inserted.

This also assumes too much about the audio; it assumes audio is always
on, where as with some devices (such as the elgato) audio is not on
until the stream starts, and when the video has already incremented the
counter.
2014-09-04 14:01:46 -07:00
jp9000 dc43438057 Prevent audio too far from expected timing
Audio that goes below the minimum expecting timing (current time -
buffering time) is automatically removed.  However, delayed audio is not
removed regardless of its delay.  This puts a hard cap of 6 seconds from
current time that the maximum delay audio can have.  This will also
prevent the circular buffer from dynamically growing too large.
2014-09-04 14:01:40 -07:00
Palana c5fdaef450 Fix crash when closing the properties window on OSX
Followup to d56432304e, it apparently
still crashed (on slower machines?) when closing the properties window
via mouse (by clicking the X button)
2014-09-04 06:31:55 +02:00
Palana fad5753726 Update INSTALL for OSX 10.8 2014-09-03 19:43:32 +02:00
jp9000 cabc47c147 Add more null pointer checks to text source 2014-09-02 20:44:50 -07:00
jp9000 8d76f940c6 Add null pointer check for text file
Apparently there was no check for a null pointer file name.
2014-09-02 18:22:44 -07:00
fryshorts 2fca3b38e8 Log average latency in pulse input
This adds another statistics counter to the pulse plugin in order
to print the average latency reported by pulse when the source is
destroyed.
2014-09-02 19:35:17 +02:00
jp9000 02d408c730 win-dshow: Remove MPEG2 (unlikely to be used) 2014-09-01 17:09:58 -07:00
jp9000 45eae599ce Add -> operator to CoTaskMemPtr
This adds the ability to get members via the -> operator.
2014-09-01 13:00:22 -07:00
fryshorts 164c2e01b9 Small coding style fixes in pulse input 2014-08-30 21:07:03 +02:00
fryshorts de3c7cafcc Simplify logging in pulse input
Use a macro to prefix debugging messages instead of prepending manually.
2014-08-30 21:07:03 +02:00
fryshorts b6482d8995 Use source instead of server info to get format for recording in pulse input
When setting up the capture, the plugin will now query pulse for the default
format of the specific source instead of the server.
This is useful if a source has different settings than what the defaults are
for the server, e.g. when the source is an output with 5.1 surround sound
and the microphone input is mono while the server defaults to stereo sound.
2014-08-30 21:07:03 +02:00
fryshorts bbc62f2602 Add function to get info on a specific source to pulse wrapper 2014-08-30 21:07:03 +02:00
jp9000 5ac364ff9a Perform timestamp smoothing in media-io as well
Doing timestamp smoothing in obs-source.c is good because timestamps can
typically operate on a different timebase, however, obs-source.c can
also change that time base dynamically (such as with async video and
unexpected timestamp jumps), so in order to ensure that audio is
seamless in the output as well, perform timestamp smoothing in
audio-io.c as well just as an extra precautionary measure.
2014-08-30 11:52:08 -07:00
jp9000 355d5dab6e Move timestamp smooth threshold to media-io 2014-08-30 11:51:37 -07:00
Jim 883d05007f Merge pull request #262 from computerquip/master
No need to subtract window position from translated coordinates
2014-08-30 11:24:18 -07:00
Zachary Lund 0f228e6ee5 No need to subtract window position from translated coordinates 2014-08-30 13:09:00 -05:00
jp9000 66e8674100 linux-capture: Add cursor capture to xcomposite 2014-08-29 17:20:26 -07:00
jp9000 0102896328 linux-capture: Add x/y cursor position vars 2014-08-29 17:20:26 -07:00
jp9000 378e910ad3 linux-capture: Rename pos_* vars to render_*
the pos_x and pos_y variables were somewhat deceptive, because they were
not actually the poition of the cursor.  They represented the position
of the cursor's bitmap on the screen, not the position of the cursor.
2014-08-29 17:20:26 -07:00
jp9000 15fb027647 Combine linux-xcomposite and linux-capture (xshm) 2014-08-29 17:20:02 -07:00
jp9000 a9cd60a78f Rename linux-xshm module to linux-capture 2014-08-29 17:19:30 -07:00
jp9000 e610fd77ce Use C externs for obs-module.h
This allows inter-sharing of functions such as obs_module_text among
both C and C++ files
2014-08-29 11:20:28 -07:00
jp9000 513eaa5f36 Basic UI: Reduce audio meter mute timing threshold
Some devices burst their audio (such as when querying audio from
directshow), and the 250 millisecond threshold that sets the audio meter
back to muted status would erroneously cause the meter to appear bounce
back between muted and unmuted.  Instead, a one second test should be
sufficient time to prevent that from happening.
2014-08-28 18:39:41 -07:00
jp9000 f50aa5e01b win-dshow: Add audio support
This implements audio support, allowing not only the ability to capture
the built-in audio from the video device's audio capture pin, but also
the ability to override the default audio with a custom audio device.

The DShowInput::Update function was split up and refactored a bit, as it
was getting a bit large and messy.
2014-08-28 18:34:36 -07:00
jp9000 47570f4153 Fix bug with source audio
If the audio didn't start at the 0 timestamp, it would misinterpret it
as a timestamp jump because obs_source::next_audio_ts_min is set to 0 on
creation.  Timestamp starting values should be allowed to start at any
arbitrary value.
2014-08-28 18:34:36 -07:00
Jim 3539932d86 Merge pull request #260 from fryshorts/pulse-input
Handle audio channels correctly in pulseaudio plugin
2014-08-28 12:10:24 -07:00
fryshorts 964d6eb3db Handle audio channels correctly in pulseaudio plugin
This fixes a bug where the pulseaudio plugin always reported
a speaker layout of stereo to obs, regardless of how many channels
pulseaudio actually recorded.
If the default number of channels was different to 2 this would
cause audio distortion.
2014-08-28 20:23:28 +02:00
jp9000 1a5989a52b Update win-dshow to latest libdshowcapture ver
This makes win-dshow use the new std::function callbacks instead of the
old C-style callbacks.
2014-08-28 11:06:54 -07:00