mjpg-streamer.init (2217B)
1 #!/bin/sh /etc/rc.common 2 # Copyright (C) 2009-2014 OpenWrt.org 3 4 START=90 5 STOP=10 6 7 USE_PROCD=1 8 PROG=/usr/bin/mjpg_streamer 9 10 error() { 11 echo "${initscript}:" "$@" 1>&2 12 } 13 14 start_instance() { 15 local s="$1" 16 17 config_get_bool enabled "$1" 'enabled' 0 18 [ $enabled -eq 0 ] && return 19 20 config_get input "$s" 'input' 21 if [ -z "$input" ]; then 22 error "in section '$s' option input is missing" 23 return 1 24 fi 25 26 config_get output "$s" 'output' 27 if [ -z "$output" ]; then 28 error "in section '$s' option output is missing" 29 return 1 30 fi 31 32 local input_arg 33 if [ "x$input" = 'xuvc' ]; then 34 input_arg="input_uvc.so" 35 36 config_get device "$s" 'device' 37 if [ ! -c "$device" ]; then 38 error "device '$device' does not exist" 39 return 1 40 fi 41 input_arg="${input_arg} --device $device" 42 43 config_get fps "$s" 'fps' 44 [ -n "$fps" ] && input_arg="${input_arg} --fps $fps" 45 46 config_get_bool yuv "$s" 'yuv' 0 47 if [ $yuv -ne 0 ]; then 48 input_arg="${input_arg} --yuv" 49 config_get quality "$s" 'quality' 50 [ -n "$quality" ] && input_arg="${input_arg} --quality $quality" 51 fi 52 53 config_get resolution "$s" 'resolution' 54 [ -n "$resolution" ] && input_arg="${input_arg} --resolution $resolution" 55 56 config_get led "$s" 'led' 57 [ -n "$led" ] && input_arg="${input_arg} --led $led" 58 fi 59 60 if [ -z "$input_arg" ]; then 61 error "unsuported input option '$input' in section '$s'" 62 return 1 63 fi 64 65 local output_arg 66 if [ "x$output" = 'xhttp' ]; then 67 output_arg="output_http.so" 68 69 config_get port "$s" 'port' 70 [ -n "$port" ] && output_arg="${output_arg} --port $port" 71 72 config_get www "$s" 'www' 73 [ -n "$www" ] && output_arg="${output_arg} --www $www" 74 75 config_get username "$s" 'username' 76 config_get password "$s" 'password' 77 [ -n "$username" ] && [ -n "$password" ] && output_arg="${output_arg} --credentials $username:$password" 78 fi 79 80 if [ -z "$output_arg" ]; then 81 error "unsuported output option '$output' in section '$s'" 82 return 1 83 fi 84 85 procd_open_instance 86 procd_set_param command "$PROG" --input "$input_arg" --output "$output_arg" 87 procd_close_instance 88 } 89 90 start_service() { 91 config_load 'mjpg-streamer' 92 config_foreach start_instance 'mjpg-streamer' 93 } 94 95 service_triggers() { 96 procd_add_reload_trigger 'mjpg-streamer' 97 }