linux-v4l2: Fix build when missing ENUM_DV_TIMINGS
Add compatibility with older versions of the api by not failing to build when the VIDIOC_ENUM_DV_TIMINGS is missing. In older versions of the api there was a different system to get dv-timing presets, which was replaced by the current enumeration system with Linux 3.4. This will allow for the plugin to be built against older versions of the api by disabling the enumeration support, thus reducing the functionality for some devices.master
parent
85518e7cca
commit
34c3be43d1
|
@ -240,6 +240,12 @@ int_fast32_t v4l2_set_standard(int_fast32_t dev, int *standard)
|
|||
int_fast32_t v4l2_enum_dv_timing(int_fast32_t dev, struct v4l2_dv_timings *dvt,
|
||||
int index)
|
||||
{
|
||||
#ifndef VIDIOC_ENUM_DV_TIMINGS
|
||||
UNUSED_PARAMETER(dev);
|
||||
UNUSED_PARAMETER(dvt);
|
||||
UNUSED_PARAMETER(index);
|
||||
return -1;
|
||||
#else
|
||||
if (!dev || !dvt)
|
||||
return -1;
|
||||
|
||||
|
@ -253,6 +259,7 @@ int_fast32_t v4l2_enum_dv_timing(int_fast32_t dev, struct v4l2_dv_timings *dvt,
|
|||
memcpy(dvt, &iter.timings, sizeof(struct v4l2_dv_timings));
|
||||
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int_fast32_t v4l2_set_dv_timing(int_fast32_t dev, int *timing)
|
||||
|
|
|
@ -41,6 +41,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "v4l2-udev.h"
|
||||
#endif
|
||||
|
||||
/* The new dv timing api was introduced in Linux 3.4
|
||||
* Currently we simply disable dv timings when this is not defined */
|
||||
#ifndef VIDIOC_ENUM_DV_TIMINGS
|
||||
#define V4L2_IN_CAP_DV_TIMINGS 0
|
||||
#endif
|
||||
|
||||
#define V4L2_DATA(voidptr) struct v4l2_data *data = voidptr;
|
||||
|
||||
#define timeval2ns(tv) \
|
||||
|
@ -933,6 +939,9 @@ static void *v4l2_create(obs_data_t *settings, obs_source_t *source)
|
|||
#ifndef V4L2_CAP_DEVICE_CAPS
|
||||
blog(LOG_WARNING, "Plugin built without device caps support!");
|
||||
#endif
|
||||
#ifndef VIDIOC_ENUM_DV_TIMINGS
|
||||
blog(LOG_WARNING, "Plugin built without dv-timing support!");
|
||||
#endif
|
||||
|
||||
v4l2_update(data, settings);
|
||||
|
||||
|
|
Loading…
Reference in New Issue