Commit Graph

72 Commits (ac1651c7d3a3c6d7f74ceb5f1aac0bdaddb7fada)

Author SHA1 Message Date
fryshorts b88fe5078c Remove the getwidth/getheight functions from v4l2 plugin.
Those functions are actually causing more problems than
helping out with the preview because the width/height is
updated immediately while the actual size of the frames
displayed changes later.
2014-07-26 19:29:08 +02:00
fryshorts b629087513 Reorganized data struct and update function for v4l2 plugin.
Due to the plugin creating a thread to retrieve and output the
captured image data, care must taken to not modify data the
thread reads from the outside while the thread is running.

In previous revisions some settings accessed by the capture
thread were written to in the update function which could cause
image corruption and in the worst case crashes.

The members of the data struct are now split into two groups,
those that are used by the thread while it is running and must
not be changed from the outside, and those can be changed at any
time.
2014-07-26 19:29:08 +02:00
fryshorts 05ddbeb1fe Add function to prepare frame structure to v4l2 plugin.
This adds a function to prepare the source_frame struct for use
with obs_source_output_video. Since all of the values except for
the timestamp and data pointers are known in before it makes
little sense to compute them over and over again.

Due to the fact that v4l2 uses a single continuous memory segment
for multi planar formats we can also precompute memory offsets for
the planes.
2014-07-26 19:29:08 +02:00
fryshorts a5e53d5a8d Fix handling of multiplanar pixelformats in v4l2 plugin.
The data provided by v4l2 for multiplanar formats is one
consecutive block that just needs to be splitted for obs.
2014-07-26 19:29:08 +02:00
fryshorts a6bb42c367 Display emulated formats as such in v4l2 plugin.
Formats that are emulated by v4l2 are marked by appending
"(Emulated)" to them.
2014-07-26 19:29:08 +02:00
fryshorts 9a573bb456 Replace all system calls with there counterpart in libv4l2.
By using the wrapper functions supplied by libv4l2 we gain
support for formats not natively supported by obs.
The library intercepts certain system calls to transparently
enable recoding.
2014-07-26 19:29:08 +02:00
fryshorts d6f65be966 Add libv4l2 as requirement for the v4l2 plugin.
In order to convert formats not natively supported by obs the
v4l2 userspace library is required. This patch adds a cmake
script to find the library.
2014-07-26 19:29:08 +02:00
benklett 4b2010aa4e Add 720x576 (DV-PAL) as another fallback v4l2 framesize 2014-07-25 15:46:38 +02:00
Jim eeb6fc6e9c Merge pull request #180 from fryshorts/v4l2-input
Assorted fixes for the v4l2 plugin
2014-07-18 23:54:47 -07:00
BtbN 38c2fc87aa Move all data into the subdir it belongs to
Completely removes the build dir in favor of cmake based build layouting
2014-07-19 01:38:41 +02:00
fryshorts 87a527701a Use default color space in v4l2 plugin 2014-07-16 23:42:55 +02:00
fryshorts ba3c093156 Add fallback sizes and framerates to v4l2 plugin.
Until a proper fix is found to support devices that use stepwise
or continuous values for framesize and framerate this adds fixed
values that can be selected.
For devices that support discrete values those are still queried
and used.
2014-07-16 23:42:55 +02:00
fryshorts 27297e7009 Add more logging to v4l2 plugin.
This adds some mostly user focused logging statements.
2014-07-16 23:42:55 +02:00
fryshorts 720f159274 Use macro for prefixing log messages in v4l2 plugin 2014-07-16 23:42:55 +02:00
fryshorts d8f3761cad Fix a possibly left open file descriptor in v4l2 plugin 2014-07-16 23:42:55 +02:00
fryshorts d03c94a000 Some minor code refactoring in v4l2 plugin
Small code changes to decrease indentation a little.
2014-07-16 23:42:55 +02:00
jp9000 482791c5b6 Add locale for modules 2014-07-11 17:29:00 -07:00
fryshorts 1cf19d06f9 Fix infinite loop in v4l2 plugin
With no device present the capability callbacks would cause an
infinite loop.
2014-07-11 17:48:12 +02:00
jp9000 0b4a259e56 Remove 'locale' parameter from all callbacks
The locale parameter was a mistake, because it puts extra needless
burden upon the module developer to have to handle this variable for
each and every single callback function.  The parameter is being removed
in favor of a single centralized module callback function that
specifically updates locale information for a module only when needed.
2014-06-25 12:36:26 -07:00
jp9000 74b4743bce Remove 'locale' from properties
Having the value stored here is somewhat pointless, so this is one step
in fixing the locale handling.  Locale should be handled by the modules
themselves with their own loaded locale lookup information.
2014-06-25 12:36:26 -07:00
Azat Khasanshin 32911f774c v4l2 plugin properties
added ability to choose device, pixel format, resolution
and frame rate
2014-06-18 23:37:19 +04:00
fryshorts 5f8a6db816 Add initial implementation of a v4l2 capture plugin
This patch adds a plugin to capture video data from v4l2 devices under linux.
2014-06-18 21:31:23 +02:00