pikvm / ustreamer

µStreamer - Lightweight and fast MJPEG-HTTP streamer
https://pikvm.org
GNU General Public License v3.0
1.63k stars 216 forks source link

can not build ustreamer on ubuntu 20.0.4 #277

Closed Chinajy closed 3 weeks ago

Chinajy commented 3 weeks ago
make apps make[1]: Entering directory '/tmp/ustreamer' make -C src make[2]: Entering directory '/tmp/ustreamer/src' -- CC libs/base64.c -- CC libs/frame.c -- CC libs/logging.c -- CC libs/memsink.c -- CC libs/options.c -- CC libs/unjpeg.c -- CC ustreamer/blank.c -- CC ustreamer/data/blank_jpeg.c -- CC ustreamer/data/index_html.c -- CC ustreamer/device.c -- CC ustreamer/encoder.c -- CC ustreamer/encoders/cpu/encoder.c -- CC ustreamer/encoders/hw/encoder.c -- CC ustreamer/h264/stream.c -- CC ustreamer/http/bev.c -- CC ustreamer/http/mime.c -- CC ustreamer/http/path.c -- CC ustreamer/http/server.c -- CC ustreamer/http/static.c -- CC ustreamer/http/unix.c -- CC ustreamer/http/uri.c -- CC ustreamer/m2m.c -- CC ustreamer/main.c -- CC ustreamer/options.c -- CC ustreamer/stream.c -- CC ustreamer/workers.c -- CC ustreamer/gpio/gpio.c -- CC ustreamer/http/systemd/systemd.c -- CC dump/file.c -- CC dump/main.c == LD ustreamer-dump.bin == LD ustreamer.bin make[2]: Leaving directory '/tmp/ustreamer/src' make[1]: Leaving directory '/tmp/ustreamer' make janus make[1]: Entering directory '/tmp/ustreamer' make -C janus make[2]: Entering directory '/tmp/ustreamer/janus' -- CC src/audio.c -- CC src/client.c -- CC src/config.c -- CC src/memsinkfd.c -- CC src/plugin.c -- CC src/queue.c -- CC src/rtpa.c -- CC src/rtp.c -- CC src/rtpv.c -- CC src/tc358743.c -- CC src/uslibs/base64.c -- CC src/uslibs/frame.c src/client.c: In function ‘_common_thread’: src/client.c:101:5: error: unknown type name ‘janus_plugin_rtp’; did you mean ‘janus_plugin’? 101 janus_plugin_rtp packet = {0}; ^~~~ janus_plugin src/client.c:102:11: error: request for member ‘video’ in something not a structure or union 102 packet.video = rtp->video; ^ src/client.c:103:11: error: request for member ‘buffer’ in something not a structure or union 103 packet.buffer = (char *)rtp->datagram; ^ src/client.c:104:11: error: request for member ‘length’ in something not a structure or union 104 packet.length = rtp->used; ^ src/client.c:105:5: warning: implicit declaration of function ‘janus_plugin_rtp_extensions_reset’ [-Wimplicit-function-declaration] 105 janus_plugin_rtp_extensions_reset(&packet.extensions); ^~~~~~~~~ src/client.c:105:46: error: request for member ‘extensions’ in something not a structure or union 105 janus_plugin_rtp_extensions_reset(&packet.extensions); ^ src/client.c:110:12: error: request for member ‘extensions’ in something not a structure or union 110 packet.extensions.min_delay = 0; ^ src/client.c:111:12: error: request for member ‘extensions’ in something not a structure or union 111 packet.extensions.max_delay = 0; ^ src/client.c:113:44: warning: passing argument 2 of ‘client->gw->relay_rtp’ makes integer from pointer without a cast [-Wint-conversion] 113 client->gw->relay_rtp(client->session, &packet); ^~~
int *

src/client.c:113:44: note: expected ‘int’ but argument is of type ‘int *’ src/client.c:113:5: error: too few arguments to function ‘client->gw->relay_rtp’ 113 | client->gw->relay_rtp(client->session, &packet); | ^~ make[2]: [Makefile:38: build/src/client.o] Error 1 make[2]: Waiting for unfinished jobs.... src/plugin.c:472:78: error: unknown type name ‘janus_plugin_rtp’ 472 | static void _plugin_incoming_rtp(UNUSED janus_plugin_session handle, UNUSED janus_plugin_rtp packet) { | ^~~~ In file included from src/plugin.c:37: src/plugin.c: In function ‘create’: src/plugin.c:500:19: warning: initialization of ‘void ()(janus_plugin_session , int, char , int)’ {aka ‘void ()(struct janus_plugin_session , int, char , int)’} from incompatible pointer type ‘void ()(janus_plugin_session , int )’ {aka ‘void ()(struct janus_plugin_session , int )’} [-Wincompatible-pointer-types] 500 | .incoming_rtp = _plugin_incoming_rtp, | ^~~~~~~~ src/plugin.c:500:19: note: (near initialization for ‘plugin.incoming_rtp’) make[2]: [Makefile:38: build/src/plugin.o] Error 1 make[2]: Leaving directory '/tmp/ustreamer/janus' make[1]: [Makefile:49: janus] Error 2 make[1]: Leaving directory '/tmp/ustreamer' make: *** [Makefile:29: all] Error 2 make apps make[1]: Entering directory '/tmp/ustreamer' make -C src make[2]: Entering directory '/tmp/ustreamer/src' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/tmp/ustreamer/src' make[1]: Leaving directory '/tmp/ustreamer' make -C src install make[1]: Entering directory '/tmp/ustreamer/src' mkdir -p /usr/local/bin install -m755 ustreamer.bin /usr/local/bin/ustreamer install -m755 ustreamer-dump.bin /usr/local/bin/ustreamer-dump make[1]: Leaving directory '/tmp/ustreamer/src' mkdir -p /usr/local/share/man/man1 for man in ustreamer.1 ustreamer-dump.1; do \ install -m644 man/$man /usr/local/share/man/man1/$man; \ gzip -f /usr/local/share/man/man1/$man; \ done cp: cannot stat '/tmp/ustreamer/janus/libjanus_ustreamer.so': No such file or directory

mdevaev commented 3 weeks ago

Janus has broken header files out of box. You need to patch it like this: https://github.com/pikvm/packages/blob/master/packages/janus-gateway-pikvm/PKGBUILD#L62