diff options
author | jbeich <jbeich@FreeBSD.org> | 2018-05-04 03:50:40 +0800 |
---|---|---|
committer | jbeich <jbeich@FreeBSD.org> | 2018-05-04 03:50:40 +0800 |
commit | 08f4d19140009f28fa3595bfd1ec7fdf0b677a2f (patch) | |
tree | 22e3332e3f5da27713a9d848573c6b33bf41d36b /multimedia | |
parent | 05581391f2a2b064a33198ad29331ba9a5c8dd5d (diff) | |
download | freebsd-ports-gnome-08f4d19140009f28fa3595bfd1ec7fdf0b677a2f.tar.gz freebsd-ports-gnome-08f4d19140009f28fa3595bfd1ec7fdf0b677a2f.tar.zst freebsd-ports-gnome-08f4d19140009f28fa3595bfd1ec7fdf0b677a2f.zip |
multimedia/vdr-plugin-markad: unbreak with ffmpeg 4.0
decoder.cpp:175:23: error: use of undeclared identifier 'AV_CODEC_ID_MPEG2VIDEO_XVMC'; did you mean 'AV_CODEC_ID_MPEG2VIDEO'?
video_codecid=AV_CODEC_ID_MPEG2VIDEO_XVMC;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
AV_CODEC_ID_MPEG2VIDEO
/usr/local/include/libavcodec/avcodec.h:220:5: note: 'AV_CODEC_ID_MPEG2VIDEO' declared here
AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
^
decoder.cpp:179:43: error: use of undeclared identifier 'AV_CODEC_ID_MPEG2VIDEO_XVMC'; did you mean 'AV_CODEC_ID_MPEG2VIDEO'?
if ((!video_codec) && (video_codecid==AV_CODEC_ID_MPEG2VIDEO_XVMC))
^~~~~~~~~~~~~~~~~~~~~~~~~~~
AV_CODEC_ID_MPEG2VIDEO
/usr/local/include/libavcodec/avcodec.h:220:5: note: 'AV_CODEC_ID_MPEG2VIDEO' declared here
AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
^
decoder.cpp:191:45: error: use of undeclared identifier 'CODEC_CAP_TRUNCATED'
if (video_codec->capabilities & CODEC_CAP_TRUNCATED)
^
decoder.cpp:192:39: error: use of undeclared identifier 'CODEC_FLAG_TRUNCATED'
video_context->flags|=CODEC_FLAG_TRUNCATED; // we do not send complete frames
^
decoder.cpp:194:36: error: use of undeclared identifier 'CODEC_FLAG2_FAST'
video_context->flags2|=CODEC_FLAG2_FAST; // really?
^
decoder.cpp:201:40: error: use of undeclared identifier 'CODEC_FLAG2_CHUNKS'
video_context->flags2|=CODEC_FLAG2_CHUNKS; // needed for H264!
^
decoder.cpp:214:46: error: use of undeclared identifier 'AV_CODEC_ID_MPEG2VIDEO_XVMC'; did you mean 'AV_CODEC_ID_MPEG2VIDEO'?
if ((ret < 0) && (video_codecid==AV_CODEC_ID_MPEG2VIDEO_XVMC))
^~~~~~~~~~~~~~~~~~~~~~~~~~~
AV_CODEC_ID_MPEG2VIDEO
/usr/local/include/libavcodec/avcodec.h:220:5: note: 'AV_CODEC_ID_MPEG2VIDEO' declared here
AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
^
decoder.cpp:224:43: error: no member named 'codec_name' in 'AVCodecContext'; did you mean 'coded_frame'?
memset(video_context->codec_name,0,sizeof(video_context->codec_name));
^~~~~~~~~~
coded_frame
/usr/local/include/libavcodec/avcodec.h:2760:35: note: 'coded_frame' declared here
attribute_deprecated AVFrame *coded_frame;
^
decoder.cpp:224:78: error: no member named 'codec_name' in 'AVCodecContext'
memset(video_context->codec_name,0,sizeof(video_context->codec_name));
~~~~~~~~~~~~~ ^
decoder.cpp:244:22: error: use of undeclared identifier 'AV_CODEC_ID_MPEG2VIDEO_XVMC'; did you mean 'AV_CODEC_ID_MPEG2VIDEO'?
case AV_CODEC_ID_MPEG2VIDEO_XVMC:
^~~~~~~~~~~~~~~~~~~~~~~~~~~
AV_CODEC_ID_MPEG2VIDEO
/usr/local/include/libavcodec/avcodec.h:220:5: note: 'AV_CODEC_ID_MPEG2VIDEO' declared here
AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
^
decoder.cpp:247:22: error: duplicate case value 'AV_CODEC_ID_MPEG2VIDEO'
case AV_CODEC_ID_MPEG2VIDEO:
^
decoder.cpp:244:22: note: previous case defined here
case AV_CODEC_ID_MPEG2VIDEO_XVMC:
^
decoder.cpp:305:14: error: use of undeclared identifier 'AV_CODEC_ID_MPEG2VIDEO_XVMC'; did you mean 'AV_CODEC_ID_MPEG2VIDEO'?
case AV_CODEC_ID_MPEG2VIDEO_XVMC:
^~~~~~~~~~~~~~~~~~~~~~~~~~~
AV_CODEC_ID_MPEG2VIDEO
/usr/local/include/libavcodec/avcodec.h:220:5: note: 'AV_CODEC_ID_MPEG2VIDEO' declared here
AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
^
decoder.cpp:308:14: error: duplicate case value 'AV_CODEC_ID_MPEG2VIDEO'
case AV_CODEC_ID_MPEG2VIDEO:
^
decoder.cpp:305:14: note: previous case defined here
case AV_CODEC_ID_MPEG2VIDEO_XVMC:
^
PR: 227726
Reported by: antoine (via exp-run)
Diffstat (limited to 'multimedia')
-rw-r--r-- | multimedia/vdr-plugin-markad/Makefile | 2 | ||||
-rw-r--r-- | multimedia/vdr-plugin-markad/files/patch-command_decoder.cpp | 51 |
2 files changed, 39 insertions, 14 deletions
diff --git a/multimedia/vdr-plugin-markad/Makefile b/multimedia/vdr-plugin-markad/Makefile index e745511eda66..c22d350474d9 100644 --- a/multimedia/vdr-plugin-markad/Makefile +++ b/multimedia/vdr-plugin-markad/Makefile @@ -14,8 +14,6 @@ COMMENT= Video Disk Recorder - MarkAd plugin LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING -BROKEN= fails to build with ffmpeg 4.0 - LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg RESTRICTED= Installs station logos diff --git a/multimedia/vdr-plugin-markad/files/patch-command_decoder.cpp b/multimedia/vdr-plugin-markad/files/patch-command_decoder.cpp index b426eaf4567a..8f015359e794 100644 --- a/multimedia/vdr-plugin-markad/files/patch-command_decoder.cpp +++ b/multimedia/vdr-plugin-markad/files/patch-command_decoder.cpp @@ -18,7 +18,7 @@ #include "decoder.h" -@@ -113,6 +119,7 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH +@@ -113,6 +119,7 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threa noticeERRVID=false; @@ -26,7 +26,7 @@ cpu_set_t cpumask; uint len = sizeof(cpumask); int cpucount=1; -@@ -120,6 +127,12 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH +@@ -120,6 +127,12 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threa { cpucount=CPU_COUNT(&cpumask); } @@ -39,7 +39,7 @@ if (Threads==-1) { -@@ -151,28 +164,28 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH +@@ -151,41 +164,47 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threa } video_codec=NULL; @@ -54,11 +54,16 @@ else { - video_codecid=CODEC_ID_MPEG2VIDEO_XVMC; ++#ifdef AV_CODEC_ID_MPEG2VIDEO_XVMC + video_codecid=AV_CODEC_ID_MPEG2VIDEO_XVMC; ++#else ++ video_codecid=AV_CODEC_ID_MPEG2VIDEO; ++#endif } video_codec = avcodec_find_decoder(video_codecid); - if ((!video_codec) && (video_codecid==CODEC_ID_MPEG2VIDEO_XVMC)) ++#ifdef AV_CODEC_ID_MPEG2VIDEO_XVMC + if ((!video_codec) && (video_codecid==AV_CODEC_ID_MPEG2VIDEO_XVMC)) { // fallback to MPEG2VIDEO @@ -66,6 +71,7 @@ + video_codecid=AV_CODEC_ID_MPEG2VIDEO; video_codec=avcodec_find_decoder(video_codecid); } ++#endif if (video_codec) { @@ -73,22 +79,35 @@ + video_context = avcodec_alloc_context3(NULL); if (video_context) { - if (video_codec->capabilities & CODEC_CAP_TRUNCATED) -@@ -183,7 +196,7 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH +- if (video_codec->capabilities & CODEC_CAP_TRUNCATED) +- video_context->flags|=CODEC_FLAG_TRUNCATED; // we do not send complete frames ++ if (video_codec->capabilities & AV_CODEC_CAP_TRUNCATED) ++ video_context->flags|=AV_CODEC_FLAG_TRUNCATED; // we do not send complete frames + +- video_context->flags2|=CODEC_FLAG2_FAST; // really? ++ video_context->flags2|=AV_CODEC_FLAG2_FAST; // really? + video_context->skip_idct=AVDISCARD_ALL; av_log_set_level(AV_LOG_FATAL); // silence decoder output - if (video_codecid==CODEC_ID_H264) + if (video_codecid==AV_CODEC_ID_H264) { - video_context->flags2|=CODEC_FLAG2_CHUNKS; // needed for H264! +- video_context->flags2|=CODEC_FLAG2_CHUNKS; // needed for H264! ++ video_context->flags2|=AV_CODEC_FLAG2_CHUNKS; // needed for H264! } -@@ -198,15 +211,15 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH + else + { +@@ -198,17 +217,23 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threa #else int ret=avcodec_open(video_context, video_codec); #endif - if ((ret < 0) && (video_codecid==CODEC_ID_MPEG2VIDEO_XVMC)) ++#ifdef AV_CODEC_ID_MPEG2VIDEO_XVMC + if ((ret < 0) && (video_codecid==AV_CODEC_ID_MPEG2VIDEO_XVMC)) ++#else ++ if (ret < 0) ++#endif { // fallback to MPEG2VIDEO - video_codecid=CODEC_ID_MPEG2VIDEO; @@ -100,9 +119,13 @@ - video_context->codec_id=CODEC_ID_NONE; + video_context->codec_id=AV_CODEC_ID_NONE; video_context->codec_tag=0; ++#if LIBAVCODEC_VERSION_INT < ((58<<16)+(0<<8)+0) memset(video_context->codec_name,0,sizeof(video_context->codec_name)); ++#endif #if LIBAVCODEC_VERSION_INT >= ((53<<16)+(5<<8)+0) -@@ -225,13 +238,13 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH + video_context->thread_count=threadcount; + ret=avcodec_open2(video_context, video_codec, NULL); +@@ -225,13 +250,15 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threa { switch (video_codecid) { @@ -111,15 +134,17 @@ esyslog("could not open codec for H264"); break; - case CODEC_ID_MPEG2VIDEO_XVMC: ++#ifdef AV_CODEC_ID_MPEG2VIDEO_XVMC + case AV_CODEC_ID_MPEG2VIDEO_XVMC: esyslog("could not open codec MPEG2 (XVMC)"); break; - case CODEC_ID_MPEG2VIDEO: ++#endif + case AV_CODEC_ID_MPEG2VIDEO: esyslog("could not open codec MPEG2"); break; default: -@@ -256,7 +269,7 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH +@@ -256,7 +283,7 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threa } #endif @@ -128,7 +153,7 @@ if (!video_frame) { esyslog("could not allocate frame"); -@@ -286,13 +299,13 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH +@@ -286,13 +313,15 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threa { switch (video_codecid) { @@ -137,15 +162,17 @@ esyslog("codec for H264 not found"); break; - case CODEC_ID_MPEG2VIDEO_XVMC: ++#ifdef AV_CODEC_ID_MPEG2VIDEO_XVMC + case AV_CODEC_ID_MPEG2VIDEO_XVMC: esyslog("codec for MPEG2 (XVMC) not found"); break; - case CODEC_ID_MPEG2VIDEO: ++#endif + case AV_CODEC_ID_MPEG2VIDEO: esyslog("codec for MPEG2 not found"); break; default: -@@ -321,7 +334,7 @@ bool cMarkAdDecoder::Clear() +@@ -321,7 +350,7 @@ bool cMarkAdDecoder::Clear() { avcodec_flush_buffers(video_context); AVCodecContext *dest; @@ -154,7 +181,7 @@ if (dest) { if (avcodec_copy_context(dest,video_context)!=0) ret=false; -@@ -384,7 +397,7 @@ bool cMarkAdDecoder::DecodeVideo(MarkAdC +@@ -384,7 +413,7 @@ bool cMarkAdDecoder::DecodeVideo(MarkAdContext *maCont if (!video_frame) return false; maContext->Video.Data.Valid=false; |