Add function to get info on a specific source to pulse wrapper
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.
Simplify logging in pulse input

Use a macro to prefix debugging messages instead of prepending manually.
Small coding style fixes in pulse input
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.
Merge pull request #261 from fryshorts/pulse-input

Use default source settings for recording in pulse input
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.
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.
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.
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.
win-dshow: Add FFmpeg decoding support
win-dshow: Clear video/audio frame data on init
win-dshow: Implement decoding of encoded devices
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.
win-dshow: Properly log colorspace on format fail
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.
Do not call dlclose on modules

This apparently can cause issues with certain modules (as noted by
faruton with his browser plugin)
Update libdshowcapture to 0.3.2
Add disable options for optional plugins
Fix device capability checking in v4l2 input.

The capabilities flags that were used previously describe all
capabilities the physical device offers. This would cause devices
that are accessible through multiple device nodes to show up with
all device nodes while only one of the nodes might actually offer
the needed video capture capability.

If the device has more nodes the CAP_DEVICES_CAP flag might be set
in which case the device_caps field is filled with the capabilities
that only apply to that specific node that is opened.