v4l2 - było gnome2

Wieslaw Kierbedz sprawki w wp.pl
Śro, 9 Kwi 2003, 02:18:10 CEST


Wieslaw Kierbedz wrote:
> Artur Flinta wrote:

>>
>>
> Artur, czy już próbowaliście dodawać nowe patche v4l2 z bytesex.org do 
> 2.4.20?


Że "dawno temu", to pamiętam, ale patche (ciągle do 2.4.20) poprawiano 
od tamtego czasu.

A nowych kart na saa7134 i cx23881 przybywa, obydwie kości potrzebują 
v4l2. Stery saa7134 są już stabilne, cx pewnie za parę miesięcy (na 
razie jest wersja alfa). Dlatego drążę, bo fabryczne, nawet nestowe jaja 
ich nie obsłużą.
Sam nauczyłem się korzystać z dobrodziejstwa gcc jeszce na potato (też 
nie tak dawno), ale ci najsurowsi i leniwi mogą tylko wstawić stare bt i 
stare stery do niego. No i wszystkie moduły (lirc, alsa, nvidia itd.) 
muszę zawsze kręcić sam - dlatego drążę.

Tu jest objaśnienie, które podano na video4linux-user-list (ten facet 
wiedział trochę więcej ode mnie, ale też nie znał czystego rozwiązania).

"... The problem is as follows: $(includedir)/linux/time.h defines the
structures timespec/timeval, without actually checking for whether these
are already defined (doh until here) by looking at the POSIX defines
_STRUCT_TIMEVAL ($(includedir)/bits/time.h) or __timespec_defined
($(includedir)/time.h), all included in $(includedir)/sys/time.h, which
is included by $(includedir)/sys/types.h, which is basically included
everywhere (this is all recursive). Conclusion: they're already defined,
posix defines are used to tell us this, but $(includedir)/linux/time.h
doesn't look at them.

This means, basically, that $(includedir)/linux/time.h, is buggered.
Since it only contains structures and types that are needed either in
kernel only or are defined elsewhere (in the posix
$(includedir)/{sys/,bits/,}*.h includes), the best way to solve this (in
my opinion) is just to make $(includedir)/linux/time.h not be used, so
just define that you already included it:

/* your own includes */
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>

/* we don't want linux/time.h */
#define _LINUX_TIME_H 1
#include <linux/videodev2.h>

I use this hack myself... It's the best solution I can think of for now.
It would even be better if $(includedir)/linux/time.h gets fixed, but I
guess this will do for now. ..."

Wiesiek



Więcej informacji o liście dyskusyjnej pld-users-pl