+++ /dev/null
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=mjpg-streamer
-PKG_VERSION:=1.0.0
-PKG_RELEASE:=7
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://codeload.github.com/jacksonliam/mjpg-streamer/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=31850cd533b0290640cbdf4da44f7a774bfba050647cb0a0c84a435e90b08598
-
-PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>, \
- Ted Hess <thess@kitschensync.net>
-PKG_LICENSE:=GPL-2.0-or-later
-PKG_LICENSE_FILES:=LICENSE
-
-PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip=2 -xf $(DL_DIR)/$(PKG_SOURCE)
-PKG_BUILD_DEPENDS:=MJPG_STREAMER_V4L2:v4l-utils zmq protobuf-c/host
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Package/mjpg-streamer
- SECTION:=multimedia
- CATEGORY:=Multimedia
- TITLE:=MJPG-streamer
- DEPENDS:=+libpthread +libjpeg +MJPG_STREAMER_V4L2:libv4l
- URL:=https://github.com/jacksonliam/mjpg-streamer
-endef
-
-define Package/mjpg-streamer/Default/description
- Streaming application for Linux-UVC compatible webcams
-endef
-
-define Package/mjpg-streamer/description
-$(call Package/mjpg-streamer/Default/description)
-endef
-
-define Package/mjpg-streamer/conffiles
-/etc/config/mjpg-streamer
-endef
-
-define Package/mjpg-streamer/config
-if PACKAGE_mjpg-streamer-input-uvc
-
-config MJPG_STREAMER_V4L2
- bool "Build input_uvc with libv4l2 (camera controls)"
- default n
- select PACKAGE_libv4l
-endif
-endef
-
-define Package/mjpg-streamer/Default
- SECTION:=multimedia
- CATEGORY:=Multimedia
- TITLE:=MJPG-streamer
- URL:=https://github.com/jacksonliam/mjpg-streamer
- DEPENDS:=mjpg-streamer
-endef
-
-define Package/mjpg-streamer-input-file
-$(call Package/mjpg-streamer/Default)
- TITLE+= (file input)
-endef
-
-define Package/mjpg-streamer-input-file/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides the file input plugin.
-endef
-
-define Package/mjpg-streamer-input-uvc
-$(call Package/mjpg-streamer/Default)
- TITLE+= (UVC input)
-endef
-
-define Package/mjpg-streamer-input-uvc/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides the UVC input plugin.
-endef
-
-define Package/mjpg-streamer-input-http
-$(call Package/mjpg-streamer/Default)
- TITLE+= (HTTP input)
-endef
-
-define Package/mjpg-streamer-input-http/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides the http input plugin.
-endef
-
-define Package/mjpg-streamer-output-rtsp
-$(call Package/mjpg-streamer/Default)
- TITLE+= (RTSP output)
-endef
-
-define Package/mjpg-streamer-output-rtsp/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides the RTSP output plugin.
-endef
-
-define Package/mjpg-streamer-output-udp
-$(call Package/mjpg-streamer/Default)
- TITLE+= (UDP output)
-endef
-
-define Package/mjpg-streamer-output-udp/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides the UDP output plugin.
-endef
-
-define Package/mjpg-streamer-output-file
-$(call Package/mjpg-streamer/Default)
- TITLE+= (file output)
-endef
-
-define Package/mjpg-streamer-output-file/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides the file output plugin.
-endef
-
-define Package/mjpg-streamer-output-http
-$(call Package/mjpg-streamer/Default)
- TITLE+= (HTTP output)
-endef
-
-define Package/mjpg-streamer-output-http/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides the HTTP output plugin.
-endef
-
-define Package/mjpg-streamer-output-zmq
-$(call Package/mjpg-streamer/Default)
- TITLE+= (zmq output)
- DEPENDS+= +libzmq +libprotobuf-c
-endef
-
-define Package/mjpg-streamer-output-zmq/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides the ZeroMQ output plugin.
-endef
-
-define Package/mjpg-streamer-www
-$(call Package/mjpg-streamer/Default)
- TITLE+= (full www)
- CONFLICTS:=mjpg-streamer-www-simple
-endef
-
-define Package/mjpg-streamer-www/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides full version of the web content.
-Includes cambozola applet.
-endef
-
-define Package/mjpg-streamer-www-simple
-$(call Package/mjpg-streamer/Default)
- TITLE+= (simple www)
-endef
-
-define Package/mjpg-streamer-www-simple/description
-$(call Package/mjpg-streamer/Default/description)
-
-This package provides simple version of the web content.
-endef
-
-CMAKE_OPTIONS += -DCMAKE_SKIP_RPATH=FALSE
-
-CAMBOZOLA:=cambozola-0.936.tar.gz
-
-# Distribution URL doesn't always have the correct version
-# Using the OpenWrt mirror provides a stable version
-# orig-URL:=http://www.andywilcock.com/code/cambozola
-define Download/cambozola
- URL:=https://sources.openwrt.org/
- FILE:=$(CAMBOZOLA)
- HASH:=4e4e92d95673edd051e6b4d36bed8c5328873f5fc374073760b457d4be33415b
-endef
-
-# redefine prepare to extract to our build dir
-# apply patches
-define Build/Prepare
- $(Build/Prepare/Default)
- # Fetch latest cambozola that works with latest Java(s)
- # Yes, I know this is ugly
- ifneq ($(CONFIG_PACKAGE_mjpg-streamer-www),)
- $(eval $(call Download,cambozola))
- $(TAR) -xf $(DL_DIR)/$(CAMBOZOLA) --strip=2 --wildcards \
- -C $(PKG_BUILD_DIR)/www */dist/cambozola.jar
- endif
-endef
-
-define Build/Configure
- $(RM) $(PKG_BUILD_DIR)/plugins/input_uvc/uvcvideo.h
-$(call Build/Configure/Default)
-endef
-
-TARGET_LDFLAGS+= -ljpeg
-
-ifeq ($(CONFIG_MJPG_STREAMER_V4L2),y)
- TARGET_CFLAGS+= -DUSE_LIBV4L2
- TARGET_LDFLAGS+= -lv4l2
-endif
-
-define Package/mjpg-streamer/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mjpg_streamer $(1)/usr/bin/
- $(INSTALL_DIR) $(1)/etc/config
- $(CP) ./files/mjpg-streamer.config $(1)/etc/config/mjpg-streamer
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/mjpg-streamer.init $(1)/etc/init.d/mjpg-streamer
- $(INSTALL_DIR) $(1)/etc/hotplug.d/usb
- $(INSTALL_DATA) ./files/mjpg-streamer.hotplug $(1)/etc/hotplug.d/usb/20-mjpg-streamer
-endef
-
-define Package/mjpg-streamer-input-file/install
- $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_file.so $(1)/usr/lib/mjpg-streamer
-endef
-
-define Package/mjpg-streamer-input-uvc/install
- $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_uvc.so $(1)/usr/lib/mjpg-streamer
-endef
-
-define Package/mjpg-streamer-input-http/install
- $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/input_http.so $(1)/usr/lib/mjpg-streamer
-endef
-
-define Package/mjpg-streamer-output-rtsp/install
- $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_rtsp.so $(1)/usr/lib/mjpg-streamer
-endef
-
-define Package/mjpg-streamer-output-udp/install
- $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_udp.so $(1)/usr/lib/mjpg-streamer
-endef
-
-define Package/mjpg-streamer-output-file/install
- $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_file.so $(1)/usr/lib/mjpg-streamer
-endef
-
-define Package/mjpg-streamer-output-http/install
- $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_http.so $(1)/usr/lib/mjpg-streamer
-endef
-
-define Package/mjpg-streamer-output-zmq/install
- $(INSTALL_DIR) $(1)/usr/lib/mjpg-streamer
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/mjpg-streamer/output_zmqserver.so $(1)/usr/lib/mjpg-streamer
-endef
-
-define Package/mjpg-streamer-www/install
- $(INSTALL_DIR) $(1)/www/webcam
- $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mjpg-streamer/www/* $(1)/www/webcam
-endef
-
-define Package/mjpg-streamer-www-simple/install
- $(INSTALL_DIR) $(1)/www/webcam
- $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mjpg-streamer/www/stream_simple.html $(1)/www/webcam/index.html
-endef
-
-$(eval $(call BuildPackage,mjpg-streamer))
-$(eval $(call BuildPackage,mjpg-streamer-input-file))
-$(eval $(call BuildPackage,mjpg-streamer-input-uvc))
-$(eval $(call BuildPackage,mjpg-streamer-input-http))
-$(eval $(call BuildPackage,mjpg-streamer-output-rtsp))
-$(eval $(call BuildPackage,mjpg-streamer-output-file))
-$(eval $(call BuildPackage,mjpg-streamer-output-http))
-$(eval $(call BuildPackage,mjpg-streamer-output-zmq))
-$(eval $(call BuildPackage,mjpg-streamer-www))
-$(eval $(call BuildPackage,mjpg-streamer-www-simple))
+++ /dev/null
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2009-2014 OpenWrt.org
-
-START=90
-STOP=10
-
-USE_PROCD=1
-PROG=/usr/bin/mjpg_streamer
-
-error() {
- echo "${initscript}:" "$@" 1>&2
-}
-
-start_instance() {
- local s="$1"
-
- local enabled
- config_get_bool enabled "$1" 'enabled' 0
- [ "$enabled" -gt 0 ] || return
-
- local input
- config_get input "$s" 'input'
- [ -z "$input" ] && {
- error "in section '$s' option input is missing"
- return 1
- }
-
- local output
- config_get output "$s" 'output'
- [ -z "$output" ] && {
- error "in section '$s' option output is missing"
- return 1
- }
-
- local input_arg
- [ "x$input" = 'xuvc' ] && {
- input_arg="input_uvc.so"
-
- local device
- config_get device "$s" 'device'
- [ -c "$device" ] || {
- error "device '$device' does not exist"
- return 1
- }
- input_arg="${input_arg} --device $device"
-
- local fps
- config_get fps "$s" 'fps'
- [ -n "$fps" ] && input_arg="${input_arg} --fps $fps"
-
- local yuv
- config_get_bool yuv "$s" 'yuv' 0
- [ "$yuv" -ne 0 ] && {
- input_arg="${input_arg} --yuv"
- local quality
- config_get quality "$s" 'quality'
- [ -n "$quality" ] && input_arg="${input_arg} --quality $quality"
- }
-
- local resolution
- config_get resolution "$s" 'resolution'
- [ -n "$resolution" ] && input_arg="${input_arg} --resolution $resolution"
-
- local led
- config_get led "$s" 'led'
- [ -n "$led" ] && input_arg="${input_arg} --led $led"
- }
-
- [ -z "$input_arg" ] && {
- error "unsuported input option '$input' in section '$s'"
- return 1
- }
-
- local output_arg
- [ "x$output" = 'xhttp' ] && {
- output_arg="output_http.so"
-
- local port
- config_get port "$s" 'port'
- [ -n "$port" ] && output_arg="${output_arg} --port $port"
-
- local listen_ip
- config_get listen_ip "$s" 'listen_ip'
- [ -n "$listen_ip" ] && output_arg="${output_arg} --listen $listen_ip"
-
- local www
- config_get www "$s" 'www'
- [ -n "$www" ] && output_arg="${output_arg} --www $www"
-
- local username
- config_get username "$s" 'username'
- local password
- config_get password "$s" 'password'
- [ -n "$username" ] && [ -n "$password" ] && output_arg="${output_arg} --credentials $username:$password"
- }
-
- [ "x$output" = 'xfile' ] && {
- output_arg="output_file.so"
-
- local folder
- config_get folder "$s" 'folder'
- [ -n "$folder" ] && output_arg="${output_arg} --folder $folder"
-
- local delay
- config_get delay "$s" 'delay'
- [ -n "$delay" ] && output_arg="${output_arg} --delay $delay"
-
- local link
- config_get link "$s" 'link'
- [ -n "$link" ] && output_arg="${output_arg} --link $link"
-
- local ringbuffer
- config_get ringbuffer "$s" 'ringbuffer'
- [ -n "$ringbuffer" ] && output_arg="${output_arg} --size $ringbuffer"
-
- local exceed
- config_get exceed "$s" 'exceed'
- [ -n "$exceed" ] && output_arg="${output_arg} --exceed $exceed"
-
- local command
- config_get command "$s" 'command'
- [ -n "$command" ] && output_arg="${output_arg} --command $command"
-
- }
-
- [ -z "$output_arg" ] && {
- error "unsuported output option '$output' in section '$s'"
- return 1
- }
-
- procd_open_instance
- procd_set_param command "$PROG" --input "$input_arg" --output "$output_arg"
- [ "x$output" = 'xhttp' ] && procd_add_mdns "http" "tcp" "$port" "daemon=mjpg-streamer"
- procd_close_instance
-}
-
-start_service() {
- config_load 'mjpg-streamer'
- config_foreach start_instance 'mjpg-streamer'
-}
-
-service_triggers() {
- procd_add_reload_trigger 'mjpg-streamer'
-}