[Armadillo:06052] Re: mjpg-streamerについて

mizo email@hidden
2010年 11月 1日 (月) 10:56:52 JST


溝渕です。

Aspect wrote:
> お世話になります。 斉藤を申します。
> Armadillo-240
> linux-2.6.26-at4-ep93xx-port-pre2
> atmark-dist v20100603
> 
> v20100603にはmjpg-streamerが入っているみたいなので、menuconfigをチェック
> してmake allしてみましたが
> 以下のエラーがでました。
> 
> make -C plugins/input_gspcav1 all
> make[4]: ディレクトリ
> `/home/atmark/atmark-dist/user/mjpg-streamer/mjpg-streamer.r94/plugins/input_gspcav1'
> に入ります
> arm-linux-gcc -c -O2 -DLINUX -D_GNU_SOURCE -Wall -O2 -DLINUX
> -D_GNU_SOURCE -Wall -shared -fPIC -o spcav4l.lo spcav4l.c
> arm-linux-gcc -c -O2 -DLINUX -D_GNU_SOURCE -Wall -O2 -DLINUX
> -D_GNU_SOURCE -Wall -shared -fPIC -o utils.lo utils.c
> arm-linux-gcc -c -O2 -DLINUX -D_GNU_SOURCE -Wall -O2 -DLINUX
> -D_GNU_SOURCE -Wall -shared -fPIC -o encoder.lo encoder.c
> encoder.c: In function ‘read_400_format’:
> encoder.c:392: warning: operation on ‘Y1_Ptr’ may be undefined
> encoder.c:399: warning: operation on ‘Y1_Ptr’ may be undefined
> encoder.c: In function ‘read_420_format’:
> encoder.c:476: warning: operation on ‘Y1_Ptr’ may be undefined
> encoder.c:477: warning: operation on ‘Y1Ptr’ may be undefined
> encoder.c:493: warning: operation on ‘Y2_Ptr’ may be undefined
>>
これはエラーの原因ではありません。ビルドログに書いてある通りwarning(警
告)です。以下のようなソースをビルドすると出るのですが、ビルド自体は完了
していることが確認できると思います。

*** hoge.c ****************
int main(void)
{
	char *a;
	char b[] = "ab";

	a = b;
	a = a++;

	return 0;
}
***************************

[atde]$ arm-linux-gcc -Wall hoge.c -o hoge
hoge.c: In function ‘main’:
hoge.c:7: warning: operation on ‘a’ may be undefined
[atde]$ ls
hoge	hoge.c

> 対象箇所は
> 377 static void
> 378 read_400_format (JPEG_ENCODER_STRUCTURE * jpeg_encoder_structure,
> 379 UINT8 * input_ptr)
> 380 {
> 381 INT32 i, j;
> 382 INT16 * Y1_Ptr = Y1;
> 383 UINT16 rows = jpeg_encoder_structure->rows;
> 384 UINT16 cols = jpeg_encoder_structure->cols;
> 385 UINT16 incr = jpeg_encoder_structure->incr;
> 386 for (i = rows; i > 0; i--)
> 387
> 388 {
> 389 for (j = cols; j > 0; j--)
> 390 *Y1_Ptr++ = *input_ptr++ - 128;
> 391 for (j = 8 - cols; j > 0; j--)
> 392 *Y1_Ptr++ = *(Y1_Ptr - 1); <--ココ
> 393 input_ptr += incr;
> 394 }
> 395 for (i = 8 - rows; i > 0; i--)
> 396
> 397 {
> 398 for (j = 8; j > 0; j--)
> 399 *Y1_Ptr++ = *(Y1_Ptr - 8);
> 400 }
> 401 }

実際にエラーとなっているのは以下の箇所です。

make[4]: ディレクトリ
`/usr/backup/project/a220/mjpg_streamer/atmark-dist-20100603/user/mjpg-streamer/mjpg-streamer.r94/plugins/input_file'
に入ります
arm-linux-gcc  -O2 -DLINUX -D_GNU_SOURCE -Wall -O2 -DLINUX -D_GNU_SOURCE
-Wall -shared -fPIC  -o input_file.so input_file.c
input_file.c:30:25: error: sys/inotify.h: そのようなファイルやディレクト
リはありません

sys/inotify.hは、libc6に含まれていますが、atde2のlibc6のバージョンが古い
ため含まれていないためエラーになっています。

簡単に動作させるのであれば、以下のHOWTOにあるように、古いバージョンの
mjpg_streamerをビルドするのが良いと思います。

[HOWTO: UVC対応Webカメラを使用してストリーミング配信をおこなう]
http://armadillo.atmark-techno.com/howto/webcam-streaming

[atde]$ svn checkout
https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer
mjpg-streamer -r 69




armadillo メーリングリストの案内