mirror of
https://github.com/openwrt/packages.git
synced 2026-04-15 10:51:55 +00:00
With mjpg-streamer pending removal [1], it would be nice if we add a compatible replacement which is under active development. ustreamer offers a better performance, especially when the camera supports MJPEG encoding in hardware. The package already includes OpenWRT support files ./pkg/openwrt but they needed heavy editing, so it is more efficient to copy the scripts and configuration, instead of using patches. Notable changes: While the init.d script can run in the background when no camera is connected, it is more efficient to indicate no active instances. A hotplug script is introduced to start and stop the service when cameras are added or removed. If the configured format or encoding are unsupported, a compatible alternative is automatically selected, so I changed the default configuration to use MJPEG encoding in hardware for better performance. HACKS: MAKE_FLAGS += WITH_SETPROCTITLE=0 is added to workaround the following linker error: undefined reference to setproctitle_init This symbol is defined in libbsd, however adding the build dependency does not resolve the error, because -lbsd is added conditionally, only when uname -s contains linux. This is unreliable and fails when cross-compiling on a macOS host. An upstream fix is needed. An alternative is to use PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip=2 -xf $(DL_DIR)/$(PKG_SOURCE) however this modifies the directory structure, so patches would need path editing to maintain upstream compatibility. TODO: luci-app-mjpg-streamer which is also pending removal [2] is able to open the HTTP stream from ustreamer. It would be nice to create luci-app-ustreamer based on that. [1] https://github.com/openwrt/packages/pull/28344 [2] https://github.com/openwrt/luci/pull/8221 Signed-off-by: Georgi Valkov <gvalkov@gmail.com>