[neon/extras/qtav/Neon/unstable] debian: rebase
Carlos De Maine
null at kde.org
Wed Jul 3 05:02:56 BST 2024
Git commit c72e9e5df8fe898efb42572e7901d6727325b468 by Carlos De Maine.
Committed on 03/07/2024 at 04:02.
Pushed by carlosdem into branch 'Neon/unstable'.
rebase
M +1 -0 debian/changelog
M +93 -324 debian/patches/neon_ffmpeg5_support.diff
https://invent.kde.org/neon/extras/qtav/-/commit/c72e9e5df8fe898efb42572e7901d6727325b468
diff --git a/debian/changelog b/debian/changelog
index 39e0f4d..039c71b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,5 @@
qtav (1.13.0+ds-5) jammy; urgency=medium
+qtav (1.13.0+ds-5) noble; urgency=medium
* New release
diff --git a/debian/patches/neon_ffmpeg5_support.diff b/debian/patches/neon_ffmpeg5_support.diff
index 7085c19..ed11f85 100644
--- a/debian/patches/neon_ffmpeg5_support.diff
+++ b/debian/patches/neon_ffmpeg5_support.diff
@@ -1,8 +1,6 @@
-diff --git a/.qmake.conf b/.qmake.conf
-index ef57faf62..d8ad71d96 100644
--- a/.qmake.conf
+++ b/.qmake.conf
-@@ -10,5 +10,17 @@ CONFIG *= enable_new_dtags
+@@ -10,5 +10,17 @@
# OSX10.6 is not supported in Qt5.4
macx:isEqual(QT_MAJOR_VERSION,5):greaterThan(QT_MINOR_VERSION, 3): CONFIG *= c++11
android: CONFIG*=c++11
@@ -20,11 +18,9 @@ index ef57faf62..d8ad71d96 100644
+ INCLUDEPATH += $$PWD/../avbuild/sdk-macOS10.7x86_64-clang/include
+ LIBS += -L$$PWD/../avbuild/sdk-macOS10.7x86_64-clang/lib
+}
-diff --git a/examples/examples.pro b/examples/examples.pro
-index 4a11c79ad..a5b950f92 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
-@@ -8,13 +8,14 @@ SUBDIRS = common
+@@ -8,13 +8,14 @@
sharedoutput \
simpletranscode \
simpleplayer \
@@ -43,7 +39,7 @@ index 4a11c79ad..a5b950f92 100644
contains(QT_CONFIG, opengl): SUBDIRS += \
shader \
glslfilter
-@@ -30,12 +31,12 @@ contains(QT_CONFIG, opengl): SUBDIRS += \
+@@ -30,12 +31,12 @@
}
greaterThan(QT_MAJOR_VERSION, 4) {
@@ -58,13 +54,11 @@ index 4a11c79ad..a5b950f92 100644
QMLPlayer.depends += common
sdk_build: SUBDIRS *= QMLPlayer/QMLPlayer_sdk.pro
}
-diff --git a/examples/videographicsitem/videoplayer.cpp b/examples/videographicsitem/videoplayer.cpp
-index ce705496c..f298ec350 100644
--- a/examples/videographicsitem/videoplayer.cpp
+++ b/examples/videographicsitem/videoplayer.cpp
@@ -23,6 +23,9 @@
- #if !defined(QT_NO_OPENGL) && QT_VERSION < QT_VERSION_CHECK(6,0,0)
+ #ifndef QT_NO_OPENGL
#include <QtOpenGL/QGLWidget>
+#elif !defined(QT_NO_OPENGL)
+#include <QtOpenGLWidgets/QOpenGLWidget>
@@ -72,11 +66,9 @@ index ce705496c..f298ec350 100644
#endif
#include <QCheckBox>
-diff --git a/qml/QmlAV/QQuickItemRenderer.h b/qml/QmlAV/QQuickItemRenderer.h
-index 524bc396f..64f1dcfd8 100644
--- a/qml/QmlAV/QQuickItemRenderer.h
+++ b/qml/QmlAV/QQuickItemRenderer.h
-@@ -97,8 +97,11 @@ class QQuickItemRenderer : public QQuickItem, public VideoRenderer
+@@ -97,8 +97,11 @@
void backgroundColorChanged() Q_DECL_OVERRIDE;
protected:
bool event(QEvent *e) Q_DECL_OVERRIDE;
@@ -89,8 +81,6 @@ index 524bc396f..64f1dcfd8 100644
bool receiveFrame(const VideoFrame &frame) Q_DECL_OVERRIDE;
void drawFrame() Q_DECL_OVERRIDE;
// QQuickItem interface
-diff --git a/qml/QmlAV/QmlAVPlayer.h b/qml/QmlAV/QmlAVPlayer.h
-index 71513b298..2130f36a5 100644
--- a/qml/QmlAV/QmlAVPlayer.h
+++ b/qml/QmlAV/QmlAVPlayer.h
@@ -1,4 +1,4 @@
@@ -99,7 +89,7 @@ index 71513b298..2130f36a5 100644
QtAV: Multimedia framework based on Qt and FFmpeg
Copyright (C) 2012-2017 Wang Bin <wbsecg1 at gmail.com>
-@@ -357,13 +357,19 @@ private Q_SLOTS:
+@@ -357,13 +357,19 @@
void applyChannelLayout();
private:
@@ -123,11 +113,9 @@ index 71513b298..2130f36a5 100644
static void vf_clear(QQmlListProperty<QuickVideoFilter> *property);
Q_DISABLE_COPY(QmlAVPlayer)
-diff --git a/qml/QmlAV/QuickFBORenderer.h b/qml/QmlAV/QuickFBORenderer.h
-index f156c02bb..1226086a9 100644
--- a/qml/QmlAV/QuickFBORenderer.h
+++ b/qml/QmlAV/QuickFBORenderer.h
-@@ -122,9 +122,14 @@ class QuickFBORenderer : public QQuickFramebufferObject, public VideoRenderer
+@@ -122,9 +122,14 @@
bool onSetSaturation(qreal s) Q_DECL_OVERRIDE;
void updateRenderRect();
@@ -144,11 +132,9 @@ index f156c02bb..1226086a9 100644
static void vf_clear(QQmlListProperty<QuickVideoFilter> *property);
};
typedef QuickFBORenderer VideoRendererQuickFBO;
-diff --git a/qml/QmlAV/QuickSubtitleItem.h b/qml/QmlAV/QuickSubtitleItem.h
-index 250117c96..258163c35 100644
--- a/qml/QmlAV/QuickSubtitleItem.h
+++ b/qml/QmlAV/QuickSubtitleItem.h
-@@ -54,7 +54,11 @@ class QuickSubtitleItem : public QQuickItem, public QuickSubtitleObserver
+@@ -54,7 +54,11 @@
QRectF mapSubRect(const QRect& r, qreal w, qreal h);
virtual QSGNode *updatePaintNode(QSGNode *node, UpdatePaintNodeData *data);
virtual bool event(QEvent *e);
@@ -160,8 +146,6 @@ index 250117c96..258163c35 100644
private:
QuickSubtitle *m_sub;
QSGTexture* m_texture;
-diff --git a/qml/QmlAVPlayer.cpp b/qml/QmlAVPlayer.cpp
-index f1bc5a0e2..94d03513f 100644
--- a/qml/QmlAVPlayer.cpp
+++ b/qml/QmlAVPlayer.cpp
@@ -1,4 +1,4 @@
@@ -170,7 +154,7 @@ index f1bc5a0e2..94d03513f 100644
QtAV: Multimedia framework based on Qt and FFmpeg
Copyright (C) 2012-2017 Wang Bin <wbsecg1 at gmail.com>
-@@ -538,13 +538,13 @@ void QmlAVPlayer::af_append(QQmlListProperty<QuickAudioFilter> *property, QuickA
+@@ -538,13 +538,13 @@
self->mpPlayer->installFilter(value);
}
@@ -186,7 +170,7 @@ index f1bc5a0e2..94d03513f 100644
{
QmlAVPlayer* self = static_cast<QmlAVPlayer*>(property->object);
return self->m_afilters.at(index);
-@@ -569,13 +569,13 @@ void QmlAVPlayer::vf_append(QQmlListProperty<QuickVideoFilter> *property, QuickV
+@@ -569,13 +569,13 @@
self->mpPlayer->installFilter(value);
}
@@ -202,11 +186,9 @@ index f1bc5a0e2..94d03513f 100644
{
QmlAVPlayer* self = static_cast<QmlAVPlayer*>(property->object);
return self->m_vfilters.at(index);
-diff --git a/qml/QuickFBORenderer.cpp b/qml/QuickFBORenderer.cpp
-index 02177ebb1..42bc291bb 100644
--- a/qml/QuickFBORenderer.cpp
+++ b/qml/QuickFBORenderer.cpp
-@@ -345,13 +345,13 @@ void QuickFBORenderer::vf_append(QQmlListProperty<QuickVideoFilter> *property, Q
+@@ -345,13 +345,13 @@
self->installFilter(value);
}
@@ -222,11 +204,9 @@ index 02177ebb1..42bc291bb 100644
{
QuickFBORenderer* self = static_cast<QuickFBORenderer*>(property->object);
return self->d_func().filters.at(index);
-diff --git a/qml/QuickSubtitleItem.cpp b/qml/QuickSubtitleItem.cpp
-index cc25da61d..2d2fab55a 100644
--- a/qml/QuickSubtitleItem.cpp
+++ b/qml/QuickSubtitleItem.cpp
-@@ -153,9 +153,22 @@ bool QuickSubtitleItem::event(QEvent *e)
+@@ -153,9 +153,22 @@
return true;
}
@@ -249,11 +229,9 @@ index cc25da61d..2d2fab55a 100644
+}
+
+#endif
-diff --git a/qml/libQmlAV.pro b/qml/libQmlAV.pro
-index e07c3e8c9..73de6aa72 100644
--- a/qml/libQmlAV.pro
+++ b/qml/libQmlAV.pro
-@@ -77,8 +77,6 @@ QMAKE_TARGET_PRODUCT = "QtAV QML"
+@@ -77,8 +77,6 @@
SOURCES += \
plugin.cpp \
@@ -262,7 +240,7 @@ index e07c3e8c9..73de6aa72 100644
QmlAVPlayer.cpp \
QuickFilter.cpp \
QuickSubtitle.cpp \
-@@ -91,14 +89,24 @@ HEADERS += \
+@@ -91,14 +89,24 @@
QmlAV/QuickSubtitleItem.h \
QmlAV/QuickVideoPreview.h
@@ -289,11 +267,9 @@ index e07c3e8c9..73de6aa72 100644
HEADERS *= \
$$SDK_HEADERS
-diff --git a/qml/plugin.cpp b/qml/plugin.cpp
-index 10734eeec..c4adebca0 100644
--- a/qml/plugin.cpp
+++ b/qml/plugin.cpp
-@@ -51,7 +51,9 @@ class QtAVQmlPlugin : public QQmlExtensionPlugin
+@@ -51,7 +51,9 @@
void registerTypes(const char *uri)
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtAV"));
@@ -303,7 +279,7 @@ index 10734eeec..c4adebca0 100644
qmlRegisterType<QmlAVPlayer>(uri, 1, 3, "AVPlayer");
qmlRegisterType<QmlAVPlayer>(uri, 1, 3, "MediaPlayer");
qmlRegisterType<QuickSubtitle>(uri, 1, 4, "Subtitle");
-@@ -60,8 +62,8 @@ class QtAVQmlPlugin : public QQmlExtensionPlugin
+@@ -60,8 +62,8 @@
#if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
qmlRegisterType<QuickFBORenderer>(uri, 1, 5, "VideoOutput2");
#endif
@@ -314,11 +290,9 @@ index 10734eeec..c4adebca0 100644
// FIXME: if version is 2.x, some qtav types will be undefined, why?
// 1.7
-diff --git a/src/AVCompat.cpp b/src/AVCompat.cpp
-index befb3cd9f..cf113f038 100644
--- a/src/AVCompat.cpp
+++ b/src/AVCompat.cpp
-@@ -391,7 +391,7 @@ const char *get_codec_long_name(enum AVCodecID id)
+@@ -391,7 +391,7 @@
if (cd)
return cd->long_name;
av_log(NULL, AV_LOG_WARNING, "Codec 0x%x is not in the full list.\n", id);
@@ -327,11 +301,9 @@ index befb3cd9f..cf113f038 100644
if (codec)
return codec->long_name;
codec = avcodec_find_encoder(id);
-diff --git a/src/AVDemuxer.cpp b/src/AVDemuxer.cpp
-index e81ef79fa..b8bd55e93 100644
--- a/src/AVDemuxer.cpp
+++ b/src/AVDemuxer.cpp
-@@ -291,7 +291,7 @@ class AVDemuxer::Private
+@@ -290,7 +290,7 @@
//copy the info, not parse the file when constructed, then need member vars
QString file;
QString file_orig;
@@ -340,7 +312,7 @@ index e81ef79fa..b8bd55e93 100644
QString format_forced;
MediaIO *input;
-@@ -311,7 +311,11 @@ class AVDemuxer::Private
+@@ -310,7 +310,11 @@
// wanted_stream is REQUIRED. e.g. always set -1 to indicate the default stream, -2 to disable
int stream, wanted_stream; // -1 default, selected by ff
int index, wanted_index; // index in a kind of streams
@@ -352,7 +324,7 @@ index e81ef79fa..b8bd55e93 100644
} StreamInfo;
StreamInfo astream, vstream, sstream;
-@@ -432,6 +436,13 @@ const QStringList &AVDemuxer::supportedProtocols()
+@@ -423,6 +427,13 @@
return protocols;
}
@@ -366,7 +338,7 @@ index e81ef79fa..b8bd55e93 100644
MediaStatus AVDemuxer::mediaStatus() const
{
return d->media_status;
-@@ -623,12 +634,14 @@ bool AVDemuxer::seek(qint64 pos)
+@@ -614,12 +625,14 @@
if (upos <= startTime()) {
qDebug("************seek to beginning. started = false");
d->started = false; //???
@@ -381,7 +353,7 @@ index e81ef79fa..b8bd55e93 100644
}
return true;
}
-@@ -699,6 +712,8 @@ bool AVDemuxer::setMedia(const QString &fileName)
+@@ -690,6 +703,8 @@
d->input = MediaIO::createForProtocol(scheme);
if (d->input) {
d->input->setUrl(d->file);
@@ -390,7 +362,7 @@ index e81ef79fa..b8bd55e93 100644
}
}
return d->media_changed;
-@@ -795,7 +810,9 @@ bool AVDemuxer::load()
+@@ -786,7 +801,9 @@
// check special dict keys
// d->format_forced can be set from AVFormatContext.format_whitelist
if (!d->format_forced.isEmpty()) {
@@ -401,7 +373,7 @@ index e81ef79fa..b8bd55e93 100644
qDebug() << "force format: " << d->format_forced;
}
int ret = 0;
-@@ -1071,37 +1088,61 @@ QList<int> AVDemuxer::subtitleStreams() const
+@@ -1062,37 +1079,61 @@
return d->subtitle_streams;
}
@@ -463,7 +435,7 @@ index e81ef79fa..b8bd55e93 100644
if (avctx->codec_type == AVMEDIA_TYPE_SUBTITLE)
return avctx;
return 0;
-@@ -1298,7 +1339,11 @@ bool AVDemuxer::Private::setStream(AVDemuxer::StreamType st, int streamValue)
+@@ -1289,7 +1330,11 @@
// don't touch wanted index
si->stream = s;
si->wanted_stream = streamValue;
@@ -475,7 +447,7 @@ index e81ef79fa..b8bd55e93 100644
has_attached_pic = !!(format_ctx->streams[s]->disposition & AV_DISPOSITION_ATTACHED_PIC);
return true;
}
-@@ -1311,7 +1356,11 @@ bool AVDemuxer::Private::prepareStreams()
+@@ -1302,7 +1347,11 @@
return false;
AVMediaType type = AVMEDIA_TYPE_UNKNOWN;
for (unsigned int i = 0; i < format_ctx->nb_streams; ++i) {
@@ -487,11 +459,9 @@ index e81ef79fa..b8bd55e93 100644
if (type == AVMEDIA_TYPE_VIDEO) {
video_streams.push_back(i);
} else if (type == AVMEDIA_TYPE_AUDIO) {
-diff --git a/src/AVMuxer.cpp b/src/AVMuxer.cpp
-index 8ee692cc0..39e2a9496 100644
--- a/src/AVMuxer.cpp
+++ b/src/AVMuxer.cpp
-@@ -81,7 +81,7 @@ class AVMuxer::Private
+@@ -81,7 +81,7 @@
//copy the info, not parse the file when constructed, then need member vars
QString file;
QString file_orig;
@@ -500,7 +470,7 @@ index 8ee692cc0..39e2a9496 100644
QString format_forced;
MediaIO *io;
-@@ -94,7 +94,7 @@ class AVMuxer::Private
+@@ -94,7 +94,7 @@
AVStream *AVMuxer::Private::addStream(AVFormatContext* ctx, const QString &codecName, AVCodecID codecId)
{
@@ -509,7 +479,7 @@ index 8ee692cc0..39e2a9496 100644
if (!codecName.isEmpty()) {
codec = avcodec_find_encoder_by_name(codecName.toUtf8().constData());
if (!codec) {
-@@ -120,7 +120,8 @@ AVStream *AVMuxer::Private::addStream(AVFormatContext* ctx, const QString &codec
+@@ -120,7 +120,8 @@
// set by avformat if unset
s->id = ctx->nb_streams - 1;
s->time_base = kTB;
@@ -519,7 +489,7 @@ index 8ee692cc0..39e2a9496 100644
c->codec_id = codec->id;
// Using codec->time_base is deprecated, but needed for older lavf.
c->time_base = s->time_base;
-@@ -129,6 +130,7 @@ AVStream *AVMuxer::Private::addStream(AVFormatContext* ctx, const QString &codec
+@@ -129,6 +130,7 @@
c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
// expose avctx to encoder and set properties in encoder?
// list codecs for a given format in ui
@@ -527,7 +497,7 @@ index 8ee692cc0..39e2a9496 100644
return s;
}
-@@ -137,16 +139,24 @@ bool AVMuxer::Private::prepareStreams()
+@@ -137,16 +139,24 @@
audio_streams.clear();
video_streams.clear();
subtitle_streams.clear();
@@ -553,7 +523,7 @@ index 8ee692cc0..39e2a9496 100644
// Set avg_frame_rate based on encoder frame_rate
s->avg_frame_rate = av_d2q(venc->frameRate(), venc->frameRate()*1001.0+2);
-@@ -157,11 +167,19 @@ bool AVMuxer::Private::prepareStreams()
+@@ -157,11 +167,19 @@
if (aenc) {
AVStream *s = addStream(format_ctx, aenc->codecName(), fmt->audio_codec);
if (s) {
@@ -573,11 +543,9 @@ index 8ee692cc0..39e2a9496 100644
c->channel_layout = aenc->audioFormat().channelLayoutFFmpeg();
c->channels = aenc->audioFormat().channels();
c->bits_per_raw_sample = aenc->audioFormat().bytesPerSample()*8; // need??
-diff --git a/src/AVPlayerPrivate.cpp b/src/AVPlayerPrivate.cpp
-index 79eeff186..2c94fbc41 100644
--- a/src/AVPlayerPrivate.cpp
+++ b/src/AVPlayerPrivate.cpp
-@@ -56,7 +56,11 @@ int computeNotifyPrecision(qint64 duration, qreal fps)
+@@ -55,7 +55,11 @@
}
} // namespace Internal
@@ -589,7 +557,7 @@ index 79eeff186..2c94fbc41 100644
if (ctx->channels <= 0) {
if (ctx->channel_layout) {
ctx->channels = av_get_channel_layout_nb_channels(ctx->channel_layout);
-@@ -254,7 +258,11 @@ void AVPlayer::Private::initBaseStatistics()
+@@ -253,7 +257,11 @@
updateNotifyInterval();
}
@@ -601,7 +569,7 @@ index 79eeff186..2c94fbc41 100644
{
AVFormatContext *fmt_ctx = demuxer.formatContext();
if (!fmt_ctx) {
-@@ -293,7 +301,11 @@ void AVPlayer::Private::initCommonStatistics(int s, Statistics::Common *st, AVCo
+@@ -292,7 +300,11 @@
void AVPlayer::Private::initAudioStatistics(int s)
{
@@ -613,7 +581,7 @@ index 79eeff186..2c94fbc41 100644
statistics.audio = Statistics::Common();
statistics.audio_only = Statistics::AudioOnly();
if (!avctx)
-@@ -311,14 +323,22 @@ void AVPlayer::Private::initAudioStatistics(int s)
+@@ -310,14 +322,22 @@
// nb_channels -1: will use av_get_channel_layout_nb_channels
av_get_channel_layout_string(cl, sizeof(cl), avctx->channels, avctx->channel_layout);
statistics.audio_only.channel_layout = QLatin1String(cl);
@@ -636,7 +604,7 @@ index 79eeff186..2c94fbc41 100644
statistics.video = Statistics::Common();
statistics.video_only = Statistics::VideoOnly();
if (!avctx)
-@@ -329,10 +349,20 @@ void AVPlayer::Private::initVideoStatistics(int s)
+@@ -328,10 +348,20 @@
statistics.video.decoder = vdec->name();
statistics.video.decoder_detail = vdec->description();
}
@@ -657,7 +625,7 @@ index 79eeff186..2c94fbc41 100644
statistics.video_only.height = avctx->height;
statistics.video_only.width = avctx->width;
statistics.video_only.rotate = 0;
-@@ -359,7 +389,11 @@ bool AVPlayer::Private::setupAudioThread(AVPlayer *player)
+@@ -358,7 +388,11 @@
athread->setDecoder(0);
athread->setOutput(0);
}
@@ -669,7 +637,7 @@ index 79eeff186..2c94fbc41 100644
if (!avctx) {
// TODO: close ao? //TODO: check pulseaudio perapp control if closed
return false;
-@@ -389,7 +423,11 @@ bool AVPlayer::Private::setupAudioThread(AVPlayer *player)
+@@ -388,7 +422,11 @@
correct_audio_channels(avctx);
AudioFormat af;
af.setSampleRate(avctx->sample_rate);
@@ -681,7 +649,7 @@ index 79eeff186..2c94fbc41 100644
af.setChannelLayoutFFmpeg(avctx->channel_layout);
if (!af.isValid()) {
qWarning("invalid audio format. audio stream will be disabled");
-@@ -471,7 +509,11 @@ QVariantList AVPlayer::Private::getTracksInfo(AVDemuxer *demuxer, AVDemuxer::Str
+@@ -470,7 +508,11 @@
t[QStringLiteral("stream_index")] = QVariant(s);
AVStream *stream = demuxer->formatContext()->streams[s];
@@ -691,9 +659,9 @@ index 79eeff186..2c94fbc41 100644
+ AVCodecParameters *ctx = stream->codecpar;
+#endif
if (ctx) {
- const AVCodecDescriptor* codec_desc = avcodec_descriptor_get(ctx->codec_id);
- if (codec_desc)
-@@ -503,7 +545,11 @@ bool AVPlayer::Private::applySubtitleStream(int n, AVPlayer *player)
+ t[QStringLiteral("codec")] = QByteArray(avcodec_descriptor_get(ctx->codec_id)->name);
+ if (ctx->extradata)
+@@ -498,7 +540,11 @@
{
if (!demuxer.setStreamIndex(AVDemuxer::SubtitleStream, n))
return false;
@@ -705,7 +673,7 @@ index 79eeff186..2c94fbc41 100644
if (!ctx)
return false;
// FIXME: AVCodecDescriptor.name and AVCodec.name are different!
-@@ -523,7 +569,11 @@ bool AVPlayer::Private::tryApplyDecoderPriority(AVPlayer *player)
+@@ -516,7 +562,11 @@
// TODO: add an option to apply the new decoder even if not available
qint64 pos = player->position();
VideoDecoder *vd = NULL;
@@ -717,7 +685,7 @@ index 79eeff186..2c94fbc41 100644
foreach(VideoDecoderId vid, vc_ids) {
qDebug("**********trying video decoder: %s...", VideoDecoder::name(vid));
vd = VideoDecoder::create(vid);
-@@ -571,7 +621,11 @@ bool AVPlayer::Private::setupVideoThread(AVPlayer *player)
+@@ -564,7 +614,11 @@
vthread->packetQueue()->clear();
vthread->setDecoder(0);
}
@@ -729,8 +697,6 @@ index 79eeff186..2c94fbc41 100644
if (!avctx) {
return false;
}
-diff --git a/src/AVPlayerPrivate.h b/src/AVPlayerPrivate.h
-index 77e45f06a..15f114490 100644
--- a/src/AVPlayerPrivate.h
+++ b/src/AVPlayerPrivate.h
@@ -29,6 +29,10 @@
@@ -744,7 +710,7 @@ index 77e45f06a..15f114490 100644
namespace QtAV {
static const qint64 kInvalidPosition = std::numeric_limits<qint64>::max();
-@@ -43,7 +47,11 @@ class AVPlayer::Private
+@@ -43,7 +47,11 @@
void applyFrameRate();
void initStatistics();
void initBaseStatistics();
@@ -756,11 +722,9 @@ index 77e45f06a..15f114490 100644
void initAudioStatistics(int s);
void initVideoStatistics(int s);
void initSubtitleStatistics(int s);
-diff --git a/src/AVThread.cpp b/src/AVThread.cpp
-index f8f6e89fb..7551ecba6 100644
--- a/src/AVThread.cpp
+++ b/src/AVThread.cpp
-@@ -95,11 +95,11 @@ bool AVThread::installFilter(Filter *filter, int index, bool lock)
+@@ -95,11 +95,11 @@
return true;
if (lock) {
QMutexLocker locker(&d.mutex);
@@ -774,11 +738,9 @@ index f8f6e89fb..7551ecba6 100644
d.filters.removeAt(p);
d.filters.insert(p, filter);
}
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 7781fd632..a0613862d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
-@@ -438,7 +438,10 @@ if(HAVE_OPENSL)
+@@ -438,7 +438,10 @@
list(APPEND EXTRA_DEFS -DQTAV_HAVE_OPENSL=1)
list(APPEND EXTRA_LIBS OpenSLES)
endif()
@@ -790,7 +752,7 @@ index 7781fd632..a0613862d 100644
if(HAVE_VAAPI)
list(APPEND SOURCES
vaapi/vaapi_helper.cpp
-@@ -449,7 +452,9 @@ if(HAVE_VAAPI)
+@@ -449,7 +452,9 @@
list(APPEND EXTRA_LIBS va X11)
endif()
@@ -801,8 +763,6 @@ index 7781fd632..a0613862d 100644
list(APPEND EXTRA_DEFS -DQTAV_HAVE_CUDA=1)
list(APPEND EXTRA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/cuda)
list(APPEND SOURCES
-diff --git a/src/QtAV/AVDemuxer.h b/src/QtAV/AVDemuxer.h
-index 3b720f5d2..31da2d3cc 100644
--- a/src/QtAV/AVDemuxer.h
+++ b/src/QtAV/AVDemuxer.h
@@ -28,8 +28,13 @@
@@ -819,7 +779,7 @@ index 3b720f5d2..31da2d3cc 100644
QT_BEGIN_NAMESPACE
class QIODevice;
QT_END_NAMESPACE
-@@ -50,6 +55,7 @@ class Q_AV_EXPORT AVDemuxer : public QObject
+@@ -50,6 +55,7 @@
static const QStringList& supportedExtensions();
/// Supported ffmpeg/libav input protocols(not complete). A static string list
static const QStringList& supportedProtocols();
@@ -827,7 +787,7 @@ index 3b720f5d2..31da2d3cc 100644
AVDemuxer(QObject *parent = 0);
~AVDemuxer();
-@@ -151,9 +157,15 @@ class Q_AV_EXPORT AVDemuxer : public QObject
+@@ -151,9 +157,15 @@
int subtitleStream() const;
QList<int> subtitleStreams() const;
//codec. stream < 0: the stream going to play (or the stream set by setStreamIndex())
@@ -843,11 +803,9 @@ index 3b720f5d2..31da2d3cc 100644
/**
* @brief getInterruptTimeout return the interrupt timeout
*/
-diff --git a/src/QtAV/private/AVDecoder_p.h b/src/QtAV/private/AVDecoder_p.h
-index 2382974e2..5e952ea84 100644
--- a/src/QtAV/private/AVDecoder_p.h
+++ b/src/QtAV/private/AVDecoder_p.h
-@@ -78,7 +78,7 @@ class Q_AV_PRIVATE_EXPORT AVDecoderPrivate : public DPtrPrivate<AVDecoder>
+@@ -78,7 +78,7 @@
{
public:
static const char* getProfileName(AVCodecID id, int profile) {
@@ -856,11 +814,9 @@ index 2382974e2..5e952ea84 100644
if (!c)
return "Unknow";
return av_get_profile_name(c, profile);
-diff --git a/src/VideoFormat.cpp b/src/VideoFormat.cpp
-index b9c7b4f0a..5e7901f1d 100644
--- a/src/VideoFormat.cpp
+++ b/src/VideoFormat.cpp
-@@ -702,7 +702,11 @@ bool VideoFormat::hasPalette() const
+@@ -702,7 +702,11 @@
bool VideoFormat::isPseudoPaletted() const
{
@@ -872,11 +828,9 @@ index b9c7b4f0a..5e7901f1d 100644
}
bool VideoFormat::isBitStream() const
-diff --git a/src/VideoFrameExtractor.cpp b/src/VideoFrameExtractor.cpp
-index 60a1540f3..086d3fee9 100644
--- a/src/VideoFrameExtractor.cpp
+++ b/src/VideoFrameExtractor.cpp
-@@ -192,7 +192,11 @@ class VideoFrameExtractorPrivate : public DPtrPrivate<VideoFrameExtractor>
+@@ -192,7 +192,11 @@
if (!vd)
continue;
decoder.reset(vd);
@@ -888,8 +842,6 @@ index 60a1540f3..086d3fee9 100644
if (cctx) decoder->setCodecContext(demuxer.videoCodecContext());
if (!cctx || !decoder->open()) {
decoder.reset(0);
-diff --git a/src/codec/AVDecoder.cpp b/src/codec/AVDecoder.cpp
-index 440504d01..bc9cc278a 100644
--- a/src/codec/AVDecoder.cpp
+++ b/src/codec/AVDecoder.cpp
@@ -27,7 +27,7 @@
@@ -901,7 +853,7 @@ index 440504d01..bc9cc278a 100644
{
QString fullname(name);
if (name.isEmpty()) {
-@@ -35,7 +35,7 @@ static AVCodec* get_codec(const QString &name, const QString& hwa, AVCodecID cid
+@@ -35,7 +35,7 @@
return avcodec_find_decoder(cid);
fullname = QString("%1_%2").arg(avcodec_get_name(cid)).arg(hwa);
}
@@ -910,7 +862,7 @@ index 440504d01..bc9cc278a 100644
if (codec)
return codec;
const AVCodecDescriptor* cd = avcodec_descriptor_get_by_name(fullname.toUtf8().constData());
-@@ -76,7 +76,7 @@ bool AVDecoder::open()
+@@ -76,7 +76,7 @@
return false;
}
const QString hwa = property("hwaccel").toString();
@@ -919,7 +871,7 @@ index 440504d01..bc9cc278a 100644
if (!codec) { // TODO: can be null for none-ffmpeg based decoders
QString es(tr("No codec could be found for '%1'"));
if (d.codec_name.isEmpty()) {
-@@ -153,6 +153,8 @@ void AVDecoder::flush()
+@@ -153,6 +153,8 @@
avcodec_flush_buffers(d_func().codec_ctx);
}
@@ -928,7 +880,7 @@ index 440504d01..bc9cc278a 100644
/*
* do nothing if equal
* close the old one. the codec context can not be shared in more than 1 decoder.
-@@ -160,9 +162,17 @@ void AVDecoder::flush()
+@@ -160,9 +162,17 @@
void AVDecoder::setCodecContext(void *codecCtx)
{
DPTR_D(AVDecoder);
@@ -947,7 +899,7 @@ index 440504d01..bc9cc278a 100644
if (isOpen()) {
qWarning("Can not copy codec properties when it's open");
close(); //
-@@ -180,7 +190,12 @@ void AVDecoder::setCodecContext(void *codecCtx)
+@@ -180,7 +190,12 @@
qWarning("avcodec_alloc_context3 failed");
return;
}
@@ -960,11 +912,9 @@ index 440504d01..bc9cc278a 100644
}
//TODO: reset other parameters?
-diff --git a/src/codec/AVEncoder.cpp b/src/codec/AVEncoder.cpp
-index 455539c78..5be64db2b 100644
--- a/src/codec/AVEncoder.cpp
+++ b/src/codec/AVEncoder.cpp
-@@ -146,7 +146,13 @@ void AVEncoder::copyAVCodecContext(void* ctx)
+@@ -146,7 +146,13 @@
AVCodecContext* c = static_cast<AVCodecContext*>(ctx);
if (d.avctx) {
// dest should be avcodec_alloc_context3(NULL)
@@ -978,11 +928,9 @@ index 455539c78..5be64db2b 100644
d.is_open = false;
return;
}
-diff --git a/src/codec/audio/AudioDecoderFFmpeg.cpp b/src/codec/audio/AudioDecoderFFmpeg.cpp
-index d783588ae..3b8492236 100644
--- a/src/codec/audio/AudioDecoderFFmpeg.cpp
+++ b/src/codec/audio/AudioDecoderFFmpeg.cpp
-@@ -100,10 +100,36 @@ bool AudioDecoderFFmpeg::decode(const Packet &packet)
+@@ -100,10 +100,36 @@
av_init_packet(&eofpkt);
eofpkt.data = NULL;
eofpkt.size = 0;
@@ -1019,7 +967,7 @@ index d783588ae..3b8492236 100644
}
d.undecoded_size = qMin(packet.data.size() - ret, packet.data.size());
if (ret == AVERROR(EAGAIN)) {
-@@ -145,7 +171,11 @@ AudioFrame AudioDecoderFFmpeg::frame()
+@@ -145,7 +171,11 @@
f.setBytesPerLine(d.frame->linesize[0], 0); // for correct alignment
f.setSamplesPerChannel(d.frame->nb_samples);
// TODO: ffplay check AVFrame.pts, pkt_pts, last_pts+nb_samples. move to AudioFrame::from(AVFrame*)
@@ -1031,11 +979,9 @@ index d783588ae..3b8492236 100644
f.setAudioResampler(d.resampler); // TODO: remove. it's not safe if frame is shared. use a pool or detach if ref >1
return f;
}
-diff --git a/src/codec/audio/AudioEncoderFFmpeg.cpp b/src/codec/audio/AudioEncoderFFmpeg.cpp
-index 3811e11a6..c338aae33 100644
--- a/src/codec/audio/AudioEncoderFFmpeg.cpp
+++ b/src/codec/audio/AudioEncoderFFmpeg.cpp
-@@ -54,7 +54,9 @@ class AudioEncoderFFmpegPrivate Q_DECL_FINAL: public AudioEncoderPrivate
+@@ -54,7 +54,9 @@
AudioEncoderFFmpegPrivate()
: AudioEncoderPrivate()
{
@@ -1045,7 +991,7 @@ index 3811e11a6..c338aae33 100644
// NULL: codec-specific defaults won't be initialized, which may result in suboptimal default settings (this is important mainly for encoders, e.g. libx264).
avctx = avcodec_alloc_context3(NULL);
}
-@@ -68,11 +70,11 @@ bool AudioEncoderFFmpegPrivate::open()
+@@ -68,11 +70,11 @@
{
if (codec_name.isEmpty()) {
// copy ctx from muxer by copyAVCodecContext
@@ -1059,7 +1005,7 @@ index 3811e11a6..c338aae33 100644
if (!codec) {
const AVCodecDescriptor* cd = avcodec_descriptor_get_by_name(codec_name.toUtf8().constData());
if (cd) {
-@@ -204,7 +206,13 @@ bool AudioEncoderFFmpeg::encode(const AudioFrame &frame)
+@@ -204,7 +206,13 @@
pkt.data = (uint8_t*)d.buffer.constData(); //NULL
pkt.size = d.buffer.size(); //0
int got_packet = 0;
@@ -1073,11 +1019,9 @@ index 3811e11a6..c338aae33 100644
av_frame_free(&f);
if (ret < 0) {
//qWarning("error avcodec_encode_audio2: %s" ,av_err2str(ret));
-diff --git a/src/codec/video/VideoDecoderD3D11.cpp b/src/codec/video/VideoDecoderD3D11.cpp
-index 6c416fd36..628f79846 100644
--- a/src/codec/video/VideoDecoderD3D11.cpp
+++ b/src/codec/video/VideoDecoderD3D11.cpp
-@@ -187,7 +187,7 @@ VideoFrame VideoDecoderD3D11::frame()
+@@ -187,7 +187,7 @@
f.setBytesPerLine(fmt.bytesPerLine(d.width, i), i); //used by gl to compute texture size
}
f.setMetaData(QStringLiteral("surface_interop"), QVariant::fromValue(VideoSurfaceInteropPtr(interop)));
@@ -1086,11 +1030,9 @@ index 6c416fd36..628f79846 100644
f.setDisplayAspectRatio(d.getDAR(d.frame));
return f;
}
-diff --git a/src/codec/video/VideoDecoderDXVA.cpp b/src/codec/video/VideoDecoderDXVA.cpp
-index 64b12f33d..48e3cef26 100644
--- a/src/codec/video/VideoDecoderDXVA.cpp
+++ b/src/codec/video/VideoDecoderDXVA.cpp
-@@ -189,7 +189,7 @@ VideoFrame VideoDecoderDXVA::frame()
+@@ -189,7 +189,7 @@
VideoFrame f(d.width, d.height, VideoFormat::Format_RGB32);
f.setBytesPerLine(d.width * 4); //used by gl to compute texture size
f.setMetaData(QStringLiteral("surface_interop"), QVariant::fromValue(VideoSurfaceInteropPtr(interop)));
@@ -1099,11 +1041,9 @@ index 64b12f33d..48e3cef26 100644
f.setDisplayAspectRatio(d.getDAR(d.frame));
return f;
}
-diff --git a/src/codec/video/VideoDecoderFFmpegBase.cpp b/src/codec/video/VideoDecoderFFmpegBase.cpp
-index e344c5cbc..bc7cc41de 100644
--- a/src/codec/video/VideoDecoderFFmpegBase.cpp
+++ b/src/codec/video/VideoDecoderFFmpegBase.cpp
-@@ -30,12 +30,21 @@ extern ColorRange colorRangeFromFFmpeg(AVColorRange cr);
+@@ -30,12 +30,21 @@
static void SetColorDetailsByFFmpeg(VideoFrame *f, AVFrame* frame, AVCodecContext* codec_ctx)
{
@@ -1125,7 +1065,7 @@ index e344c5cbc..bc7cc41de 100644
// check yuvj format. TODO: deprecated, check only for old ffmpeg?
const AVPixelFormat pixfmt = (AVPixelFormat)frame->format;
switch (pixfmt) {
-@@ -125,14 +134,28 @@ bool VideoDecoderFFmpegBase::decode(const Packet &packet)
+@@ -125,14 +134,28 @@
av_init_packet(&eofpkt);
eofpkt.data = NULL;
eofpkt.size = 0;
@@ -1155,7 +1095,7 @@ index e344c5cbc..bc7cc41de 100644
return false;
}
if (!got_frame_ptr) {
-@@ -159,7 +182,11 @@ VideoFrame VideoDecoderFFmpegBase::frame()
+@@ -159,7 +182,11 @@
frame.setBits(d.frame->data);
frame.setBytesPerLine(d.frame->linesize);
// in s. TODO: what about AVFrame.pts? av_frame_get_best_effort_timestamp? move to VideoFrame::from(AVFrame*)
@@ -1167,11 +1107,9 @@ index e344c5cbc..bc7cc41de 100644
frame.setMetaData(QStringLiteral("avbuf"), QVariant::fromValue(AVFrameBuffersRef(new AVFrameBuffers(d.frame))));
d.updateColorDetails(&frame);
if (frame.format().hasPalette()) {
-diff --git a/src/codec/video/VideoDecoderFFmpegHW.cpp b/src/codec/video/VideoDecoderFFmpegHW.cpp
-index c17c8b28b..17d663e6b 100644
--- a/src/codec/video/VideoDecoderFFmpegHW.cpp
+++ b/src/codec/video/VideoDecoderFFmpegHW.cpp
-@@ -328,7 +328,11 @@ VideoFrame VideoDecoderFFmpegHW::copyToFrame(const VideoFormat& fmt, int surface
+@@ -328,7 +328,11 @@
// TODO: buffer pool and create VideoFrame when needed to avoid copy? also for other va
frame = frame.clone();
}
@@ -1183,8 +1121,6 @@ index c17c8b28b..17d663e6b 100644
frame.setDisplayAspectRatio(d.getDAR(d.frame));
d.updateColorDetails(&frame);
return frame;
-diff --git a/src/codec/video/VideoDecoderVAAPI.cpp b/src/codec/video/VideoDecoderVAAPI.cpp
-index a91caf92d..0c8ce0162 100644
--- a/src/codec/video/VideoDecoderVAAPI.cpp
+++ b/src/codec/video/VideoDecoderVAAPI.cpp
@@ -27,9 +27,11 @@
@@ -1199,7 +1135,7 @@ index a91caf92d..0c8ce0162 100644
#include "QtAV/private/AVCompat.h"
#include "QtAV/private/factory.h"
#include "vaapi/SurfaceInteropVAAPI.h"
-@@ -84,7 +86,7 @@ FACTORY_REGISTER(VideoDecoder, VAAPI, "VAAPI")
+@@ -84,7 +86,7 @@
const char* getProfileName(AVCodecID id, int profile)
{
@@ -1208,11 +1144,9 @@ index a91caf92d..0c8ce0162 100644
if (!c)
return "Unknow";
return av_get_profile_name(c, profile);
-diff --git a/src/codec/video/VideoDecoderVideoToolbox.cpp b/src/codec/video/VideoDecoderVideoToolbox.cpp
-index bdf4fdc4e..75e5288f8 100755
--- a/src/codec/video/VideoDecoderVideoToolbox.cpp
+++ b/src/codec/video/VideoDecoderVideoToolbox.cpp
-@@ -219,7 +219,7 @@ VideoFrame VideoDecoderVideoToolbox::frame()
+@@ -219,7 +219,7 @@
f = VideoFrame(d.width, d.height, fmt);
f.setBytesPerLine(pitch);
// TODO: move to updateFrameInfo
@@ -1221,11 +1155,9 @@ index bdf4fdc4e..75e5288f8 100755
f.setDisplayAspectRatio(d.getDAR(d.frame));
d.updateColorDetails(&f);
if (d.interop_res) { // zero_copy
-diff --git a/src/codec/video/VideoEncoderFFmpeg.cpp b/src/codec/video/VideoEncoderFFmpeg.cpp
-index c0c902cb0..a352c533c 100644
--- a/src/codec/video/VideoEncoderFFmpeg.cpp
+++ b/src/codec/video/VideoEncoderFFmpeg.cpp
-@@ -116,11 +116,11 @@ bool VideoEncoderFFmpegPrivate::open()
+@@ -116,11 +116,11 @@
nb_encoded = 0LL;
if (codec_name.isEmpty()) {
// copy ctx from muxer by copyAVCodecContext
@@ -1239,7 +1171,7 @@ index c0c902cb0..a352c533c 100644
if (!codec) {
const AVCodecDescriptor* cd = avcodec_descriptor_get_by_name(codec_name.toUtf8().constData());
if (cd) {
-@@ -247,7 +247,7 @@ bool VideoEncoderFFmpegPrivate::open()
+@@ -247,7 +247,7 @@
applyOptionsForContext();
AV_ENSURE_OK(avcodec_open2(avctx, codec, &dict), false);
// from mpv ao_lavc
@@ -1248,7 +1180,7 @@ index c0c902cb0..a352c533c 100644
buffer.resize(buffer_size);
return true;
}
-@@ -373,7 +373,13 @@ bool VideoEncoderFFmpeg::encode(const VideoFrame &frame)
+@@ -373,7 +373,13 @@
pkt.data = (uint8_t*)d.buffer.constData();
pkt.size = d.buffer.size();
int got_packet = 0;
@@ -1262,153 +1194,6 @@ index c0c902cb0..a352c533c 100644
if (ret < 0) {
qWarning("error avcodec_encode_video2: %s" ,av_err2str(ret));
return false; //false
-diff --git a/src/compat/msvc/changelog.txt b/src/compat/msvc/changelog.txt
-deleted file mode 100644
-index e13b87e5c..000000000
---- a/src/compat/msvc/changelog.txt
-+++ /dev/null
-@@ -1,138 +0,0 @@
--------------------------------------------------------------------------
--r26 | 2009-10-02 13:36:47 +0400 | 2 lines
--
--[Issue 5] Change <stdint.h> to "stdint.h" to let compiler search for it in local directory.
--
--------------------------------------------------------------------------
--r25 | 2009-09-17 23:46:49 +0400 | 2 lines
--
--[Issue 4] Fix incorrect int8_t behaviour if compiled with /J flag.
--
--------------------------------------------------------------------------
--r24 | 2009-05-13 14:53:48 +0400 | 2 lines
--
--Forgot about #ifdef __cplusplus guard around 'extern "C"', so inclusion to C files has been broken.
--
--------------------------------------------------------------------------
--r23 | 2009-05-12 01:27:45 +0400 | 3 lines
--
--[Issue 2] Always wrap <wchar��� with external "C" {}.
--It turns out that not only Visual Studio 6 requires this, but also newer versions when compiling for ARM.
--
--------------------------------------------------------------------------
--r22 | 2009-05-11 22:22:15 +0400 | 3 lines
--
--[Issue 3] Visual Studio 6 and Embedded Visual C++ 4 doesn't realize that, e.g. char has the same size as __int8 so we give up on __intX for them.
--his should close Issue 3 in issue tracker.
--
--------------------------------------------------------------------------
--r21 | 2008-07-17 09:47:22 +0400 | 4 lines
--
--Get rid of these compiler warnings when compiling for 32-bit:
-- warning C4311: 'type cast' : pointer truncation from 'void *' to 'uintptr_t'
-- warning C4312: 'type cast' : conversion from 'uintptr_t' to 'const void *' of greater size
--
--------------------------------------------------------------------------
--r20 | 2007-10-09 16:54:27 +0400 | 2 lines
--
--Better C99 conformance: macros for format specifiers should only be included in C++ implementations if __STDC_FORMAT_MACROS is defined before <inttypes.h> is included.
--
--------------------------------------------------------------------------
--r19 | 2007-07-04 02:14:40 +0400 | 3 lines
--
--Explicitly cast to appropriate type INT8_MIN, INT16_MIN, INT32_MIN and INT64_MIN constants.
--Due to their unusual definition in Visual Studio headers (-_Ix_MAX-1) they are propagated to int and thus do not have expected type, causing VS6 strict compiler to claim about type inconsistency.
--
--------------------------------------------------------------------------
--r18 | 2007-06-26 16:53:23 +0400 | 2 lines
--
--Better handling of (U)INTx_C macros - now they generate constants of exact width.
--
--------------------------------------------------------------------------
--r17 | 2007-03-29 20:16:14 +0400 | 2 lines
--
--Fix typo: Miscrosoft -> Microsoft.
--
--------------------------------------------------------------------------
--r16 | 2007-02-24 17:32:58 +0300 | 4 lines
--
--Remove <BaseTsd.h> include, as it is not present in Visual Studio 2005 Epxress Edition and required only for INT_PTR and UINT_PTR types.
--
--'intptr_t' and 'uintptr_t' types now defined explicitly with #ifdef _WIN64.
--
--------------------------------------------------------------------------
--r15 | 2007-02-11 20:53:05 +0300 | 2 lines
--
--More correct fix for compilation under VS6.
--
--------------------------------------------------------------------------
--r14 | 2007-02-11 20:04:32 +0300 | 2 lines
--
--Bugfix: fix compiling under VS6, when stdint.h enclosed in 'extern "C" {}'.
--
--------------------------------------------------------------------------
--r13 | 2006-12-13 16:53:11 +0300 | 2 lines
--
--Make _inline modifier for imaxdiv default option. Use STATIC_IMAXDIV to make it static.
--
--------------------------------------------------------------------------
--r12 | 2006-12-13 16:42:24 +0300 | 2 lines
--
--Error message changed: VC6 supported from now.
--
--------------------------------------------------------------------------
--r11 | 2006-12-13 16:39:33 +0300 | 2 lines
--
--All (U)INT* types changed to (unsigned) __int*. This should make stdint.h compatible with VC6.
--
--------------------------------------------------------------------------
--r10 | 2006-12-13 16:20:57 +0300 | 3 lines
--
--Added INLINE_IMAXDIV define switch.
--If INLINE_IMAXDIV is defined imaxdiv() have static modifier. If not - it is _inline.
--
--------------------------------------------------------------------------
--r9 | 2006-12-13 15:53:52 +0300 | 2 lines
--
--Error message for non-MSC compiler changed.
--
--------------------------------------------------------------------------
--r8 | 2006-12-13 12:47:48 +0300 | 2 lines
--
--Added #ifndef for SIZE_MAX (it is defined in limits.h on MSVSC 8).
--
--------------------------------------------------------------------------
--r7 | 2006-12-13 01:08:02 +0300 | 2 lines
--
--License chaged to BSD-derivative.
--
--------------------------------------------------------------------------
--r6 | 2006-12-13 00:53:20 +0300 | 2 lines
--
--Added <wchar.h> include to avoid warnings when it is included after stdint.h.
--
--------------------------------------------------------------------------
--r5 | 2006-12-12 00:58:05 +0300 | 2 lines
--
--BUGFIX: Definitions of INTPTR_MIN, INTPTR_MAX and UINTPTR_MAX for WIN32 and WIN64 was mixed up.
--
--------------------------------------------------------------------------
--r4 | 2006-12-12 00:51:55 +0300 | 2 lines
--
--Rise #error if _MSC_VER is not defined. I.e. compiler other then Microsoft Visual C++ is used.
--
--------------------------------------------------------------------------
--r3 | 2006-12-11 22:54:14 +0300 | 2 lines
--
--Added <limits.h> include to stdint.h.
--
--------------------------------------------------------------------------
--r2 | 2006-12-11 21:39:27 +0300 | 2 lines
--
--Initial check in.
--
--------------------------------------------------------------------------
--r1 | 2006-12-11 21:30:23 +0300 | 1 line
--
--Initial directory structure.
--------------------------------------------------------------------------
-diff --git a/src/compat/msvc/inttypes.h b/src/compat/msvc/inttypes.h
-deleted file mode 100644
-index 4b3828a21..000000000
--- a/src/compat/msvc/inttypes.h
+++ /dev/null
@@ -1,305 +0,0 @@
@@ -1717,9 +1502,6 @@ index 4b3828a21..000000000
-
-
-#endif // _MSC_INTTYPES_H_ ]
-diff --git a/src/compat/msvc/stdint.h b/src/compat/msvc/stdint.h
-deleted file mode 100644
-index d02608a59..000000000
--- a/src/compat/msvc/stdint.h
+++ /dev/null
@@ -1,247 +0,0 @@
@@ -1970,11 +1752,9 @@ index d02608a59..000000000
-
-
-#endif // _MSC_STDINT_H_ ]
-diff --git a/src/filter/FilterManager.cpp b/src/filter/FilterManager.cpp
-index e4e0b02ee..8e2e897f0 100644
--- a/src/filter/FilterManager.cpp
+++ b/src/filter/FilterManager.cpp
-@@ -69,7 +69,7 @@ bool FilterManager::insert(Filter *filter, QList<Filter *> &filters, int pos)
+@@ -69,7 +69,7 @@
// already installed at desired position
if (p == index)
return false;
@@ -1983,11 +1763,9 @@ index e4e0b02ee..8e2e897f0 100644
filters.removeAt(p);
filters.insert(p, filter);
return true;
-diff --git a/src/filter/LibAVFilter.cpp b/src/filter/LibAVFilter.cpp
-index 8993a91f7..d770ddc33 100644
--- a/src/filter/LibAVFilter.cpp
+++ b/src/filter/LibAVFilter.cpp
-@@ -84,7 +84,9 @@ class LibAVFilter::Private
+@@ -84,7 +84,9 @@
filter_graph = 0;
in_filter_ctx = 0;
out_filter_ctx = 0;
@@ -1997,7 +1775,7 @@ index 8993a91f7..d770ddc33 100644
#endif //QTAV_HAVE(AVFILTER)
}
~Private() {
-@@ -204,7 +206,9 @@ QString LibAVFilter::filterDescription(const QString &filterName)
+@@ -204,7 +206,9 @@
{
QString s;
#if QTAV_HAVE(AVFILTER)
@@ -2007,7 +1785,7 @@ index 8993a91f7..d770ddc33 100644
const AVFilter *f = avfilter_get_by_name(filterName.toUtf8().constData());
if (!f)
return s;
-@@ -283,11 +287,18 @@ QStringList LibAVFilter::registeredFilters(int type)
+@@ -283,12 +287,19 @@
{
QStringList filters;
#if QTAV_HAVE(AVFILTER)
@@ -2019,18 +1797,17 @@ index 8993a91f7..d770ddc33 100644
#if AV_MODULE_CHECK(LIBAVFILTER, 3, 8, 0, 53, 100)
+#if LIBAVCODEC_VERSION_MAJOR < 59
while ((f = avfilter_next(f))) {
-+#else
+ #else
+ void** ff = NULL;
+ while (f = av_filter_iterate(ff)) {
+#endif
- #else
++#else
AVFilter** ff = NULL;
while ((ff = av_filter_next(ff)) && *ff) {
-diff --git a/src/libQtAV.pro b/src/libQtAV.pro
-index c6cbcc374..88524b39e 100644
+ f = (*ff);
--- a/src/libQtAV.pro
+++ b/src/libQtAV.pro
-@@ -100,7 +100,16 @@ win32 {
+@@ -99,7 +99,16 @@
!static:QMAKE_LFLAGS *= /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib #for msbuild vs2013
}
capi {
@@ -2048,7 +1825,7 @@ index c6cbcc374..88524b39e 100644
CONFIG *= enable_egl
!ios {
winrt: DEFINES += CAPI_LINK_EGL #required by capi_egl.*
-@@ -244,7 +253,7 @@ config_pulseaudio {
+@@ -243,7 +252,7 @@
DEFINES *= QTAV_HAVE_PULSEAUDIO=1
LIBS += -lpulse
}
@@ -2057,7 +1834,7 @@ index c6cbcc374..88524b39e 100644
#CONFIG += config_cuda_link
config_cuda {
DEFINES += QTAV_HAVE_CUDA=1
-@@ -287,7 +296,7 @@ config_d3d11va {
+@@ -286,7 +295,7 @@
}
winrt: LIBS *= -ld3d11
}
@@ -2066,11 +1843,9 @@ index c6cbcc374..88524b39e 100644
HEADERS += directx/SurfaceInteropD3D9.h
SOURCES += directx/SurfaceInteropD3D9.cpp
enable_egl {
-diff --git a/src/opengl/gl_api.cpp b/src/opengl/gl_api.cpp
-index 9caeba8b4..3186158fb 100644
--- a/src/opengl/gl_api.cpp
+++ b/src/opengl/gl_api.cpp
-@@ -31,7 +31,7 @@ void* GetProcAddress_Qt(const char *name)
+@@ -31,7 +31,7 @@
return 0;
void* p = (void*)QOpenGLContext::currentContext()->getProcAddress(QByteArray((const char*)name));
if (!p) {
@@ -2079,11 +1854,9 @@ index 9caeba8b4..3186158fb 100644
HMODULE handle = (HMODULE)QOpenGLContext::openGLModuleHandle();
if (handle)
p = (void*)GetProcAddress(handle, name);
-diff --git a/src/subtitle/SubtitleProcessorFFmpeg.cpp b/src/subtitle/SubtitleProcessorFFmpeg.cpp
-index 8d4a94154..d2163e937 100644
--- a/src/subtitle/SubtitleProcessorFFmpeg.cpp
+++ b/src/subtitle/SubtitleProcessorFFmpeg.cpp
-@@ -250,7 +250,7 @@ bool SubtitleProcessorFFmpeg::processHeader(const QByteArray &codec, const QByte
+@@ -249,7 +249,7 @@
if (codec_ctx) {
avcodec_free_context(&codec_ctx);
}
@@ -2092,7 +1865,7 @@ index 8d4a94154..d2163e937 100644
if (!c) {
qDebug("subtitle avcodec_descriptor_get_by_name %s", codec.constData());
const AVCodecDescriptor *desc = avcodec_descriptor_get_by_name(codec.constData());
-@@ -371,8 +371,15 @@ bool SubtitleProcessorFFmpeg::processSubtitle()
+@@ -370,8 +370,15 @@
qWarning("no subtitle stream found");
return false;
}
@@ -2109,11 +1882,9 @@ index 8d4a94154..d2163e937 100644
const AVCodecDescriptor *dec_desc = avcodec_descriptor_get(codec_ctx->codec_id);
if (!dec) {
if (dec_desc)
-diff --git a/widgets/Direct2DRenderer.cpp b/widgets/Direct2DRenderer.cpp
-index 9e63febb4..13a60c620 100644
--- a/widgets/Direct2DRenderer.cpp
+++ b/widgets/Direct2DRenderer.cpp
-@@ -55,7 +55,7 @@ class Direct2DRenderer : public QWidget, public VideoRenderer
+@@ -55,7 +55,7 @@
Q_OBJECT
DPTR_DECLARE_PRIVATE(Direct2DRenderer)
public:
@@ -2122,11 +1893,9 @@ index 9e63febb4..13a60c620 100644
VideoRendererId id() const Q_DECL_OVERRIDE;
bool isSupported(VideoFormat::PixelFormat pixfmt) const Q_DECL_OVERRIDE;
-diff --git a/widgets/GDIRenderer.cpp b/widgets/GDIRenderer.cpp
-index af20c869f..6e1507f7e 100644
--- a/widgets/GDIRenderer.cpp
+++ b/widgets/GDIRenderer.cpp
-@@ -41,7 +41,7 @@ class GDIRenderer : public QWidget, public VideoRenderer
+@@ -41,7 +41,7 @@
Q_OBJECT
DPTR_DECLARE_PRIVATE(GDIRenderer)
public:
@@ -2135,7 +1904,7 @@ index af20c869f..6e1507f7e 100644
VideoRendererId id() const Q_DECL_OVERRIDE;
bool isSupported(VideoFormat::PixelFormat pixfmt) const Q_DECL_OVERRIDE;
/* WA_PaintOnScreen: To render outside of Qt's paint system, e.g. If you require
-@@ -238,7 +238,11 @@ void GDIRenderer::drawBackground()
+@@ -238,7 +238,11 @@
//HDC hdc = d.device_context;
Graphics g(d.device_context);
SolidBrush brush(Color(bc.alpha(), bc.red(), bc.green(), bc.blue())); //argb
@@ -2146,4 +1915,4 @@ index af20c869f..6e1507f7e 100644
+#endif
foreach (const QRect& r, bg) {
g.FillRectangle(&brush, r.x(), r.y(), r.width(), r.height());
- }
\ No newline at end of file
+ }
More information about the Neon-commits
mailing list