diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2018-04-27 15:10:49 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2018-04-27 15:10:49 +0000 |
commit | 1462ff79569caa169789dfea478371ddbe8aa42d (patch) | |
tree | 41b53e074d86a1300180e610c76f110963d2963b /multimedia | |
parent | 41624773e854fe7d1039604188e1b3e27daedb58 (diff) |
Notes
Diffstat (limited to 'multimedia')
-rw-r--r-- | multimedia/qmmp/files/patch-ffmpeg4 | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/multimedia/qmmp/files/patch-ffmpeg4 b/multimedia/qmmp/files/patch-ffmpeg4 new file mode 100644 index 000000000000..830760ef33d2 --- /dev/null +++ b/multimedia/qmmp/files/patch-ffmpeg4 @@ -0,0 +1,291 @@ +https://sourceforge.net/p/qmmp-dev/code/7849/ + +--- src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp.orig 2017-11-25 10:42:37 UTC ++++ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp +@@ -1,5 +1,5 @@ + /*************************************************************************** +- * Copyright (C) 2006-2017 by Ilya Kotov * ++ * Copyright (C) 2006-2018 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * This program is free software; you can redistribute it and/or modify * +@@ -22,7 +22,7 @@ + #include <QFile> + #include "replaygainreader.h" + #include "decoder_ffmpeg.h" +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 + extern "C"{ + #include <libavutil/channel_layout.h> + #include <libavutil/frame.h> +@@ -92,14 +92,14 @@ DecoderFFmpeg::~DecoderFFmpeg() + { + m_bitrate = 0; + m_temp_pkt.size = 0; +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1: 57.48.101 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,48,0)) //ffmpeg-3.1: 57.48.101 + if(c) + avcodec_free_context(&c); + #endif + if (ic) + avformat_free_context(ic); + if(m_pkt.data) +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(24<<8)+102)) //ffmpeg-3.0 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,102)) //ffmpeg-3.0 + av_packet_unref(&m_pkt); + #else + av_free_packet(&m_pkt); +@@ -108,7 +108,7 @@ DecoderFFmpeg::~DecoderFFmpeg() + av_free(m_stream); + + if(m_decoded_frame) +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 + av_frame_free(&m_decoded_frame); + #else + av_free(m_decoded_frame); +@@ -208,7 +208,7 @@ bool DecoderFFmpeg::initialize() + ReplayGainReader rg(ic); + setReplayGainInfo(rg.replayGainInfo()); + +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1: 57.48.101 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,4,0)) //ffmpeg-3.1: 57.48.101 + c = avcodec_alloc_context3(NULL); + #endif + +@@ -221,13 +221,13 @@ bool DecoderFFmpeg::initialize() + return false; + } + +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1: 57.48.101 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,48,0)) //ffmpeg-3.1: 57.48.101 + avcodec_parameters_to_context(c, ic->streams[audioIndex]->codecpar); + #else + c = ic->streams[audioIndex]->codec; + #endif + +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 + if (c->channels == 1) + { + c->request_channel_layout = AV_CH_LAYOUT_MONO; +@@ -262,7 +262,7 @@ bool DecoderFFmpeg::initialize() + return false; + } + +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 + m_decoded_frame = av_frame_alloc(); + #else + m_decoded_frame = avcodec_alloc_frame(); +@@ -270,7 +270,7 @@ bool DecoderFFmpeg::initialize() + + m_totalTime = input()->isSequential() ? 0 : ic->duration * 1000 / AV_TIME_BASE; + +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav 10 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav 10 + if(c->codec_id == AV_CODEC_ID_SHORTEN) //ffmpeg bug workaround + m_totalTime = 0; + #else +@@ -373,13 +373,13 @@ qint64 DecoderFFmpeg::ffmpeg_decode() + if(m_pkt.stream_index == audioIndex) + { + +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav-10: 55.34.1; ffmpeg-2.1: 55.39.100 + + #else + avcodec_get_frame_defaults(m_decoded_frame); + #endif + +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1: 57.48.101 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,48,0)) //ffmpeg-3.1: 57.48.101 + int err = avcodec_send_packet(c, &m_temp_pkt); + if(err != 0 && err != AVERROR(EAGAIN) && err != AVERROR(EINVAL)) + { +@@ -396,7 +396,7 @@ qint64 DecoderFFmpeg::ffmpeg_decode() + qWarning("DecoderFFmpeg: avcodec_receive_frame error: %d", err); + return -1; + } +- got_frame = av_frame_get_pkt_size(m_decoded_frame); ++ got_frame = m_decoded_frame->pkt_size; + #else + int l = avcodec_decode_audio4(c, m_decoded_frame, &got_frame, &m_temp_pkt); + #endif +@@ -417,7 +417,7 @@ qint64 DecoderFFmpeg::ffmpeg_decode() + m_temp_pkt.size -= l; + } + if (!m_temp_pkt.size && m_pkt.data) +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(24<<8)+102)) //ffmpeg-3.0 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,102)) //ffmpeg-3.0 + av_packet_unref(&m_pkt); + #else + av_free_packet(&m_pkt); +@@ -434,7 +434,7 @@ void DecoderFFmpeg::seek(qint64 pos) + m_seekTime = timestamp; + av_seek_frame(ic, -1, timestamp, AVSEEK_FLAG_BACKWARD); + avcodec_flush_buffers(c); +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(24<<8)+102)) //ffmpeg-3.0 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,102)) //ffmpeg-3.0 + av_packet_unref(&m_pkt); + #else + av_free_packet(&m_pkt); +@@ -459,7 +459,7 @@ void DecoderFFmpeg::fillBuffer() + if(m_pkt.stream_index != audioIndex) + { + if(m_pkt.data) +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(24<<8)+102)) //ffmpeg-3.0 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,102)) //ffmpeg-3.0 + av_packet_unref(&m_pkt); + #else + av_free_packet(&m_pkt); +@@ -467,7 +467,7 @@ void DecoderFFmpeg::fillBuffer() + m_temp_pkt.size = 0; + continue; + } +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav 10 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav 10 + if(m_seekTime && c->codec_id == AV_CODEC_ID_APE) + #else + if(m_seekTime && c->codec_id == CODEC_ID_APE) +@@ -481,7 +481,7 @@ void DecoderFFmpeg::fillBuffer() + } + m_seekTime = 0; + } +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav 10 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav 10 + if(m_skipBytes > 0 && c->codec_id == AV_CODEC_ID_APE) + #else + if(m_skipBytes > 0 && c->codec_id == CODEC_ID_APE) +@@ -524,14 +524,14 @@ void DecoderFFmpeg::fillBuffer() + m_output_at = 0; + m_temp_pkt.size = 0; + +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav 10 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav 10 + if(c->codec_id == AV_CODEC_ID_SHORTEN || c->codec_id == AV_CODEC_ID_TWINVQ) + #else + if(c->codec_id == CODEC_ID_SHORTEN || c->codec_id == CODEC_ID_TWINVQ) + #endif + { + if(m_pkt.data) +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(24<<8)+102)) //ffmpeg-3.0 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,102)) //ffmpeg-3.0 + av_packet_unref(&m_pkt); + #else + av_free_packet(&m_pkt); +@@ -545,7 +545,7 @@ void DecoderFFmpeg::fillBuffer() + else if(m_output_at == 0) + { + if(m_pkt.data) +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(24<<8)+102)) //ffmpeg-3.0 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,24,102)) //ffmpeg-3.0 + av_packet_unref(&m_pkt); + #else + av_free_packet(&m_pkt); +--- src/plugins/Input/ffmpeg/decoder_ffmpeg.h.orig 2017-11-25 10:42:37 UTC ++++ src/plugins/Input/ffmpeg/decoder_ffmpeg.h +@@ -1,5 +1,5 @@ + /*************************************************************************** +- * Copyright (C) 2006-2017 by Ilya Kotov * ++ * Copyright (C) 2006-2018 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * This program is free software; you can redistribute it and/or modify * +@@ -61,7 +61,12 @@ class DecoderFFmpeg : public Decoder (private) + AVPacket m_pkt; + AVPacket m_temp_pkt; + qint64 m_output_at; ++ ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(58,10,100)) //ffmpeg-3.5 ++ uchar m_input_buf[INPUT_BUFFER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE]; ++#else + uchar m_input_buf[INPUT_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; ++#endif + int64_t m_seekTime; + qint64 m_skipBytes; + int m_channels; +--- src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp.orig 2017-11-25 10:42:37 UTC ++++ src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp +@@ -1,5 +1,5 @@ + /*************************************************************************** +- * Copyright (C) 2008-2017 by Ilya Kotov * ++ * Copyright (C) 2008-2018 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * This program is free software; you can redistribute it and/or modify * +@@ -40,9 +40,11 @@ extern "C"{ + + DecoderFFmpegFactory::DecoderFFmpegFactory() + { ++#if (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58,10,100)) //ffmpeg-3.5 + avcodec_register_all(); + avformat_network_init(); + av_register_all(); ++#endif + } + + bool DecoderFFmpegFactory::canDecode(QIODevice *i) const +@@ -93,7 +95,7 @@ const DecoderProperties DecoderFFmpegFactory::properti + filters = settings.value("FFMPEG/filters", filters).toStringList(); + + //remove unsupported filters +-#if (LIBAVCODEC_VERSION_INT >= ((54<<16) + (51<<8) + 100)) //libav 10 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(54,51,100)) //libav 10 + if(!avcodec_find_decoder(AV_CODEC_ID_WMAV1)) + filters.removeAll("*.wma"); + if(!avcodec_find_decoder(AV_CODEC_ID_APE)) +--- src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp.orig 2017-11-25 10:42:37 UTC ++++ src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp +@@ -1,5 +1,5 @@ + /*************************************************************************** +- * Copyright (C) 2009-2017 by Ilya Kotov * ++ * Copyright (C) 2009-2018 by Ilya Kotov * + * forkotov02@ya.ru * + * * + * This program is free software; you can redistribute it and/or modify * +@@ -55,7 +55,7 @@ QHash<QString, QString> FFmpegMetaDataModel::audioProp + + if(idx >= 0) + { +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1: 57.48.101 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,48,0)) //ffmpeg-3.1: 57.48.101 + AVCodecParameters *c = m_in->streams[idx]->codecpar; + #else + AVCodecContext *c = m_in->streams[idx]->codec; +@@ -70,7 +70,7 @@ QPixmap FFmpegMetaDataModel::cover() + { + if(!m_in) + return QPixmap(); +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1: 57.48.101 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,48,0)) //ffmpeg-3.1: 57.48.101 + AVCodecParameters *c = 0; + #else + AVCodecContext *c = 0; +@@ -78,13 +78,13 @@ QPixmap FFmpegMetaDataModel::cover() + + for (uint idx = 0; idx < m_in->nb_streams; idx++) + { +-#if (LIBAVCODEC_VERSION_INT >= ((57<<16)+(48<<8)+0)) //ffmpeg-3.1: 57.48.101 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57,48,0)) //ffmpeg-3.1: 57.48.101 + c = m_in->streams[idx]->codecpar; + #else + c = m_in->streams[idx]->codec; + #endif + +-#if (LIBAVCODEC_VERSION_INT >= ((55<<16)+(34<<8)+0)) //libav 10 ++#if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,34,0)) //libav 10 + if (c->codec_type == AVMEDIA_TYPE_VIDEO && c->codec_id == AV_CODEC_ID_MJPEG) + #else + if (c->codec_type == AVMEDIA_TYPE_VIDEO && c->codec_id == CODEC_ID_MJPEG) +--- src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h.orig 2017-11-25 10:42:37 UTC ++++ src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h +@@ -24,7 +24,7 @@ + extern "C"{ + #include <libavformat/avformat.h> + #include <libavcodec/avcodec.h> +-#if (LIBAVUTIL_VERSION_INT >= ((51<<16)+(32<<8)+0)) ++#if (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51,32,0)) + #include <libavutil/dict.h> + #endif + } |