office/goldendict: Patch for the newer qt5 and ffmpeg.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
parent
7a5dba5f92
commit
c597630c46
|
@ -53,9 +53,16 @@ cd $TMP
|
|||
rm -rf $PRGNAM-$SRCVER
|
||||
tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz
|
||||
cd $PRGNAM-$SRCVER
|
||||
chown -R root:root .
|
||||
find -L . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
||||
-o -perm 511 \) -exec chmod 755 {} \; -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
$(type -p qmake-qt5 || echo qmake) PREFIX=/usr \
|
||||
# archlinux, thanks for all the patches!
|
||||
for i in $CWD/patches/* ; do patch -p1 < $i ; done
|
||||
|
||||
qmake-qt5 PREFIX=/usr \
|
||||
CONFIG+=no_epwing_support \
|
||||
CONFIG+=zim_support \
|
||||
DISABLE_INTERNAL_PLAYER=$DISABLE_INTERNAL_PLAYER
|
||||
|
|
|
@ -0,0 +1,167 @@
|
|||
From 03bbe01b79a1f07a6780cb60f23a087104c5d77b Mon Sep 17 00:00:00 2001
|
||||
From: Abs62 <ottomann@yandex.ru>
|
||||
Date: Fri, 30 Mar 2018 22:53:24 +0300
|
||||
Subject: [PATCH] Fix warnings while compile with FFMpeg 3.4.2 (issue #978)
|
||||
|
||||
---
|
||||
ffmpegaudio.cc | 68 +++++++++++++++++++++++++++++++++++++++++++++-----
|
||||
1 file changed, 62 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/ffmpegaudio.cc b/ffmpegaudio.cc
|
||||
index ed1172bd..56e8f788 100644
|
||||
--- a/ffmpegaudio.cc
|
||||
+++ b/ffmpegaudio.cc
|
||||
@@ -91,6 +91,7 @@ struct DecoderContext
|
||||
QByteArray audioData_;
|
||||
QDataStream audioDataStream_;
|
||||
AVFormatContext * formatContext_;
|
||||
+ AVCodec * codec_;
|
||||
AVCodecContext * codecContext_;
|
||||
AVIOContext * avioContext_;
|
||||
AVStream * audioStream_;
|
||||
@@ -114,6 +115,7 @@ DecoderContext::DecoderContext( QByteArray const & audioData, QAtomicInt & isCan
|
||||
audioData_( audioData ),
|
||||
audioDataStream_( audioData_ ),
|
||||
formatContext_( NULL ),
|
||||
+ codec_( NULL ),
|
||||
codecContext_( NULL ),
|
||||
avioContext_( NULL ),
|
||||
audioStream_( NULL ),
|
||||
@@ -143,7 +145,11 @@ bool DecoderContext::openCodec( QString & errorString )
|
||||
return false;
|
||||
}
|
||||
|
||||
+#if LIBAVCODEC_VERSION_MAJOR < 56 || ( LIBAVCODEC_VERSION_MAJOR == 56 && LIBAVCODEC_VERSION_MINOR < 56 )
|
||||
unsigned char * avioBuffer = ( unsigned char * )av_malloc( kBufferSize + FF_INPUT_BUFFER_PADDING_SIZE );
|
||||
+#else
|
||||
+ unsigned char * avioBuffer = ( unsigned char * )av_malloc( kBufferSize + AV_INPUT_BUFFER_PADDING_SIZE );
|
||||
+#endif
|
||||
if ( !avioBuffer )
|
||||
{
|
||||
errorString = QObject::tr( "av_malloc() failed." );
|
||||
@@ -186,7 +192,11 @@ bool DecoderContext::openCodec( QString & errorString )
|
||||
// Find audio stream, use the first audio stream if available
|
||||
for ( unsigned i = 0; i < formatContext_->nb_streams; i++ )
|
||||
{
|
||||
+#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 33 )
|
||||
if ( formatContext_->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO )
|
||||
+#else
|
||||
+ if ( formatContext_->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO )
|
||||
+#endif
|
||||
{
|
||||
audioStream_ = formatContext_->streams[i];
|
||||
break;
|
||||
@@ -198,22 +208,38 @@ bool DecoderContext::openCodec( QString & errorString )
|
||||
return false;
|
||||
}
|
||||
|
||||
+#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 33 )
|
||||
codecContext_ = audioStream_->codec;
|
||||
- AVCodec * codec = avcodec_find_decoder( codecContext_->codec_id );
|
||||
- if ( !codec )
|
||||
+ codec_ = avcodec_find_decoder( codecContext_->codec_id );
|
||||
+ if ( !codec_ )
|
||||
{
|
||||
errorString = QObject::tr( "Codec [id: %1] not found." ).arg( codecContext_->codec_id );
|
||||
return false;
|
||||
}
|
||||
+#else
|
||||
+ codec_ = avcodec_find_decoder( audioStream_->codecpar->codec_id );
|
||||
+ if ( !codec_ )
|
||||
+ {
|
||||
+ errorString = QObject::tr( "Codec [id: %1] not found." ).arg( audioStream_->codecpar->codec_id );
|
||||
+ return false;
|
||||
+ }
|
||||
+ codecContext_ = avcodec_alloc_context3( codec_ );
|
||||
+ if ( !codecContext_ )
|
||||
+ {
|
||||
+ errorString = QObject::tr( "avcodec_alloc_context3() failed." );
|
||||
+ return false;
|
||||
+ }
|
||||
+ avcodec_parameters_to_context( codecContext_, audioStream_->codecpar );
|
||||
+#endif
|
||||
|
||||
- ret = avcodec_open2( codecContext_, codec, NULL );
|
||||
+ ret = avcodec_open2( codecContext_, codec_, NULL );
|
||||
if ( ret < 0 )
|
||||
{
|
||||
errorString = QObject::tr( "avcodec_open2() failed: %1." ).arg( avErrorString( ret ) );
|
||||
return false;
|
||||
}
|
||||
|
||||
- av_log( NULL, AV_LOG_INFO, "Codec open: %s: channels: %d, rate: %d, format: %s\n", codec->long_name,
|
||||
+ av_log( NULL, AV_LOG_INFO, "Codec open: %s: channels: %d, rate: %d, format: %s\n", codec_->long_name,
|
||||
codecContext_->channels, codecContext_->sample_rate, av_get_sample_fmt_name( codecContext_->sample_fmt ) );
|
||||
return true;
|
||||
}
|
||||
@@ -252,10 +278,13 @@ void DecoderContext::closeCodec()
|
||||
|
||||
// Closing a codec context without prior avcodec_open2() will result in
|
||||
// a crash in ffmpeg
|
||||
- if ( audioStream_ && audioStream_->codec && audioStream_->codec->codec )
|
||||
+ if ( audioStream_ && codecContext_ && codec_ )
|
||||
{
|
||||
audioStream_->discard = AVDISCARD_ALL;
|
||||
- avcodec_close( audioStream_->codec );
|
||||
+ avcodec_close( codecContext_ );
|
||||
+#if LIBAVCODEC_VERSION_MAJOR > 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR >= 33 )
|
||||
+ avcodec_free_context( &codecContext_ );
|
||||
+#endif
|
||||
}
|
||||
|
||||
avformat_close_input( &formatContext_ );
|
||||
@@ -356,6 +385,7 @@ bool DecoderContext::play( QString & errorString )
|
||||
if ( packet.stream_index == audioStream_->index )
|
||||
{
|
||||
AVPacket pack = packet;
|
||||
+#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 37 )
|
||||
int gotFrame = 0;
|
||||
do
|
||||
{
|
||||
@@ -370,6 +400,19 @@ bool DecoderContext::play( QString & errorString )
|
||||
pack.data += len;
|
||||
}
|
||||
while( pack.size > 0 );
|
||||
+#else
|
||||
+ int ret = avcodec_send_packet( codecContext_, &pack );
|
||||
+ /* read all the output frames (in general there may be any number of them) */
|
||||
+ while( ret >= 0 )
|
||||
+ {
|
||||
+ ret = avcodec_receive_frame( codecContext_, frame);
|
||||
+
|
||||
+ if ( Qt4x5::AtomicInt::loadAcquire( isCancelled_ ) || ret < 0 )
|
||||
+ break;
|
||||
+
|
||||
+ playFrame( frame );
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
// av_free_packet() must be called after each call to av_read_frame()
|
||||
#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 7 )
|
||||
@@ -379,6 +422,7 @@ bool DecoderContext::play( QString & errorString )
|
||||
#endif
|
||||
}
|
||||
|
||||
+#if LIBAVCODEC_VERSION_MAJOR < 57 || ( LIBAVCODEC_VERSION_MAJOR == 57 && LIBAVCODEC_VERSION_MINOR < 37 )
|
||||
if ( !Qt4x5::AtomicInt::loadAcquire( isCancelled_ ) &&
|
||||
codecContext_->codec->capabilities & CODEC_CAP_DELAY )
|
||||
{
|
||||
@@ -391,6 +435,18 @@ bool DecoderContext::play( QString & errorString )
|
||||
playFrame( frame );
|
||||
}
|
||||
}
|
||||
+#else
|
||||
+ /* flush the decoder */
|
||||
+ av_init_packet( &packet );
|
||||
+ int ret = avcodec_send_packet(codecContext_, &packet );
|
||||
+ while( ret >= 0 )
|
||||
+ {
|
||||
+ ret = avcodec_receive_frame(codecContext_, frame);
|
||||
+ if ( Qt4x5::AtomicInt::loadAcquire( isCancelled_ ) || ret < 0 )
|
||||
+ break;
|
||||
+ playFrame( frame );
|
||||
+ }
|
||||
+#endif
|
||||
|
||||
#if LIBAVCODEC_VERSION_MAJOR < 54
|
||||
av_free( frame );
|
|
@ -0,0 +1,34 @@
|
|||
From 3d4a468b6c8cb154c88cf4592a5845973999dc29 Mon Sep 17 00:00:00 2001
|
||||
From: Abs62 <ottomann@yandex.ru>
|
||||
Date: Tue, 10 Apr 2018 18:44:43 +0300
|
||||
Subject: [PATCH] Qt5: Fix compilation with Qt 5.11 (issue #991)
|
||||
|
||||
---
|
||||
fulltextsearch.hh | 1 +
|
||||
initializing.cc | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/fulltextsearch.hh b/fulltextsearch.hh
|
||||
index da7e2943..adf9619f 100644
|
||||
--- a/fulltextsearch.hh
|
||||
+++ b/fulltextsearch.hh
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <QRegExp>
|
||||
#include <QAbstractListModel>
|
||||
#include <QList>
|
||||
+#include <QAction>
|
||||
|
||||
#include "dictionary.hh"
|
||||
#include "ui_fulltextsearch.h"
|
||||
diff --git a/initializing.cc b/initializing.cc
|
||||
index 0db6909b..59e605d6 100644
|
||||
--- a/initializing.cc
|
||||
+++ b/initializing.cc
|
||||
@@ -1,6 +1,7 @@
|
||||
/* This file is (c) 2008-2012 Konstantin Isakov <ikm@goldendict.org>
|
||||
* Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */
|
||||
|
||||
+#include <QIcon>
|
||||
#include "initializing.hh"
|
||||
#include <QCloseEvent>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
From a65967805ab424b299bdfa1d1f9c7ebb8a7fd517 Mon Sep 17 00:00:00 2001
|
||||
From: Perfect Gentleman <perfect007gentleman@gmail.com>
|
||||
Date: Wed, 11 Apr 2018 00:04:12 +0700
|
||||
Subject: [PATCH] Update groups_widgets.hh
|
||||
|
||||
fixes https://github.com/goldendict/goldendict/issues/991
|
||||
---
|
||||
groups_widgets.hh | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/groups_widgets.hh b/groups_widgets.hh
|
||||
index ce442fa2..2064e3bb 100644
|
||||
--- a/groups_widgets.hh
|
||||
+++ b/groups_widgets.hh
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
+#include <QAction>
|
||||
#include <QListWidget>
|
||||
#include <QSortFilterProxyModel>
|
||||
|
Loading…
Reference in New Issue