summaryrefslogtreecommitdiff
path: root/media-video/mjpg-streamer/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /media-video/mjpg-streamer/files
reinit the tree, so we can have metadata
Diffstat (limited to 'media-video/mjpg-streamer/files')
-rw-r--r--media-video/mjpg-streamer/files/0_pre20120421-make-var-instead-of-cmd.patch118
-rw-r--r--media-video/mjpg-streamer/files/0_pre20120621-make-var-instead-of-cmd.patch118
-rw-r--r--media-video/mjpg-streamer/files/0_pre20120621-to-work-with-kernel-3.18.patch74
-rw-r--r--media-video/mjpg-streamer/files/mjpg-streamer.confd21
-rw-r--r--media-video/mjpg-streamer/files/mjpg-streamer.initd47
5 files changed, 378 insertions, 0 deletions
diff --git a/media-video/mjpg-streamer/files/0_pre20120421-make-var-instead-of-cmd.patch b/media-video/mjpg-streamer/files/0_pre20120421-make-var-instead-of-cmd.patch
new file mode 100644
index 000000000000..98d89c555e04
--- /dev/null
+++ b/media-video/mjpg-streamer/files/0_pre20120421-make-var-instead-of-cmd.patch
@@ -0,0 +1,118 @@
+Index: Makefile
+===================================================================
+--- Makefile (revision 150)
++++ Makefile (working copy)
+@@ -63,64 +63,64 @@
+ chmod 755 $(APP_BINARY)
+
+ output_autofocus.so: mjpg_streamer.h utils.h
+- make -C plugins/output_autofocus all
++ $(MAKE) -C plugins/output_autofocus all
+ cp plugins/output_autofocus/output_autofocus.so .
+
+ input_testpicture.so: mjpg_streamer.h utils.h
+- make -C plugins/input_testpicture all
++ $(MAKE) -C plugins/input_testpicture all
+ cp plugins/input_testpicture/input_testpicture.so .
+
+
+ ifeq ($(USE_LIBV4L2),true)
+ input_uvc.so: mjpg_streamer.h utils.h
+- make -C plugins/input_uvc USE_LIBV4L2=true all
++ $(MAKE) -C plugins/input_uvc USE_LIBV4L2=true all
+ cp plugins/input_uvc/input_uvc.so .
+ else
+ input_uvc.so: mjpg_streamer.h utils.h
+- make -C plugins/input_uvc all
++ $(MAKE) -C plugins/input_uvc all
+ cp plugins/input_uvc/input_uvc.so .
+ endif
+
+ input_control.so: mjpg_streamer.h utils.h
+- make -C plugins/input_control all
++ $(MAKE) -C plugins/input_control all
+ cp plugins/input_control/input_control.so .
+
+ output_file.so: mjpg_streamer.h utils.h
+- make -C plugins/output_file all
++ $(MAKE) -C plugins/output_file all
+ cp plugins/output_file/output_file.so .
+
+ ifeq ($(WXP_COMPAT),true)
+ output_http.so: mjpg_streamer.h utils.h
+- make -C plugins/output_http -DWXP_COMPAT all
++ $(MAKE) -C plugins/output_http -DWXP_COMPAT all
+ cp plugins/output_http/output_http.so .
+ else
+ output_http.so: mjpg_streamer.h utils.h
+- make -C plugins/output_http all
++ $(MAKE) -C plugins/output_http all
+ cp plugins/output_http/output_http.so .
+ endif
+
+ output_udp.so: mjpg_streamer.h utils.h
+- make -C plugins/output_udp all
++ $(MAKE) -C plugins/output_udp all
+ cp plugins/output_udp/output_udp.so .
+
+ input_gspcav1.so: mjpg_streamer.h utils.h
+- make -C plugins/input_gspcav1 all
++ $(MAKE) -C plugins/input_gspcav1 all
+ cp plugins/input_gspcav1/input_gspcav1.so .
+
+ input_file.so: mjpg_streamer.h utils.h
+- make -C plugins/input_file all
++ $(MAKE) -C plugins/input_file all
+ cp plugins/input_file/input_file.so .
+
+ output_rtsp.so: mjpg_streamer.h utils.h
+- make -C plugins/output_rtsp all
++ $(MAKE) -C plugins/output_rtsp all
+ cp plugins/output_rtsp/output_rtsp.so .
+
+ output_ptp2.so: mjpg_streamer.h utils.h
+- make -C plugins/input_ptp2 all
++ $(MAKE) -C plugins/input_ptp2 all
+ cp plugins/input_ptp2/input_ptp2.so .
+
+ #input_http.so: mjpg_streamer.h utils.h
+-# make -C plugins/input_http all
++# $(MAKE) -C plugins/input_http all
+ # cp plugins/input_http/input_http.so .
+
+ # The viewer plugin requires the SDL library for compilation
+@@ -129,22 +129,22 @@
+ # execute the following command:
+ # make output_viewer.so
+ output_viewer.so: mjpg_streamer.h utils.h
+- make -C plugins/output_viewer all
++ $(MAKE) -C plugins/output_viewer all
+ cp plugins/output_viewer/output_viewer.so .
+
+ # cleanup
+ clean:
+- make -C plugins/input_uvc $@
+- make -C plugins/input_testpicture $@
+- make -C plugins/output_file $@
+- make -C plugins/output_http $@
+- make -C plugins/output_udp $@
+- make -C plugins/output_autofocus $@
+- make -C plugins/input_gspcav1 $@
+- make -C plugins/output_viewer $@
+- make -C plugins/input_control $@
+- make -C plugins/output_rtsp $@
+-# make -C plugins/input_http $@
++ $(MAKE) -C plugins/input_uvc $@
++ $(MAKE) -C plugins/input_testpicture $@
++ $(MAKE) -C plugins/output_file $@
++ $(MAKE) -C plugins/output_http $@
++ $(MAKE) -C plugins/output_udp $@
++ $(MAKE) -C plugins/output_autofocus $@
++ $(MAKE) -C plugins/input_gspcav1 $@
++ $(MAKE) -C plugins/output_viewer $@
++ $(MAKE) -C plugins/input_control $@
++ $(MAKE) -C plugins/output_rtsp $@
++# $(MAKE) -C plugins/input_http $@
+ rm -f *.a *.o $(APP_BINARY) core *~ *.so *.lo
+
+ # useful to make a backup "make tgz"
diff --git a/media-video/mjpg-streamer/files/0_pre20120621-make-var-instead-of-cmd.patch b/media-video/mjpg-streamer/files/0_pre20120621-make-var-instead-of-cmd.patch
new file mode 100644
index 000000000000..98d89c555e04
--- /dev/null
+++ b/media-video/mjpg-streamer/files/0_pre20120621-make-var-instead-of-cmd.patch
@@ -0,0 +1,118 @@
+Index: Makefile
+===================================================================
+--- Makefile (revision 150)
++++ Makefile (working copy)
+@@ -63,64 +63,64 @@
+ chmod 755 $(APP_BINARY)
+
+ output_autofocus.so: mjpg_streamer.h utils.h
+- make -C plugins/output_autofocus all
++ $(MAKE) -C plugins/output_autofocus all
+ cp plugins/output_autofocus/output_autofocus.so .
+
+ input_testpicture.so: mjpg_streamer.h utils.h
+- make -C plugins/input_testpicture all
++ $(MAKE) -C plugins/input_testpicture all
+ cp plugins/input_testpicture/input_testpicture.so .
+
+
+ ifeq ($(USE_LIBV4L2),true)
+ input_uvc.so: mjpg_streamer.h utils.h
+- make -C plugins/input_uvc USE_LIBV4L2=true all
++ $(MAKE) -C plugins/input_uvc USE_LIBV4L2=true all
+ cp plugins/input_uvc/input_uvc.so .
+ else
+ input_uvc.so: mjpg_streamer.h utils.h
+- make -C plugins/input_uvc all
++ $(MAKE) -C plugins/input_uvc all
+ cp plugins/input_uvc/input_uvc.so .
+ endif
+
+ input_control.so: mjpg_streamer.h utils.h
+- make -C plugins/input_control all
++ $(MAKE) -C plugins/input_control all
+ cp plugins/input_control/input_control.so .
+
+ output_file.so: mjpg_streamer.h utils.h
+- make -C plugins/output_file all
++ $(MAKE) -C plugins/output_file all
+ cp plugins/output_file/output_file.so .
+
+ ifeq ($(WXP_COMPAT),true)
+ output_http.so: mjpg_streamer.h utils.h
+- make -C plugins/output_http -DWXP_COMPAT all
++ $(MAKE) -C plugins/output_http -DWXP_COMPAT all
+ cp plugins/output_http/output_http.so .
+ else
+ output_http.so: mjpg_streamer.h utils.h
+- make -C plugins/output_http all
++ $(MAKE) -C plugins/output_http all
+ cp plugins/output_http/output_http.so .
+ endif
+
+ output_udp.so: mjpg_streamer.h utils.h
+- make -C plugins/output_udp all
++ $(MAKE) -C plugins/output_udp all
+ cp plugins/output_udp/output_udp.so .
+
+ input_gspcav1.so: mjpg_streamer.h utils.h
+- make -C plugins/input_gspcav1 all
++ $(MAKE) -C plugins/input_gspcav1 all
+ cp plugins/input_gspcav1/input_gspcav1.so .
+
+ input_file.so: mjpg_streamer.h utils.h
+- make -C plugins/input_file all
++ $(MAKE) -C plugins/input_file all
+ cp plugins/input_file/input_file.so .
+
+ output_rtsp.so: mjpg_streamer.h utils.h
+- make -C plugins/output_rtsp all
++ $(MAKE) -C plugins/output_rtsp all
+ cp plugins/output_rtsp/output_rtsp.so .
+
+ output_ptp2.so: mjpg_streamer.h utils.h
+- make -C plugins/input_ptp2 all
++ $(MAKE) -C plugins/input_ptp2 all
+ cp plugins/input_ptp2/input_ptp2.so .
+
+ #input_http.so: mjpg_streamer.h utils.h
+-# make -C plugins/input_http all
++# $(MAKE) -C plugins/input_http all
+ # cp plugins/input_http/input_http.so .
+
+ # The viewer plugin requires the SDL library for compilation
+@@ -129,22 +129,22 @@
+ # execute the following command:
+ # make output_viewer.so
+ output_viewer.so: mjpg_streamer.h utils.h
+- make -C plugins/output_viewer all
++ $(MAKE) -C plugins/output_viewer all
+ cp plugins/output_viewer/output_viewer.so .
+
+ # cleanup
+ clean:
+- make -C plugins/input_uvc $@
+- make -C plugins/input_testpicture $@
+- make -C plugins/output_file $@
+- make -C plugins/output_http $@
+- make -C plugins/output_udp $@
+- make -C plugins/output_autofocus $@
+- make -C plugins/input_gspcav1 $@
+- make -C plugins/output_viewer $@
+- make -C plugins/input_control $@
+- make -C plugins/output_rtsp $@
+-# make -C plugins/input_http $@
++ $(MAKE) -C plugins/input_uvc $@
++ $(MAKE) -C plugins/input_testpicture $@
++ $(MAKE) -C plugins/output_file $@
++ $(MAKE) -C plugins/output_http $@
++ $(MAKE) -C plugins/output_udp $@
++ $(MAKE) -C plugins/output_autofocus $@
++ $(MAKE) -C plugins/input_gspcav1 $@
++ $(MAKE) -C plugins/output_viewer $@
++ $(MAKE) -C plugins/input_control $@
++ $(MAKE) -C plugins/output_rtsp $@
++# $(MAKE) -C plugins/input_http $@
+ rm -f *.a *.o $(APP_BINARY) core *~ *.so *.lo
+
+ # useful to make a backup "make tgz"
diff --git a/media-video/mjpg-streamer/files/0_pre20120621-to-work-with-kernel-3.18.patch b/media-video/mjpg-streamer/files/0_pre20120621-to-work-with-kernel-3.18.patch
new file mode 100644
index 000000000000..5f16f4ab3f45
--- /dev/null
+++ b/media-video/mjpg-streamer/files/0_pre20120621-to-work-with-kernel-3.18.patch
@@ -0,0 +1,74 @@
+From 03796a1d930212aea460405b86cd41bea8fa5150 Mon Sep 17 00:00:00 2001
+From: Eric Lee <saintgimp@hotmail.com>
+Date: Thu, 26 Feb 2015 19:31:41 -0800
+Subject: [PATCH] Fix mjpg-streamer to work with kernel 3.18
+
+I didn't create this fix, it was originally posted to http://www.raspberrypi.org/forums/viewtopic.php?f=28&t=97983&p=681259. @koosvriezen tried to create a pull request #3 but made kind of a hash of it, so this is the same fix only a proper pull request.
+---
+ mjpg-streamer/plugins/input_uvc/input_uvc.c | 8 +++++---
+ mjpg-streamer/plugins/input_uvc/v4l2uvc.c | 2 ++
+ mjpg-streamer/plugins/input_uvc/v4l2uvc.h | 3 +++
+ 3 files changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/mjpg-streamer/plugins/input_uvc/input_uvc.c b/mjpg-streamer/plugins/input_uvc/input_uvc.c
+index c0b2d10..ef264e9 100644
+--- a/mjpg-streamer/plugins/input_uvc/input_uvc.c
++++ b/mjpg-streamer/plugins/input_uvc/input_uvc.c
+@@ -405,9 +405,13 @@ void *cam_thread(void *arg)
+ if(pcontext->videoIn->formatIn == V4L2_PIX_FMT_YUYV) {
+ DBG("compressing frame from input: %d\n", (int)pcontext->id);
+ pglobal->in[pcontext->id].size = compress_yuyv_to_jpeg(pcontext->videoIn, pglobal->in[pcontext->id].buf, pcontext->videoIn->framesizeIn, gquality);
++ /* copy this frame's timestamp to user space */
++ pglobal->in[pcontext->id].timestamp = pcontext->videoIn->buf.timestamp;
+ } else {
+ DBG("copying frame from input: %d\n", (int)pcontext->id);
+- pglobal->in[pcontext->id].size = memcpy_picture(pglobal->in[pcontext->id].buf, pcontext->videoIn->tmpbuffer, pcontext->videoIn->buf.bytesused);
++ pglobal->in[pcontext->id].size = memcpy_picture(pglobal->in[pcontext->id].buf, pcontext->videoIn->tmpbuffer, pcontext->videoIn->tmpbytesused);
++ /* copy this frame's timestamp to user space */
++ pglobal->in[pcontext->id].timestamp = pcontext->videoIn->tmptimestamp;
+ }
+
+ #if 0
+@@ -418,8 +422,6 @@ void *cam_thread(void *arg)
+ prev_size = global->size;
+ #endif
+
+- /* copy this frame's timestamp to user space */
+- pglobal->in[pcontext->id].timestamp = pcontext->videoIn->buf.timestamp;
+
+ /* signal fresh_frame */
+ pthread_cond_broadcast(&pglobal->in[pcontext->id].db_update);
+diff --git a/mjpg-streamer/plugins/input_uvc/v4l2uvc.c b/mjpg-streamer/plugins/input_uvc/v4l2uvc.c
+index 48fd189..329233b 100644
+--- a/mjpg-streamer/plugins/input_uvc/v4l2uvc.c
++++ b/mjpg-streamer/plugins/input_uvc/v4l2uvc.c
+@@ -450,6 +450,8 @@ int uvcGrab(struct vdIn *vd)
+ */
+
+ memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], vd->buf.bytesused);
++ vd->tmpbytesused = vd->buf.bytesused;
++ vd->tmptimestamp = vd->buf.timestamp;
+
+ if(debug)
+ fprintf(stderr, "bytes in used %d \n", vd->buf.bytesused);
+diff --git a/mjpg-streamer/plugins/input_uvc/v4l2uvc.h b/mjpg-streamer/plugins/input_uvc/v4l2uvc.h
+index d5296fc..0e3f99f 100644
+--- a/mjpg-streamer/plugins/input_uvc/v4l2uvc.h
++++ b/mjpg-streamer/plugins/input_uvc/v4l2uvc.h
+@@ -28,6 +28,7 @@
+
+
+ #include <stdio.h>
++#include <stdint.h>
+ #include <string.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -105,6 +106,8 @@ struct vdIn {
+ int framecount;
+ int recordstart;
+ int recordtime;
++ uint32_t tmpbytesused;
++ struct timeval tmptimestamp;
+ };
+
+ /* context of each camera thread */
diff --git a/media-video/mjpg-streamer/files/mjpg-streamer.confd b/media-video/mjpg-streamer/files/mjpg-streamer.confd
new file mode 100644
index 000000000000..07a81b04dcee
--- /dev/null
+++ b/media-video/mjpg-streamer/files/mjpg-streamer.confd
@@ -0,0 +1,21 @@
+# The input plugins and options:
+# uvc
+# testpicture
+# file
+#ex. INPUT_PLUGIN="uvc"
+INPUT_PLUGIN=""
+INPUT_PLUGIN_OPTS=""
+
+# The output plugins and options:
+# autofocus
+# file
+# http
+# udp
+# rtsp
+#ex. OUTPUT_PLUGIN="http"
+OUTPUT_PLUGIN=""
+OUTPUT_PLUGIN_OPTS=""
+
+# Deamon runing as user/group
+MJPG_STREAMER_USER="nobody"
+MJPG_STREAMER_GROUP="video"
diff --git a/media-video/mjpg-streamer/files/mjpg-streamer.initd b/media-video/mjpg-streamer/files/mjpg-streamer.initd
new file mode 100644
index 000000000000..53f046e7b1fe
--- /dev/null
+++ b/media-video/mjpg-streamer/files/mjpg-streamer.initd
@@ -0,0 +1,47 @@
+#!/sbin/openrc-run
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+MJPG_STREAMER_PIDFILE="${MJPG_STREAMER_PIDFILE:-/var/run/${SVCNAME}.pid}"
+MY_NAME=${SVCNAME//-/_}
+
+depend() {
+ use logger
+}
+
+checkconfig() {
+ local vars
+
+ [[ ${INPUT_PLUGIN} ]] || vars+=\ INPUT_PLUGIN
+ [[ ${OUTPUT_PLUGIN} ]] || vars+=\ OUTPUT_PLUGIN
+ [[ ${MJPG_STREAMER_USER} ]] || vars+=\ MJPG_STREAMER_USER
+ [[ ${MJPG_STREAMER_GROUP} ]] || vars+=\ MJPG_STREAMER_GROUP
+ vars="${vars# }"
+
+ if [[ ${vars} ]]; then
+ eerror "Required variables in /etc/conf.d/${SVCNAME} are not set:"
+ eerror " ${vars// /, }"
+ return 1
+ fi
+
+ return 0
+}
+
+start() {
+ checkconfig || return $?
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --exec /usr/bin/${MY_NAME} \
+ --user "${MJPG_STREAMER_USER}" \
+ --group "${MJPG_STREAMER_GROUP}" -w 100 -b -m \
+ --pidfile "${MJPG_STREAMER_PIDFILE}" \
+ -- -i "/usr/lib/input_${INPUT_PLUGIN}.so ${INPUT_PLUGIN_OPTS}" \
+ -o "/usr/lib/output_${OUTPUT_PLUGIN}.so ${OUTPUT_PLUGIN_OPTS}"
+ eend $? "Check syslog to see why startup failed."
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --exec /usr/bin/${MY_NAME} \
+ --pidfile "${MJPG_STREAMER_PIDFILE}"
+ eend $?
+}