mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-02 01:20:54 +00:00
multimedia/qmmp-qt5: unbreak with ffmpeg 4.0
src/plugins/Input/ffmpeg/decoder_ffmpeg.h:64:43: error: use of undeclared identifier 'FF_INPUT_BUFFER_PADDING_SIZE' uchar m_input_buf[INPUT_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; ^ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:37:17: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' return (int)d->input()->read((char*)buf, size); ^ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:49:16: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' return d->input()->size(); ^ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:54:24: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' absolute_pos = d->input()->pos() + offset; ^ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:57:24: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' absolute_pos = d->input()->size() - offset; ^ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:62:43: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' if(absolute_pos < 0 || absolute_pos > d->input()->size()) ^ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:64:12: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' return d->input()->seek(absolute_pos); ^ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:131:19: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' pd.buf_size = input()->peek((char*)buf, sizeof(buf) - AVPROBE_PADDING_SIZE); ^~~~~ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:153:27: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' m_stream->seekable = !input()->isSequential(); ^~~~~ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:166:9: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' if (input()->isSequential()) ^~~~~ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:204:9: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' addMetaData(metaData); ^~~~~~~~~~~ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:209:5: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' setReplayGainInfo(rg.replayGainInfo()); ^~~~~~~~~~~~~~~~~ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:271:19: error: cannot initialize object parameter of type 'Decoder' with an expression of type 'DecoderFFmpeg' m_totalTime = input()->isSequential() ? 0 : ic->duration * 1000 / AV_TIME_BASE; ^~~~~ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp:301:5: error: no matching member function for call to 'configure' configure(c->sample_rate, m_channels, format); ^~~~~~~~~ src/plugins/Input/ffmpeg/../../../qmmp/decoder.h:177:10: note: candidate function not viable: no known conversion from 'DecoderFFmpeg' to 'Decoder' for object argument void configure(quint32 srate, int channels, Qmmp::AudioFormat f = Qmmp::PCM_S16LE); ^ src/plugins/Input/ffmpeg/../../../qmmp/decoder.h:170:10: note: candidate function not viable: no known conversion from 'DecoderFFmpeg' to 'Decoder' for object argument void configure(quint32 srate, const ChannelMap &map, Qmmp::AudioFormat f = Qmmp::PCM_S16LE); ^ src/plugins/Input/ffmpeg/../../../qmmp/decoder.h:182:10: note: candidate function not viable: requires single argument 'p', but 3 arguments were provided void configure(const AudioParameters &p); ^ PR: 227726 Reported by: antoine (via exp-run)
This commit is contained in:
parent
9f429ebd57
commit
f3f8ee493e
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=468855
@ -116,7 +116,6 @@ GME_DESC= Support video game music files
|
||||
GME_LIB_DEPENDS= libgme.so:audio/libgme
|
||||
GME_CMAKE_BOOL= USE_GME
|
||||
|
||||
FFMPEG_BROKEN= fails to build with ffmpeg 4.0
|
||||
FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
|
||||
FFMPEG_CMAKE_BOOL= USE_FFMPEG
|
||||
|
||||
|
229
multimedia/qmmp-qt5/files/patch-ffmpeg4
Normal file
229
multimedia/qmmp-qt5/files/patch-ffmpeg4
Normal file
@ -0,0 +1,229 @@
|
||||
https://sourceforge.net/p/qmmp-dev/code/7843/
|
||||
|
||||
--- src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp.orig 2017-11-25 10:45:02 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();
|
||||
@@ -368,13 +368,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))
|
||||
{
|
||||
@@ -391,7 +391,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
|
||||
@@ -412,7 +412,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);
|
||||
@@ -429,7 +429,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);
|
||||
@@ -454,7 +454,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);
|
||||
@@ -516,7 +516,7 @@ void DecoderFFmpeg::fillBuffer()
|
||||
if(c->codec_id == AV_CODEC_ID_SHORTEN || c->codec_id == AV_CODEC_ID_TWINVQ)
|
||||
{
|
||||
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);
|
||||
@@ -530,7 +530,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:45:02 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:45:02 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 *
|
||||
@@ -38,9 +38,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
|
||||
--- src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp.orig 2017-11-25 10:45:02 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,7 +78,7 @@ 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;
|
Loading…
Reference in New Issue
Block a user