--- xbmc-17.6-Krypton/xbmc/cores/AudioEngine/Encoders/AEEncoderFFmpeg.h 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/cores/AudioEngine/Encoders/AEEncoderFFmpeg.h 2018-07-02 20:54:54.388785087 +0200 @@ -56,7 +56,7 @@ SwrContext *m_SwrCtx; CAEChannelInfo m_Layout; AVPacket m_Pkt; - uint8_t m_Buffer[8 + FF_MIN_BUFFER_SIZE]; + uint8_t m_Buffer[8 + AV_INPUT_BUFFER_MIN_SIZE]; int m_BufferSize; int m_OutputSize; double m_OutputRatio; --- xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp 2018-07-02 21:13:08.856841550 +0200 @@ -82,8 +82,8 @@ m_pCodecContext->debug = 0; m_pCodecContext->workaround_bugs = 1; - if (pCodec->capabilities & CODEC_CAP_TRUNCATED) - m_pCodecContext->flags |= CODEC_FLAG_TRUNCATED; + if (pCodec->capabilities & AV_CODEC_CAP_TRUNCATED) + m_pCodecContext->flags |= AV_CODEC_FLAG_TRUNCATED; m_matrixEncoding = AV_MATRIX_ENCODING_NONE; m_channels = 0; @@ -98,7 +98,7 @@ if( hints.extradata && hints.extrasize > 0 ) { - m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + FF_INPUT_BUFFER_PADDING_SIZE); + m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + AV_INPUT_BUFFER_PADDING_SIZE); if(m_pCodecContext->extradata) { m_pCodecContext->extradata_size = hints.extrasize; --- xbmc-17.6-Krypton/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEFilter.cpp 2018-07-02 21:06:40.206821500 +0200 @@ -91,7 +91,13 @@ return false; } +#if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(7,0,0) + const +#endif AVFilter* srcFilter = avfilter_get_by_name("abuffer"); +#if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(7,0,0) + const +#endif AVFilter* outFilter = avfilter_get_by_name("abuffersink"); std::string args = StringUtils::Format("time_base=1/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%" PRIx64, @@ -121,6 +127,9 @@ bool CActiveAEFilter::CreateAtempoFilter() { +#if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(7,0,0) + const +#endif AVFilter *atempo; atempo = avfilter_get_by_name("atempo"); --- xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp 2018-07-02 21:22:36.309870824 +0200 @@ -73,7 +73,7 @@ if( hints.extradata && hints.extrasize > 0 ) { m_pCodecContext->extradata_size = hints.extrasize; - m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + FF_INPUT_BUFFER_PADDING_SIZE); + m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + AV_INPUT_BUFFER_PADDING_SIZE); memcpy(m_pCodecContext->extradata, hints.extradata, hints.extrasize); // start parsing of extra data - create a copy to be safe and make it zero-terminating to avoid access violations! --- xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxUtils.cpp 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxUtils.cpp 2018-07-02 21:23:35.419873874 +0200 @@ -68,7 +68,7 @@ * Note, if the first 23 bits of the additional bytes are not 0 then damaged * MPEG bitstreams could cause overread and segfault */ - pPacket->pData =(uint8_t*)_aligned_malloc(iDataSize + FF_INPUT_BUFFER_PADDING_SIZE, 16); + pPacket->pData =(uint8_t*)_aligned_malloc(iDataSize + AV_INPUT_BUFFER_PADDING_SIZE, 16); if (!pPacket->pData) { FreeDemuxPacket(pPacket); @@ -76,7 +76,7 @@ } // reset the last 8 bytes to 0; - memset(pPacket->pData + iDataSize, 0, FF_INPUT_BUFFER_PADDING_SIZE); + memset(pPacket->pData + iDataSize, 0, AV_INPUT_BUFFER_PADDING_SIZE); } // setup defaults --- xbmc-17.6-Krypton/xbmc/utils/BitstreamConverter.cpp 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/utils/BitstreamConverter.cpp 2018-07-02 21:26:49.852883905 +0200 @@ -686,13 +686,13 @@ unit_size = extradata[0] << 8 | extradata[1]; total_size += unit_size + 4; - if (total_size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE || + if (total_size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE || (extradata + 2 + unit_size) > ((uint8_t*)in_extradata + in_extrasize)) { av_free(out); return false; } - tmp = av_realloc(out, total_size + FF_INPUT_BUFFER_PADDING_SIZE); + tmp = av_realloc(out, total_size + AV_INPUT_BUFFER_PADDING_SIZE); if (!tmp) { av_free(out); @@ -713,7 +713,7 @@ } if (out) - memset(out + total_size, 0, FF_INPUT_BUFFER_PADDING_SIZE); + memset(out + total_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); if (!sps_seen) CLog::Log(LOGDEBUG, "SPS NALU missing or invalid. The resulting stream may not play"); @@ -776,13 +776,13 @@ } total_size += unit_size + 4; - if (total_size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE || + if (total_size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE || (extradata + unit_size) > ((uint8_t*)in_extradata + in_extrasize)) { av_free(out); return false; } - tmp = av_realloc(out, total_size + FF_INPUT_BUFFER_PADDING_SIZE); + tmp = av_realloc(out, total_size + AV_INPUT_BUFFER_PADDING_SIZE); if (!tmp) { av_free(out); @@ -796,7 +796,7 @@ } if (out) - memset(out + total_size, 0, FF_INPUT_BUFFER_PADDING_SIZE); + memset(out + total_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); if (!sps_seen) CLog::Log(LOGDEBUG, "SPS NALU missing or invalid. The resulting stream may not play"); --- xbmc-17.6-Krypton/xbmc/guilib/FFmpegImage.cpp 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/guilib/FFmpegImage.cpp 2018-07-02 21:29:40.403892703 +0200 @@ -551,7 +551,7 @@ tdm.avOutctx->time_base.num = 1; tdm.avOutctx->time_base.den = 1; tdm.avOutctx->pix_fmt = jpg_output ? AV_PIX_FMT_YUVJ420P : AV_PIX_FMT_RGBA; - tdm.avOutctx->flags = CODEC_FLAG_QSCALE; + tdm.avOutctx->flags = AV_CODEC_FLAG_QSCALE; tdm.avOutctx->mb_lmin = tdm.avOutctx->qmin * FF_QP2LAMBDA; tdm.avOutctx->mb_lmax = tdm.avOutctx->qmax * FF_QP2LAMBDA; tdm.avOutctx->global_quality = tdm.avOutctx->qmin * FF_QP2LAMBDA; --- xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxClient.cpp 2018-07-02 21:32:30.151901460 +0200 @@ -25,7 +25,7 @@ #include "settings/Settings.h" #include "../DVDClock.h" -#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE) +#define AV_MAX_EXTRADATA_SIZE ((1 << 28) - AV_INPUT_BUFFER_PADDING_SIZE) class CDemuxStreamClientInternal @@ -172,16 +172,16 @@ if (stream->m_parser_split && stream->m_parser->parser->split) { int len = stream->m_parser->parser->split(stream->m_context, pkt->pData, pkt->iSize); - if (len > 0 && len < FF_MAX_EXTRADATA_SIZE) + if (len > 0 && len < AV_MAX_EXTRADATA_SIZE) { if (st->ExtraData) delete[] (uint8_t*)st->ExtraData; st->changes++; st->disabled = false; st->ExtraSize = len; - st->ExtraData = new uint8_t[len+FF_INPUT_BUFFER_PADDING_SIZE]; + st->ExtraData = new uint8_t[len+AV_INPUT_BUFFER_PADDING_SIZE]; memcpy(st->ExtraData, pkt->pData, len); - memset((uint8_t*)st->ExtraData + len, 0 , FF_INPUT_BUFFER_PADDING_SIZE); + memset((uint8_t*)st->ExtraData + len, 0 , AV_INPUT_BUFFER_PADDING_SIZE); stream->m_parser_split = false; } } --- xbmc-17.6-Krypton/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp 2017-11-14 17:55:01.000000000 +0100 +++ xbmc-17.6-Krypton/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp 2018-07-02 21:39:23.350922777 +0200 @@ -86,8 +86,8 @@ m_pCodecContext->debug = 0; m_pCodecContext->workaround_bugs = 1; - if (pCodec->capabilities & CODEC_CAP_TRUNCATED) - m_pCodecContext->flags |= CODEC_FLAG_TRUNCATED; + if (pCodec->capabilities & AV_CODEC_CAP_TRUNCATED) + m_pCodecContext->flags |= AV_CODEC_FLAG_TRUNCATED; m_channels = 0; m_pCodecContext->channels = hints.channels; @@ -110,7 +110,7 @@ if( hints.extradata && hints.extrasize > 0 ) { - m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + FF_INPUT_BUFFER_PADDING_SIZE); + m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + AV_INPUT_BUFFER_PADDING_SIZE); if(m_pCodecContext->extradata) { m_pCodecContext->extradata_size = hints.extrasize; @@ -222,7 +222,7 @@ if (m_iBufferOutputAlloced < m_iBufferOutputUsed + outputSize) { - m_pBufferOutput = (BYTE*)av_realloc(m_pBufferOutput, m_iBufferOutputUsed + outputSize + FF_INPUT_BUFFER_PADDING_SIZE); + m_pBufferOutput = (BYTE*)av_realloc(m_pBufferOutput, m_iBufferOutputUsed + outputSize + AV_INPUT_BUFFER_PADDING_SIZE); m_iBufferOutputAlloced = m_iBufferOutputUsed + outputSize; } --- xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp.orig 2018-07-03 03:58:00.987120857 +0200 +++ xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp 2018-07-03 04:00:22.013863754 +0200 @@ -382,16 +382,6 @@ else m_decoderState = STATE_SW_SINGLE; -#if defined(TARGET_DARWIN_IOS) - // ffmpeg with enabled neon will crash and burn if this is enabled - m_pCodecContext->flags &= CODEC_FLAG_EMU_EDGE; -#else - if (pCodec->id != AV_CODEC_ID_H264 && pCodec->capabilities & CODEC_CAP_DR1 - && pCodec->id != AV_CODEC_ID_VP8 - ) - m_pCodecContext->flags |= CODEC_FLAG_EMU_EDGE; -#endif - // if we don't do this, then some codecs seem to fail. m_pCodecContext->coded_height = hints.height; m_pCodecContext->coded_width = hints.width; @@ -882,23 +872,7 @@ else pDvdVideoPicture->color_range = 0; - int qscale_type; - pDvdVideoPicture->qp_table = av_frame_get_qp_table(m_pFrame, &pDvdVideoPicture->qstride, &qscale_type); - - switch (qscale_type) - { - case FF_QSCALE_TYPE_MPEG1: - pDvdVideoPicture->qscale_type = DVP_QSCALE_MPEG1; - break; - case FF_QSCALE_TYPE_MPEG2: - pDvdVideoPicture->qscale_type = DVP_QSCALE_MPEG2; - break; - case FF_QSCALE_TYPE_H264: - pDvdVideoPicture->qscale_type = DVP_QSCALE_H264; - break; - default: - pDvdVideoPicture->qscale_type = DVP_QSCALE_UNKNOWN; - } + pDvdVideoPicture->qp_table = av_frame_get_qp_table(m_pFrame, &pDvdVideoPicture->qstride, &pDvdVideoPicture->qscale_type); if (pDvdVideoPicture->iRepeatPicture) pDvdVideoPicture->dts = DVD_NOPTS_VALUE; @@ -989,7 +963,13 @@ return -1; } +#if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(7,0,0) + const +#endif AVFilter* srcFilter = avfilter_get_by_name("buffer"); +#if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(7,0,0) + const +#endif AVFilter* outFilter = avfilter_get_by_name("buffersink"); // should be last filter in the graph for now std::string args = StringUtils::Format("%d:%d:%d:%d:%d:%d:%d", --- xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp.orig 2018-07-03 04:09:57.457702946 +0200 +++ xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp 2018-07-03 04:10:31.769395588 +0200 @@ -390,7 +390,7 @@ if( hints.extradata && hints.extrasize > 0 ) { m_pCodecContext->extradata_size = hints.extrasize; - m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + FF_INPUT_BUFFER_PADDING_SIZE); + m_pCodecContext->extradata = (uint8_t*)av_mallocz(hints.extrasize + AV_INPUT_BUFFER_PADDING_SIZE); memcpy(m_pCodecContext->extradata, hints.extradata, hints.extrasize); } --- xbmc-17.6-Krypton/xbmc/cdrip/EncoderFFmpeg.cpp.orig 2018-07-03 04:15:20.761822331 +0200 +++ xbmc-17.6-Krypton/xbmc/cdrip/EncoderFFmpeg.cpp 2018-07-03 04:16:14.960339734 +0200 @@ -119,8 +119,8 @@ if(m_Format->oformat->flags & AVFMT_GLOBALHEADER) { - m_CodecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER; - m_Format->flags |= CODEC_FLAG_GLOBAL_HEADER; + m_CodecCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; + m_Format->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; } switch(m_iInBitsPerSample) --- xbmc-17.6-Krypton/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp.orig 2018-07-03 04:22:26.222041472 +0200 +++ xbmc-17.6-Krypton/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp 2018-07-03 04:22:44.318880987 +0200 @@ -2955,7 +2955,7 @@ int fileSize = sound->GetFileSize(); fmt_ctx = avformat_alloc_context(); - unsigned char* buffer = (unsigned char*)av_malloc(SOUNDBUFFER_SIZE+FF_INPUT_BUFFER_PADDING_SIZE); + unsigned char* buffer = (unsigned char*)av_malloc(SOUNDBUFFER_SIZE+AV_INPUT_BUFFER_PADDING_SIZE); io_ctx = avio_alloc_context(buffer, SOUNDBUFFER_SIZE, 0, sound, CActiveAESound::Read, NULL, CActiveAESound::Seek); io_ctx->max_packet_size = sound->GetChunkSize(); --- xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp.orig 2018-07-03 04:29:28.402298801 +0200 +++ xbmc-17.6-Krypton/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp 2018-07-03 04:30:42.334643983 +0200 @@ -78,7 +78,7 @@ {} }; -#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE) +#define AV_MAX_EXTRADATA_SIZE ((1 << 28) - AV_INPUT_BUFFER_PADDING_SIZE) std::string CDemuxStreamAudioFFmpeg::GetStreamName() { @@ -1876,17 +1876,17 @@ if(st->parser && st->parser->parser->split && !st->codec->extradata) { int i = st->parser->parser->split(st->codec, pkt->data, pkt->size); - if (i > 0 && i < FF_MAX_EXTRADATA_SIZE) + if (i > 0 && i < AV_MAX_EXTRADATA_SIZE) { // Found extradata, fill it in. This will cause // a new stream to be created and used. st->codec->extradata_size = i; - st->codec->extradata = (uint8_t*)av_malloc(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); + st->codec->extradata = (uint8_t*)av_malloc(st->codec->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); if (st->codec->extradata) { CLog::Log(LOGDEBUG, "CDVDDemuxFFmpeg::Read() fetching extradata, extradata_size(%d)", st->codec->extradata_size); memcpy(st->codec->extradata, pkt->data, st->codec->extradata_size); - memset(st->codec->extradata + i, 0, FF_INPUT_BUFFER_PADDING_SIZE); + memset(st->codec->extradata + i, 0, AV_INPUT_BUFFER_PADDING_SIZE); } else {