removed motion-mrdave; the new 4.0 motion version is now the default

This commit is contained in:
Calin Crisan 2016-11-12 22:59:44 +02:00
parent f5f3af3d9e
commit b0309d3cd3
15 changed files with 5 additions and 222 deletions

View File

@ -1,11 +0,0 @@
#!/bin/bash
MOTION_SVN="/usr/bin/motion-svn"
MOTION_MRDAVE="/usr/bin/motion-mrdave"
motion=$MOTION_MRDAVE
echo "using motion binary $motion"
exec $motion "$@"

View File

@ -36,7 +36,6 @@ BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_LIBWEBCAM=y
BR2_PACKAGE_MOTION=y
BR2_PACKAGE_MOTION_MRDAVE=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_CIFS_UTILS=y
# BR2_PACKAGE_E2FSPROGS_BADBLOCKS is not set

View File

@ -36,7 +36,6 @@ BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_LIBWEBCAM=y
BR2_PACKAGE_MOTION=y
BR2_PACKAGE_MOTION_MRDAVE=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_CIFS_UTILS=y
# BR2_PACKAGE_E2FSPROGS_BADBLOCKS is not set

View File

@ -40,7 +40,6 @@ BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_MOTION=y
BR2_PACKAGE_MOTION_MRDAVE=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_CIFS_UTILS=y
# BR2_PACKAGE_E2FSPROGS_BADBLOCKS is not set

View File

@ -29,7 +29,6 @@ BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_MOTION=y
BR2_PACKAGE_MOTION_MRDAVE=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_CIFS_UTILS=y
# BR2_PACKAGE_E2FSPROGS_BADBLOCKS is not set

View File

@ -31,7 +31,6 @@ BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_MOTION=y
BR2_PACKAGE_MOTION_MRDAVE=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_CIFS_UTILS=y
# BR2_PACKAGE_E2FSPROGS_BADBLOCKS is not set

View File

@ -35,7 +35,6 @@ BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_LIBWEBCAM=y
BR2_PACKAGE_MOTION=y
BR2_PACKAGE_MOTION_MMAL=y
BR2_PACKAGE_MOTION_MRDAVE=y
BR2_PACKAGE_STREAMEYE=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_CIFS_UTILS=y

View File

@ -35,7 +35,6 @@ BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_LIBWEBCAM=y
BR2_PACKAGE_MOTION=y
BR2_PACKAGE_MOTION_MMAL=y
BR2_PACKAGE_MOTION_MRDAVE=y
BR2_PACKAGE_STREAMEYE=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_CIFS_UTILS=y

View File

@ -34,7 +34,6 @@ BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_LIBWEBCAM=y
BR2_PACKAGE_MOTION=y
BR2_PACKAGE_MOTION_MMAL=y
BR2_PACKAGE_MOTION_MRDAVE=y
BR2_PACKAGE_STREAMEYE=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_CIFS_UTILS=y

View File

@ -28,7 +28,6 @@ menu "Audio and video applications"
source "package/mjpegtools/Config.in"
source "package/motion/Config.in"
source "package/motion-mmal/Config.in"
source "package/motion-mrdave/Config.in"
source "package/modplugtools/Config.in"
source "package/mpd/Config.in"
source "package/mpd-mpc/Config.in"

View File

@ -1,75 +0,0 @@
From e65ea2454d6dcc759e2f4fd38548f6844a2c820b Mon Sep 17 00:00:00 2001
From: Calin Crisan <ccrisan@gmail.com>
Date: Sun, 3 Jul 2016 19:49:06 +0300
Subject: [PATCH 1/3] h264 codec: set crf option based on configured vbr
---
ffmpeg.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/ffmpeg.c b/ffmpeg.c
index df2b47e..ed192ca 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -295,7 +295,11 @@ struct ffmpeg *ffmpeg_open(char *ffmpeg_video_codec, char *filename,
if (c->codec_id == MY_CODEC_ID_H264 ||
c->codec_id == MY_CODEC_ID_HEVC){
av_dict_set(&opts, "preset", "ultrafast", 0);
- av_dict_set(&opts, "crf", "18", 0);
+
+ /* transforrm vbr (2 - 31) into crf (0 - 51) by scaling */
+ char crf[4];
+ snprintf(crf, 4, "%d", (int) ((vbr - 2) * 1.758));
+
av_dict_set(&opts, "tune", "zerolatency", 0);
}
if (strcmp(ffmpeg_video_codec, "ffv1") == 0) c->strict_std_compliance = -2;
From b4138ee0ddc8a7b76b82eb1c80e5d5216dfcb8ce Mon Sep 17 00:00:00 2001
From: Calin Crisan <ccrisan@gmail.com>
Date: Wed, 6 Jul 2016 16:58:09 +0300
Subject: [PATCH 2/3] h264 codec: fixed crf from vbr: the vbr range is actually
1 to 32767
---
ffmpeg.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ffmpeg.c b/ffmpeg.c
index ed192ca..0f80a09 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -296,9 +296,9 @@ struct ffmpeg *ffmpeg_open(char *ffmpeg_video_codec, char *filename,
c->codec_id == MY_CODEC_ID_HEVC){
av_dict_set(&opts, "preset", "ultrafast", 0);
- /* transforrm vbr (2 - 31) into crf (0 - 51) by scaling */
+ /* transform vbr (1 - 32767) into crf (0 - 51) by scaling */
char crf[4];
- snprintf(crf, 4, "%d", (int) ((vbr - 2) * 1.758));
+ snprintf(crf, 4, "%d", (int) ((vbr - 1) * 51.0 / 32766));
av_dict_set(&opts, "tune", "zerolatency", 0);
}
From 675b4befb339e23a74615a1c64ecdd51470e824e Mon Sep 17 00:00:00 2001
From: Calin Crisan <ccrisan@gmail.com>
Date: Sun, 17 Jul 2016 16:51:27 +0300
Subject: [PATCH 3/3] ffmpeg/h264: actually pass the crf value to the options
---
ffmpeg.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/ffmpeg.c b/ffmpeg.c
index 0f80a09..b21572a 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -300,6 +300,7 @@ struct ffmpeg *ffmpeg_open(char *ffmpeg_video_codec, char *filename,
char crf[4];
snprintf(crf, 4, "%d", (int) ((vbr - 1) * 51.0 / 32766));
+ av_dict_set(&opts, "crf", crf, 0);
av_dict_set(&opts, "tune", "zerolatency", 0);
}
if (strcmp(ffmpeg_video_codec, "ffv1") == 0) c->strict_std_compliance = -2;

View File

@ -1,103 +0,0 @@
From 787fad43fe1ef9e80b23a8ee7542ad5f5906e7ec Mon Sep 17 00:00:00 2001
From: Calin Crisan <ccrisan@gmail.com>
Date: Sat, 17 Sep 2016 21:18:46 +0300
Subject: [PATCH] automatically resize mask image if size differs from that of
the captured image
---
motion_guide.html | 4 ++--
picture.c | 43 ++++++++++++++++++++++++++++---------------
2 files changed, 30 insertions(+), 17 deletions(-)
diff --git a/motion_guide.html b/motion_guide.html
index e127b2c..4526324 100644
--- a/motion_guide.html
+++ b/motion_guide.html
@@ -2559,8 +2559,8 @@
</ul>
<p></p>
The full path and filename for the masking pgm file.
-This picture MUST have the same width and height as the frames being
-captured and be in binary format.
+If needed, the mask will be resized to match the width and height of the frames being
+captured.
If you have one or more areas of the camera image in which you do NOT want motion detected (e.g. a tree that
moves in the wind or a corner of the picture where you can see cars/pedestrians passing by) you need a mask file.
This file is a picture that you create in your favorite photo editing program. The areas that you want detected must
diff --git a/picture.c b/picture.c
index 81be8f3..7ca4d7e 100644
--- a/picture.c
+++ b/picture.c
@@ -963,9 +963,9 @@ void put_picture(struct context *cnt, char *file, unsigned char *image, int ftyp
*/
unsigned char *get_pgm(FILE *picture, int width, int height)
{
- int x = 0 , y = 0, maxval;
+ int x, y, mask_width, mask_height, maxval;
char line[256];
- unsigned char *image;
+ unsigned char *image, *resized_image;
line[255] = 0;
@@ -986,18 +986,12 @@ unsigned char *get_pgm(FILE *picture, int width, int height)
if (!fgets(line, 255, picture))
return NULL;
- /* Check size */
- if (sscanf(line, "%d %d", &x, &y) != 2) {
+ /* Read image size */
+ if (sscanf(line, "%d %d", &mask_width, &mask_height) != 2) {
MOTION_LOG(ERR, TYPE_ALL, SHOW_ERRNO, "%s: Failed reading size in pgm file");
return NULL;
}
- if (x != width || y != height) {
- MOTION_LOG(ERR, TYPE_ALL, SHOW_ERRNO, "%s: Wrong image size %dx%d should be %dx%d",
- x, y, width, height);
- return NULL;
- }
-
/* Maximum value */
line[0] = '#';
while (line[0] == '#')
@@ -1011,15 +1005,34 @@ unsigned char *get_pgm(FILE *picture, int width, int height)
/* Read data */
- image = mymalloc(width * height);
+ image = mymalloc(mask_width * mask_height);
- for (y = 0; y < height; y++) {
- if ((int)fread(&image[y * width], 1, width, picture) != width)
+ for (y = 0; y < mask_height; y++) {
+ if ((int)fread(&image[y * mask_width], 1, mask_width, picture) != mask_width)
MOTION_LOG(ERR, TYPE_ALL, SHOW_ERRNO, "%s: Failed reading image data from pgm file");
- for (x = 0; x < width; x++)
- image[y * width + x] = (int)image[y * width + x] * 255 / maxval;
+ for (x = 0; x < mask_width; x++)
+ image[y * mask_width + x] = (int)image[y * mask_width + x] * 255 / maxval;
+
+ }
+
+ /* Resize mask if required */
+ if (mask_width != width || mask_height != height) {
+ MOTION_LOG(NTC, TYPE_ALL, NO_ERRNO, "%s: Mask needs resizing from %dx%d to %dx%d",
+ mask_width, mask_height, width, height);
+
+ resized_image = mymalloc(width * height);
+
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ resized_image[y * width + x] = image[
+ (mask_height - 1) * y / (height - 1) * mask_width +
+ (mask_width - 1) * x / (width - 1)];
+ }
+ }
+ free(image);
+ image = resized_image;
}
return image;

View File

@ -1,2 +0,0 @@
config BR2_PACKAGE_MOTION_MRDAVE
bool "motion-mrdave"

View File

@ -1,18 +0,0 @@
################################################################################
#
# motion-mrdave
#
################################################################################
MOTION_MRDAVE_VERSION = 2caced3
MOTION_MRDAVE_SITE = $(call github,mr-dave,motion,$(MOTION_MRDAVE_VERSION))
MOTION_MRDAVE_AUTORECONF = YES
MOTION_MRDAVE_CONF_OPTS = --without-pgsql --without-sdl --without-sqlite3 --without-mysql --with-ffmpeg=$(STAGING_DIR)/usr/lib \
--with-ffmpeg-headers=$(STAGING_DIR)/usr/include
define MOTION_MRDAVE_INSTALL_TARGET_CMDS
cp $(@D)/motion $(TARGET_DIR)/usr/bin/motion-mrdave
endef
$(eval $(autotools-package))

View File

@ -4,14 +4,15 @@
#
################################################################################
MOTION_SITE = http://www.lavrsen.dk/svn/motion/trunk
MOTION_SITE_METHOD = svn
MOTION_VERSION = r561
MOTION_VERSION = 37b3595
MOTION_SITE = $(call github,motion-project,motion,$(MOTION_VERSION))
MOTION_AUTORECONF = YES
MOTION_CONF_OPTS = --without-pgsql --without-sdl --without-sqlite3 --without-mysql --with-ffmpeg=$(STAGING_DIR)/usr/lib \
--with-ffmpeg-headers=$(STAGING_DIR)/usr/include
define MOTION_INSTALL_TARGET_CMDS
cp $(@D)/motion $(TARGET_DIR)/usr/bin/motion-svn
cp $(@D)/motion $(TARGET_DIR)/usr/bin/motion
endef
$(eval $(autotools-package))