From: Roger Date: Tue, 22 Jul 2014 15:15:11 +0000 (-0500) Subject: add mjpg-streamer X-Git-Tag: v14.07~99^2 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=refs%2Fpull%2F114%2Fhead;p=feed%2Fpackages.git add mjpg-streamer add myself as maintainer add UCI HTTP authentication Signed-off-by: Roger D --- diff --git a/multimedia/mjpg-streamer/Config.in b/multimedia/mjpg-streamer/Config.in new file mode 100644 index 0000000000..0154085460 --- /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 0000000000..1de2460f12 --- /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 0000000000..36bfdbb60d --- /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 0000000000..1443b17352 --- /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 0000000000..eebd4f84a7 --- /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' +}