[packages/zoneminder] - fix building with ffmpeg 4.0 - rel 6
baggins
baggins at pld-linux.org
Sun Apr 29 19:14:13 CEST 2018
commit c2f6ed56bca40ce46e9113d66feadc1b08e6cfc2
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sun Apr 29 19:13:55 2018 +0200
- fix building with ffmpeg 4.0
- rel 6
ffmpeg4.patch | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
zoneminder.spec | 4 +-
2 files changed, 135 insertions(+), 1 deletion(-)
---
diff --git a/zoneminder.spec b/zoneminder.spec
index 014105a..75d0c80 100644
--- a/zoneminder.spec
+++ b/zoneminder.spec
@@ -9,7 +9,7 @@ Summary: Zone Minder is a software motion detector with nice WWW GUI
Summary(pl.UTF-8): Zone Minder - programowy wykrywacz ruchu z miłym GUI przez WWW
Name: zoneminder
Version: 1.28.0
-Release: 5
+Release: 6
License: GPL v2
Group: Applications/Graphics
Source0: https://github.com/ZoneMinder/ZoneMinder/archive/v%{version}.tar.gz
@@ -29,6 +29,7 @@ Patch2: %{name}-build.patch
Patch3: %{name}-init.patch
Patch4: ffmpeg3.patch
Patch5: %{name}-types.patch
+Patch6: ffmpeg4.patch
URL: http://www.zoneminder.com/
BuildRequires: autoconf >= 2.59
BuildRequires: automake
@@ -123,6 +124,7 @@ cd ..
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
sed -i -e 's#-frepo##g' src/Makefile.am
sed -i -e 's#chown#true#g' -e 's#chmod#true#g' *.am */*.am */*/*.am
diff --git a/ffmpeg4.patch b/ffmpeg4.patch
new file mode 100644
index 0000000..4d41c37
--- /dev/null
+++ b/ffmpeg4.patch
@@ -0,0 +1,132 @@
+--- ZoneMinder-1.28.0/src/zm_local_camera.cpp~ 2018-04-29 19:03:27.000000000 +0200
++++ ZoneMinder-1.28.0/src/zm_local_camera.cpp 2018-04-29 19:05:17.754303364 +0200
+@@ -149,8 +149,7 @@
+ // These are all spare and may match some of the above
+ pixFormat = AV_PIX_FMT_YUVJ420P;
+ pixFormat = AV_PIX_FMT_YUVJ422P;
+- pixFormat = AV_PIX_FMT_XVMC_MPEG2_MC;
+- pixFormat = AV_PIX_FMT_XVMC_MPEG2_IDCT;
++ pixFormat = AV_PIX_FMT_XVMC;
+ pixFormat = AV_PIX_FMT_UYVY422;
+ pixFormat = AV_PIX_FMT_UYYVYY411;
+ pixFormat = AV_PIX_FMT_BGR565;
+@@ -221,8 +220,7 @@
+ pixFormat = AV_PIX_FMT_YUVJ420P;
+ pixFormat = AV_PIX_FMT_YUVJ422P;
+ pixFormat = AV_PIX_FMT_YUVJ444P;
+- pixFormat = AV_PIX_FMT_XVMC_MPEG2_MC;
+- pixFormat = AV_PIX_FMT_XVMC_MPEG2_IDCT;
++ pixFormat = AV_PIX_FMT_XVMC;
+ pixFormat = AV_PIX_FMT_UYVY422;
+ pixFormat = AV_PIX_FMT_UYYVYY411;
+ pixFormat = AV_PIX_FMT_BGR565;
+--- ZoneMinder-1.28.0/src/zm_mpeg.cpp~ 2018-04-29 19:03:27.000000000 +0200
++++ ZoneMinder-1.28.0/src/zm_mpeg.cpp 2018-04-29 19:08:39.438905569 +0200
+@@ -239,7 +239,7 @@
+ {
+ // Quality based bitrate control (VBR). Scale is 1..31 where 1 is best.
+ // This gets rid of artifacts in the beginning of the movie; and well, even quality.
+- c->flags |= CODEC_FLAG_QSCALE;
++ c->flags |= AV_CODEC_FLAG_QSCALE;
+ c->global_quality = FF_QP2LAMBDA * (31 - (31 * (bitrate / 100.0)));
+ }
+ else
+@@ -264,7 +264,7 @@
+
+ // some formats want stream headers to be seperate
+ if ( of->flags & AVFMT_GLOBALHEADER )
+- c->flags |= CODEC_FLAG_GLOBAL_HEADER;
++ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+ }
+ else
+ {
+@@ -384,14 +384,11 @@
+ }
+
+ video_outbuf = NULL;
+- if ( !(of->flags & AVFMT_RAWPICTURE) )
+- {
+ /* allocate output buffer */
+ /* XXX: API change will be done */
+ // TODO: Make buffer dynamic.
+ video_outbuf_size = 4000000;
+ video_outbuf = (uint8_t *)malloc( video_outbuf_size );
+- }
+
+ #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(52, 100, 1)
+ av_dump_format(ofc, 0, filename, 1);
+@@ -619,19 +616,6 @@
+ AVPacket *pkt = packet_buffers[packet_index];
+ av_init_packet( pkt );
+ int got_packet = 0;
+- if ( of->flags & AVFMT_RAWPICTURE )
+- {
+-#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51, 2, 1)
+- pkt->flags |= AV_PKT_FLAG_KEY;
+-#else
+- pkt->flags |= PKT_FLAG_KEY;
+-#endif
+- pkt->stream_index = ost->index;
+- pkt->data = (uint8_t *)opicture_ptr;
+- pkt->size = sizeof (AVPicture);
+- got_packet = 1;
+- }
+- else
+ {
+ opicture_ptr->pts = c->frame_number;
+ opicture_ptr->quality = c->global_quality;
+--- ZoneMinder-1.28.0/src/zm_sdp.cpp~ 2014-10-18 22:23:13.000000000 +0200
++++ ZoneMinder-1.28.0/src/zm_sdp.cpp 2018-04-29 19:11:52.951109703 +0200
+@@ -382,7 +382,7 @@
+ if ( smStaticPayloads[i].payloadType == mediaDesc->getPayloadType() )
+ {
+ Debug( 1, "Got static payload type %d, %s", smStaticPayloads[i].payloadType, smStaticPayloads[i].payloadName );
+- strncpy( stream->codec->codec_name, smStaticPayloads[i].payloadName, sizeof(stream->codec->codec_name) );;
++ //strncpy( stream->codec->codec_name, smStaticPayloads[i].payloadName, sizeof(stream->codec->codec_name) );;
+ stream->codec->codec_type = smStaticPayloads[i].codecType;
+ stream->codec->codec_id = smStaticPayloads[i].codecId;
+ stream->codec->sample_rate = smStaticPayloads[i].clockRate;
+@@ -398,7 +398,7 @@
+ if ( smDynamicPayloads[i].payloadName == mediaDesc->getPayloadDesc() )
+ {
+ Debug( 1, "Got dynamic payload type %d, %s", mediaDesc->getPayloadType(), smDynamicPayloads[i].payloadName );
+- strncpy( stream->codec->codec_name, smDynamicPayloads[i].payloadName, sizeof(stream->codec->codec_name) );;
++ //strncpy( stream->codec->codec_name, smDynamicPayloads[i].payloadName, sizeof(stream->codec->codec_name) );;
+ stream->codec->codec_type = smDynamicPayloads[i].codecType;
+ stream->codec->codec_id = smDynamicPayloads[i].codecId;
+ stream->codec->sample_rate = mediaDesc->getClock();
+@@ -406,11 +406,11 @@
+ }
+ }
+ }
+- if ( !stream->codec->codec_name[0] )
+- {
+- Warning( "Can't find payload details for %s payload type %d, name %s", mediaDesc->getType().c_str(), mediaDesc->getPayloadType(), mediaDesc->getPayloadDesc().c_str() );
+- //return( 0 );
+- }
++// if ( !stream->codec->codec_name[0] )
++// {
++// Warning( "Can't find payload details for %s payload type %d, name %s", mediaDesc->getType().c_str(), mediaDesc->getPayloadType(), mediaDesc->getPayloadDesc().c_str() );
++// //return( 0 );
++// }
+ if ( mediaDesc->getWidth() )
+ stream->codec->width = mediaDesc->getWidth();
+ if ( mediaDesc->getHeight() )
+@@ -445,7 +445,7 @@
+ uint8_t *dest =
+ (uint8_t *)av_malloc(packet_size + sizeof(start_sequence) +
+ stream->codec->extradata_size +
+- FF_INPUT_BUFFER_PADDING_SIZE);
++ AV_INPUT_BUFFER_PADDING_SIZE);
+ if(dest) {
+ if(stream->codec->extradata_size) {
+ // av_realloc?
+@@ -456,7 +456,7 @@
+ memcpy(dest+stream->codec->extradata_size, start_sequence, sizeof(start_sequence));
+ memcpy(dest+stream->codec->extradata_size+sizeof(start_sequence), decoded_packet, packet_size);
+ memset(dest+stream->codec->extradata_size+sizeof(start_sequence)+
+- packet_size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
++ packet_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
+
+ stream->codec->extradata= dest;
+ stream->codec->extradata_size+= sizeof(start_sequence)+packet_size;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/zoneminder.git/commitdiff/c2f6ed56bca40ce46e9113d66feadc1b08e6cfc2
More information about the pld-cvs-commit
mailing list