From d8377cb5bca9a67d68e04c109fc9ad7b8342d71f Mon Sep 17 00:00:00 2001 From: Mr-DaveDev Date: Tue, 27 Nov 2018 18:34:55 -0700 Subject: [PATCH] v4l2 via netcam revisions Closes #853 Closes #854 Closes #855 Closes #857 --- motion_build.html | 2 +- motion_config.html | 14 ++++++++++++-- netcam_rtsp.c | 6 ++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/motion_build.html b/motion_build.html index 06eeb9fa..834079b3 100644 --- a/motion_build.html +++ b/motion_build.html @@ -442,7 +442,7 @@

sudo yum groupinstall 'Development Tools'

- sudo yum install libjpeg-turbo libjpeg-turbo-devel gettext libmicrohttpd-dev + sudo yum install libjpeg-turbo libjpeg-turbo-devel gettext libmicrohttpd-devel

sudo yum install libzip-devel

diff --git a/motion_config.html b/motion_config.html index 2af3b1c6..615a7592 100644 --- a/motion_config.html +++ b/motion_config.html @@ -4401,9 +4401,19 @@
  • Default: off
  • - When using a RTSP, RTMP or mjpeg camera, create movie files of the motion with the packets obtained directly - from the camera. For mjpeg cameras, the url must be specified using the mjpeg prefix rather than + When using a RTSP, RTMP, mjpeg and some V4l2 cameras, create movie files of the motion with the packets + obtained directly from the camera. +

    + For mjpeg cameras, the url must be specified using the mjpeg prefix rather than as http +

    + For v4l2 cameras to use the movie_passthrough, they must be specified using the + netcam_url parameter and the v4l2 prefix. + Only webcams that provide mjpeg (v4l2_palette option 8) + or H264 (v4l2_palette option 21) will work with the + movie_passthrough. +

    +

    When using only the single netcam_url this option will reduce the processing required when encoding the images to the resulting movie file. Decoding of the image will still occur on the diff --git a/netcam_rtsp.c b/netcam_rtsp.c index 73d47e59..8f0f4a0e 100644 --- a/netcam_rtsp.c +++ b/netcam_rtsp.c @@ -82,9 +82,9 @@ static void netcam_rtsp_close_context(struct rtsp_context *rtsp_data){ if (rtsp_data->swsframe_in != NULL) my_frame_free(rtsp_data->swsframe_in); if (rtsp_data->swsframe_out != NULL) my_frame_free(rtsp_data->swsframe_out); if (rtsp_data->frame != NULL) my_frame_free(rtsp_data->frame); + if (rtsp_data->pktarray != NULL) netcam_rtsp_pktarray_free(rtsp_data); if (rtsp_data->codec_context != NULL) my_avcodec_close(rtsp_data->codec_context); if (rtsp_data->format_context != NULL) avformat_close_input(&rtsp_data->format_context); - if (rtsp_data->pktarray != NULL) netcam_rtsp_pktarray_free(rtsp_data); if (rtsp_data->transfer_format != NULL) avformat_close_input(&rtsp_data->transfer_format); netcam_rtsp_null_context(rtsp_data); @@ -855,9 +855,11 @@ static void netcam_rtsp_set_v4l2(struct rtsp_context *rtsp_data){ sprintf(optfps, "%s","default"); sprintf(optsize, "%s","default"); } + } else { + sprintf(optfps, "%s","default"); + sprintf(optsize, "%s","default"); } - if (rtsp_data->status == RTSP_NOTCONNECTED){ MOTION_LOG(INF, TYPE_NETCAM, NO_ERRNO ,_("%s: Requested v4l2_palette option: %d")