From c5d2aab80aa63bfb8d3ea7fe67f54a694fa43f59 Mon Sep 17 00:00:00 2001 From: Tsaukpaetra Date: Thu, 8 Aug 2019 05:47:23 -0700 Subject: [PATCH 1/4] Update faq.rst (#2680) Add new entry for timezone-related issue --- docs/faq.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/faq.rst b/docs/faq.rst index a703fd065..5b8c97f5c 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -646,6 +646,23 @@ Why am I getting broken images when trying to view events? Zoneminder and the Apache web server need to have the right permissions. Check this forum topic and similar ones: http://www.zoneminder.com/forums/viewtopic.php?p=48754#48754 + +I can review events for the current day, but ones from yesterday and beyond error out +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you've checked that the `www-data` user has permissions to the storage folders, perhaps your php.ini's timezone setting is incorrect. They _must_ match for certain playback functions. + +If you're using Linux, this can be found using the following command: :: + + timedatectl | grep "Time zone" + +If using FreeBSD, you can use this one-liner: :: + + cd /usr/share/zoneinfo/ && find * -type f -exec cmp -s {} /etc/localtime \; -print; + +Once you know what timezone your system is set to, open `/etc/php.ini` and adjust ``date.timezone`` to the appropriate value. the PHP daemon may need to be restarted for changes to take effect. + + Why is the image from my color camera appearing in black and white? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you recently upgraded to zoneminder 1.26, there is a per camera option that defaults to black and white and can be mis-set if your upgrade didn't happen right. See this thread: http://www.zoneminder.com/forums/viewtopic.php?f=30&t=21344 @@ -728,6 +745,8 @@ What causes "Invalid JPEG file structure: two SOI markers" from zmc (1.24.x) Some settings that used to be global only are now per camera. On the Monitor Source tab, if you are using Remote Protocol "HTTP" and Remote Method "Simple", try changing Remote Method to "Regexp". + + Miscellaneous ------------------- I see ZoneMinder is licensed under the GPL. What does that allow or restrict me in doing with ZoneMinder? From 5b0509e000464200636d4c16922b894061d1eff8 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 8 Aug 2019 09:26:00 -0400 Subject: [PATCH 2/4] When invalid operator terms, use print_r on the term instead of just the operator --- web/includes/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/includes/functions.php b/web/includes/functions.php index 9e0655933..7dd4bbc0c 100644 --- a/web/includes/functions.php +++ b/web/includes/functions.php @@ -1341,7 +1341,7 @@ function parseFilter(&$filter, $saveToSession=false, $querySep='&') { $filter['sql'] .= " IS NOT $value"; break; default: - ZM\Warning("Invalid operator in filter: " . $term['op'] ); + ZM\Warning('Invalid operator in filter: ' . print_r($term['op'], true)); } // end switch op $filter['query'] .= $querySep.urlencode("filter[Query][terms][$i][op]").'='.urlencode($term['op']); From 189252867931251ae457e4aa312fccc6e58ceb5b Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 8 Aug 2019 09:26:15 -0400 Subject: [PATCH 3/4] quotes --- web/includes/actions/filter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/includes/actions/filter.php b/web/includes/actions/filter.php index 8548f21d1..2e1f282c7 100644 --- a/web/includes/actions/filter.php +++ b/web/includes/actions/filter.php @@ -42,7 +42,7 @@ if ( isset($_REQUEST['object']) and ( $_REQUEST['object'] == 'filter' ) ) { $filter->delete(); } else { - ZM\Error("No filter id passed when deleting"); + ZM\Error('No filter id passed when deleting'); } } else if ( ( $action == 'Save' ) or ( $action == 'SaveAs' ) or ( $action == 'execute' ) ) { From bb6d2631c93035086792e82d233eb99525e900e7 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 8 Aug 2019 09:26:40 -0400 Subject: [PATCH 4/4] Fix hwaccel compile on pi --- src/zm_ffmpeg_camera.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/zm_ffmpeg_camera.cpp b/src/zm_ffmpeg_camera.cpp index 8c61dfcff..0acdb6c1c 100644 --- a/src/zm_ffmpeg_camera.cpp +++ b/src/zm_ffmpeg_camera.cpp @@ -44,6 +44,7 @@ extern "C" { #if HAVE_LIBAVUTIL_HWCONTEXT_H +#if LIBAVCODEC_VERSION_CHECK(57, 89, 0, 89, 0) static enum AVPixelFormat hw_pix_fmt; static enum AVPixelFormat get_hw_format( AVCodecContext *ctx, @@ -94,6 +95,7 @@ static enum AVPixelFormat find_fmt_by_hw_type(const enum AVHWDeviceType type) { } #endif #endif +#endif FfmpegCamera::FfmpegCamera( int p_id, @@ -155,8 +157,10 @@ FfmpegCamera::FfmpegCamera( #if HAVE_LIBAVUTIL_HWCONTEXT_H hwFrame = NULL; hw_device_ctx = NULL; +#if LIBAVCODEC_VERSION_CHECK(57, 89, 0, 89, 0) hw_pix_fmt = AV_PIX_FMT_NONE; #endif +#endif #if HAVE_LIBSWSCALE mConvertContext = NULL; @@ -437,6 +441,8 @@ int FfmpegCamera::OpenFfmpeg() { if ( hwaccel_name != "" ) { #if HAVE_LIBAVUTIL_HWCONTEXT_H + // 3.2 doesn't seem to have all the bits in place, so let's require 3.3 and up +#if LIBAVCODEC_VERSION_CHECK(57, 89, 0, 89, 0) // Print out available types enum AVHWDeviceType type = AV_HWDEVICE_TYPE_NONE; while ( (type = av_hwdevice_iterate_types(type)) != AV_HWDEVICE_TYPE_NONE ) @@ -497,6 +503,9 @@ int FfmpegCamera::OpenFfmpeg() { } else { Debug(1, "Failed to setup hwaccel."); } +#else + Debug(1, "AVCodec not new enough for hwaccel"); +#endif #else Warning("HWAccel support not compiled in."); #endif @@ -946,6 +955,7 @@ int FfmpegCamera::CaptureAndRecord( if ( error_count > 0 ) error_count--; zm_dump_video_frame(mRawFrame); #if HAVE_LIBAVUTIL_HWCONTEXT_H +#if LIBAVCODEC_VERSION_CHECK(57, 89, 0, 89, 0) if ( (hw_pix_fmt != AV_PIX_FMT_NONE) && @@ -964,10 +974,13 @@ int FfmpegCamera::CaptureAndRecord( hwFrame->pts = mRawFrame->pts; input_frame = hwFrame; } else { +#endif #endif input_frame = mRawFrame; #if HAVE_LIBAVUTIL_HWCONTEXT_H +#if LIBAVCODEC_VERSION_CHECK(57, 89, 0, 89, 0) } +#endif #endif Debug(4, "Got frame %d", frameCount);