add myself as maintainer add UCI HTTP authentication Signed-off-by: Roger D <rogerdammit@gmail.com>lilik-openwrt-22.03
@ -0,0 +1,23 @@ | |||||
if PACKAGE_mjpg-streamer | |||||
config MJPG_STREAMER_INPUT_FILE | |||||
bool "Install input file library" | |||||
default y | |||||
config MJPG_STREAMER_INPUT_UVC | |||||
bool "Install input uvc library" | |||||
default y | |||||
config MJPG_STREAMER_OUTPUT_FILE | |||||
bool "Install output file library" | |||||
default y | |||||
config MJPG_STREAMER_OUTPUT_HTTP | |||||
bool "Install output http library" | |||||
default y | |||||
config MJPG_STREAMER_WWW | |||||
bool "Install WWW files" | |||||
default y | |||||
endif |
@ -0,0 +1,75 @@ | |||||
# | |||||
# Copyright (C) 2006-2013 OpenWrt.org | |||||
# | |||||
# 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_REV:=181 | |||||
PKG_VERSION:=r$(PKG_REV) | |||||
PKG_RELEASE:=1 | |||||
PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com> | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | |||||
PKG_SOURCE_URL:=https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer | |||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) | |||||
PKG_SOURCE_VERSION:=$(PKG_REV) | |||||
PKG_SOURCE_PROTO:=svn | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/mjpg-streamer | |||||
SECTION:=multimedia | |||||
CATEGORY:=Multimedia | |||||
TITLE:=MJPG-streamer | |||||
DEPENDS:=+libpthread +libjpeg | |||||
URL:=http://mjpg-streamer.wiki.sourceforge.net/ | |||||
MENU:=1 | |||||
endef | |||||
define Package/mjpg-streamer/description | |||||
Streaming application for Linux-UVC compatible webcams | |||||
endef | |||||
define Package/mjpg-streamer/config | |||||
source "$(SOURCE)/Config.in" | |||||
endef | |||||
EXTRA_CFLAGS += $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS) | |||||
define Package/mjpg-streamer/conffiles | |||||
/etc/config/mjpg-streamer | |||||
endef | |||||
define Package/mjpg-streamer/install | |||||
$(INSTALL_DIR) $(1)/usr/bin | |||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/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 | |||||
$(INSTALL_DIR) $(1)/usr/lib | |||||
ifeq ($(CONFIG_MJPG_STREAMER_INPUT_FILE),y) | |||||
$(CP) $(PKG_BUILD_DIR)/input_file.so $(1)/usr/lib | |||||
endif | |||||
ifeq ($(CONFIG_MJPG_STREAMER_INPUT_UVC),y) | |||||
$(CP) $(PKG_BUILD_DIR)/input_uvc.so $(1)/usr/lib | |||||
endif | |||||
ifeq ($(CONFIG_MJPG_STREAMER_OUTPUT_FILE),y) | |||||
$(CP) $(PKG_BUILD_DIR)/output_file.so $(1)/usr/lib | |||||
endif | |||||
ifeq ($(CONFIG_MJPG_STREAMER_OUTPUT_HTTP),y) | |||||
$(CP) $(PKG_BUILD_DIR)/output_http.so $(1)/usr/lib | |||||
endif | |||||
ifeq ($(CONFIG_MJPG_STREAMER_WWW),y) | |||||
$(INSTALL_DIR) $(1)/www/webcam | |||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/www/* $(1)/www/webcam | |||||
endif | |||||
endef | |||||
$(eval $(call BuildPackage,mjpg-streamer)) |
@ -0,0 +1,11 @@ | |||||
config mjpg-streamer 'core' | |||||
option enabled '0' | |||||
option input 'uvc' | |||||
option output 'http' | |||||
option device '/dev/video0' | |||||
option resolution '640x480' | |||||
option fps '5' | |||||
option www '/www/webcam' | |||||
option port '8080' | |||||
option username 'openwrt' | |||||
option password 'openwrt' |
@ -0,0 +1,10 @@ | |||||
case "$ACTION" in | |||||
add) | |||||
# start process | |||||
/etc/init.d/mjpg-streamer start | |||||
;; | |||||
remove) | |||||
# stop process | |||||
/etc/init.d/mjpg-streamer stop | |||||
;; | |||||
esac |
@ -0,0 +1,87 @@ | |||||
#!/bin/sh /etc/rc.common | |||||
# Copyright (C) 2009-2013 OpenWrt.org | |||||
START=90 | |||||
STOP=10 | |||||
USE_PROCD=1 | |||||
PROG=/usr/bin/mjpg_streamer | |||||
error() { | |||||
echo "${initscript}:" "$@" 1>&2 | |||||
} | |||||
start_instance() { | |||||
local s="$1" | |||||
config_get_bool enabled "$1" 'enabled' 0 | |||||
[ $enabled -eq 0 ] && return | |||||
config_get input "$s" 'input' | |||||
if [ -z "$input" ]; then | |||||
error "in section '$s' option input is missing" | |||||
return 1 | |||||
fi | |||||
config_get output "$s" 'output' | |||||
if [ -z "$output" ]; then | |||||
error "in section '$s' option output is missing" | |||||
return 1 | |||||
fi | |||||
local input_arg | |||||
if [ "x$input" = 'xuvc' ]; then | |||||
input_arg="input_uvc.so" | |||||
config_get device "$s" 'device' | |||||
if [ ! -c "$device" ]; then | |||||
error "device '$device' does not exist" | |||||
return 1 | |||||
fi | |||||
input_arg="${input_arg} --device $device" | |||||
config_get fps "$s" 'fps' | |||||
[ -n "$fps" ] && input_arg="${input_arg} --fps $fps" | |||||
config_get resolution "$s" 'resolution' | |||||
[ -n "$resolution" ] && input_arg="${input_arg} --resolution $resolution" | |||||
fi | |||||
if [ -z "$input_arg" ]; then | |||||
error "unsuported input option '$input' in section '$s'" | |||||
return 1 | |||||
fi | |||||
local output_arg | |||||
if [ "x$output" = 'xhttp' ]; then | |||||
output_arg="output_http.so" | |||||
config_get port "$s" 'port' | |||||
[ -n "$port" ] && output_arg="${output_arg} --port $port" | |||||
config_get www "$s" 'www' | |||||
[ -n "$www" ] && output_arg="${output_arg} --www $www" | |||||
config_get username "$s" 'username' | |||||
config_get password "$s" 'password' | |||||
[ -n "$username" ] && [ -n "$password" ] && output_arg="${output_arg} --credentials $username:$password" | |||||
fi | |||||
if [ -z "$output_arg" ]; then | |||||
error "unsuported output option '$output' in section '$s'" | |||||
return 1 | |||||
fi | |||||
procd_open_instance | |||||
procd_set_param command "$PROG" --input "$input_arg" --output "$output_arg" | |||||
procd_close_instance | |||||
} | |||||
start_service() { | |||||
config_load 'mjpg-streamer' | |||||
config_foreach start_instance 'mjpg-streamer' | |||||
} | |||||
service_triggers() { | |||||
procd_add_reload_trigger 'mjpg-streamer' | |||||
} |