From f62794a7f00fa24fb323331fb40d8ac1ac80752c Mon Sep 17 00:00:00 2001 From: Roger Date: Tue, 22 Jul 2014 10:15:11 -0500 Subject: [PATCH] add mjpg-streamer add myself as maintainer add UCI HTTP authentication Signed-off-by: Roger D --- multimedia/mjpg-streamer/Config.in | 23 +++++ multimedia/mjpg-streamer/Makefile | 75 ++++++++++++++++ .../mjpg-streamer/files/mjpg-streamer.config | 11 +++ .../mjpg-streamer/files/mjpg-streamer.hotplug | 10 +++ .../mjpg-streamer/files/mjpg-streamer.init | 87 +++++++++++++++++++ 5 files changed, 206 insertions(+) create mode 100644 multimedia/mjpg-streamer/Config.in create mode 100644 multimedia/mjpg-streamer/Makefile create mode 100644 multimedia/mjpg-streamer/files/mjpg-streamer.config create mode 100644 multimedia/mjpg-streamer/files/mjpg-streamer.hotplug create mode 100644 multimedia/mjpg-streamer/files/mjpg-streamer.init diff --git a/multimedia/mjpg-streamer/Config.in b/multimedia/mjpg-streamer/Config.in new file mode 100644 index 000000000..015408546 --- /dev/null +++ b/multimedia/mjpg-streamer/Config.in @@ -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 diff --git a/multimedia/mjpg-streamer/Makefile b/multimedia/mjpg-streamer/Makefile new file mode 100644 index 000000000..1de2460f1 --- /dev/null +++ b/multimedia/mjpg-streamer/Makefile @@ -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 + +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)) diff --git a/multimedia/mjpg-streamer/files/mjpg-streamer.config b/multimedia/mjpg-streamer/files/mjpg-streamer.config new file mode 100644 index 000000000..36bfdbb60 --- /dev/null +++ b/multimedia/mjpg-streamer/files/mjpg-streamer.config @@ -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' diff --git a/multimedia/mjpg-streamer/files/mjpg-streamer.hotplug b/multimedia/mjpg-streamer/files/mjpg-streamer.hotplug new file mode 100644 index 000000000..1443b1735 --- /dev/null +++ b/multimedia/mjpg-streamer/files/mjpg-streamer.hotplug @@ -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 diff --git a/multimedia/mjpg-streamer/files/mjpg-streamer.init b/multimedia/mjpg-streamer/files/mjpg-streamer.init new file mode 100644 index 000000000..eebd4f84a --- /dev/null +++ b/multimedia/mjpg-streamer/files/mjpg-streamer.init @@ -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' +}