[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