version 1.13.0 2019-07-11 - add python bindings - more apis for qml player - auto rotate video - apple store - fix ios plugin not found - support chapters - muxer, encoder, transcoder improvements - compatible with new ffmpeg - videotoolbox: hevc, - cuda: new devices - android: no longer depends on private qt module - fix opensl error - mediacodec: 0-copy via a plugin from https://github.com/wang-bin/mdk-sdk version 1.12.0 2017-06-20 Changelog - CMake support - Fix iOS build - Fix AVPacket memory leak - Geometry & GeometryRenderer class is public - PAL8, XYZ color format support - Fix OpenGL background color - Fix external clock error after pause - VA-API encoder support (ffmpeg>=3) - Other improvements, fixes, and untested features version 1.11.0 2016-06-19 Changelog - Dynamic load QtAVWidgets in VideoOutput. `QtAV::Widgets::registerRenderers()` and `QT += avwidgets` is not requred now. - D3D11 decoder support. Not stable on Windows phone. - DXVA refactor and bug fix. - VA-API: fix memory leak when seeking - OpenGL: * Fix PBO binding * Custom shader support (WIP) * Edit and apply custom shader when playing. Based on Qt property system. * Optimize uniform update * GLSL filter support * Add `OpenGLVideo.beforeRendering/afterRendering` - CUDA: * Direct copy is default for windows. Now Rendering CUDA decoded frames is faster than any other players * 0-copy is default for linux. * Use new API (4.0) - AVPlayer: * Add `AVPlayer.stoppedAt` signal * add `setTimeRange()` * setStart/StopPosition can be called at any time with any value * Ensure all threads are running when `started` is emitted * Support preload using `load()`. Now no reload in `play()` - Fix build with QT_NAMESPACE - Fix swscale color range - Fix linux install destinations - Add AVTranscoder.async, encoders are in individual threads - Add FrameReader class - Use FFmpeg 3.0 API - QML: * Support filters, including sw filters from libavfilter, and GLSL filter * Add `MediaPlayer/Video.audioBackends` property * Support autoLoad * Add `VideoOutput.mapTo/FromXXX` between source frame and item * Video EQ in VideoOutput/Video * Add `MediaPlayer.startPosition/stopPotion` - QMLPlayer: Open video and subtitle at the same time. History view. Zoom. Video EQ version 1.10.0 2016-03-01 Changelog - Improve seek speed, fix drop too much frames after seek - VideoFrameExtractor: seek faster if called many times. Speed up progress bar preview - Support media files from android assets. Use protocol 'assets:' - Apply video decoder options when playing - Better iOS support - VideoToolbox: * Check profile to avoid crash * Support RGB output * Use `rgb422_apple` texture * Support iOS 0-copy rendering using OpenGLES * More interop types for OSX and iOS - OpenGL * Use 16bit depth textures for >8bit videos (e.g. 10bit) if possible * Correct input/output color range. This fixes QtAV video different from other players * Fix high opengl and core profile rendering * Better EGL detection - VO: * Simplify signal emitting * Support background color, simplify background painting * VideoOutput delete crash, resize issues * Improve performance of QPainter based renderers - AudioOutput: * remove setBufferSize, add a better API setBufferSamples * Add flush(), clear(). Not implemented for backends. * Fix OpenAL playback for some audio formats * Dynamic load OpenAL by default except iOS * Add AudioToolbox support for OSX/iOS and becomes the default backend * PulseAudio: workaround noise for multiple instance - Subtitle: * Support ass font files in android assets * Fix srt decoding - QML: * Add QtMultimedia compatible APIs VideoOutput.contentRect/sourceRect - Simplify SurfaceType - Fix strange behaviors near eof: seek, stepForward, exit etc. - Fix playback block if audio duration is shorter than video - VideoFrame constructed from QImage takes image's ownership - Add VideoFrame.colorRange, AudioFrame.duration - encoder: support start time - Add AVPlayer.bufferSpeed, seekFinished(qint64) - Fix abort when loading - Examples: * Fix videos in videowall not synchronized * QMLPlayer has better touch screen experience * QMLPlayer supports win10 store (But Qt is not well supported) * Drag & Drop support on OSX * URL open dialog for QMLPlayer version 1.9.0 2015-12-19 Changelog: - No audio thread if audio stream < 0. null AudioOutput now still create audio thread. - VideoOutput: fix lock error - Filter: add X11 text rendering for X11Renderer/XVRenderer. - LibAVFilter supports HW frames(not recommended) - VideoFrame copy and init issue, bpp compute error - Avoid using some stl APIs that breaks ABI - Add x11 renderer - XV: support NV12 and packed yuv formats - Fix factory initialization for static build(iOS for example) - Fix ffmpeg log level - Remove AVPicture which is deprecated - SWS 16 alignment, output to user defined buffer - Always define the registered id so we can use everywhere - Better iOS support: build, run, deploy(prl) - use libuchardet now, use system one if possible - Fix android build on windows - XAudio2: fix crash. `double` sample format is not supported - Fix clock value if speed changed - VideoRenderer.updateUi - VideoCapture: fix HW frame save - New logo ![](http://qtav.org/blog/images/QtAV1.9.0-logo.png "Logo") - Android: support protocol 'content'. Now can play from Gallery. - MediaIO is not writable by default - WinRT (Windows Store) support: * Link to XAudio2 * File open and protocol - VA-API: * Add hevc, vp9. Not tested * Support more profiles * Improve nvidia support * Interop with egl support(dma, tfp). libva 0.38 and Qt>=5.5 are required. * Check resolution support before open * Add thread count option (new ffmpeg >2.8 does not support) * Prefer /dev/dri/renderD128 for drm * Correctly release X11/drm resource * Interop with egl support(dma, tfp). libva 0.38 and Qt>=5.5 are required. - OpenGL: * OpenGL ES3 optimization * use new OpenGL and GLSL APIs if possible - CI: * Add windows. Build with latest Qt release. Using msbuild, nmake and mingw32-make - API: * AVPlayer.stepForward(), stepBackword(). playNextFrame() is deprecated * AVPlayer.state * AVPlayer.videoDecoderPriority with name list * VideoRenderer.frameSize (C++), VideoOutput.frameSize * XXXDecoder/Encoder::supportedCodecs, AV(De)Muxer.supportedFormats/ Extensions * QML: more metaData keys: startTime, sampleFormat, channelLayout, pixelFormat, videoFrames - QMLPlayer/Player: * fix OpenGLWidgetRenderer crash * Handle Home/Back button for mobile * Preview item is movable * ppa: rename /usr/bin/player to /usr/bin/Player version 1.8.0 2015-09-01 Changelog: - XAudio2 support - VideoToolbox hardware decoder(OSX) support. It can decode h264, h263, mpeg1, mpeg2, mpeg4. Better than VDA - CUDA 0-copy support - Dynamic video decoder switch when playing (try it in QMLPlayer) - Embedded ass subtitles support - ass subtitle font setup - No OpenGL build fix for linux - Fix qpainter rendering if vbo is used - Fix OpenGL rendering for some rgb formats - DXVA 0-copy improvement, intel clearvideo workaround etc. - AO: add null backend - HW: fix profile check - Ref counted frames from ff decoders. This fix opengl crash when uploading textures - Fix audio resampler parameters not set correctly - VS2015 support version 1.7.0 2015-07-09 Changelog: - DXVA GPU zero-copy support - DXVA copy back improvement - VAAPI zero-copy improvement - Fix opengl wrong display if switch decoder between VDA and FFmpeg - Video encoding support. Try examples/simpletranscode. Audio is not supported now - External audio track support - Pulseaudio improvement, fix crashes and hang - OpenGL: disable VBO for ANGLE to workaround qpainter filters have no effect. Less GL calls. Fix OpenGLWindowRenderer can not update correctly - Fix capture video when a zero-copy HW decoder is used. - Fix wrong audio data is played at the beginning of playback - Enable XV shm - Improve a/v sync - Build android on windows - Fix msvc debug build - Use OpenSL ES as for android. It works correctly now. No OpenAL required any more. Add volume control for OpenSL ES. - Fix crashes - Add ubuntu PPA - CI: appveyor for windows - AVInput=>MediaIO. You can use it to support custom output when encoding video - Add seekFinished, durationChanged, QML MediaPlayer.videoCapture, Subtitle delay etc - QMLPlayer: swipe to seek version 1.6.0 2015-04-23 Changlog: - VDA: use NV12 as default format. Support 0 copy. Better performance than any other playrs - CUDA: fix wrong bitstream filters - OpenGL: * PBO support (enable by enviroment var QTAV_PBO=1) * rectangle texture support * packed yuv formats support - Support buffer progress, buffer value control - Support frame rate setup (AVPlayer::setFrameRate()) - Support RAW streams, such as h264, yuv - Audio filter support - Better libavfilter support. Now support libav avfilter, support audio filters from libavfilter - Add pulseaudio support - Detect volume change by per-app volume control - Simplify audio output API - Volume and mute control by audio backend API - Use float audio sample if possible - Fix iOS static link error - Fix error handling, EOF detect, Qt4.7 build etc. - Deploy: add qml, fix lib name, deploy sdk from installer, mingw deployment on linux. - player/QMLPlayer: * decoder detail * more options: preview config, buffer, fps, timeout * unregister context menu(win32) if uninstalled, ifw2.0 * QMLPlayer file associate for android version 1.5.0 2015-02-13 Changelog: - Add QtAVWidgets module contains widget based renderers, video preview widget - QtAV module only depends on QtCore and QtGui - Improve audio output API - Simplify deployment on OSX. Deploy sdk from release packages without build. - Improve seekable detection - Fix noise audio if volume increased - Fix noise and wrong playback speed for wmv videos - Preview is more accurate - Do not copy AVPacket but use reference count. - Faster audio track switch - Reopen audio output only if audio format changed - VideoFrame: new API for converting to another format or QImage - OpenGL VAO, VBO support. - QML * Fix some crashes in QQuickItemRenderer * Add FBO item renderer and use the same code path as other opengl renderers * timeout property - player and QMLPlayer example * player: real time preview on progress bar * Fast seek and display if seek shortcut is pressed and hold version 1.4.2 2014-12-27 Changelog: - Async load - Faster seek and preview. Thanks wm4(mpv developer) - Better a/v sync solution. Now can play high fps video better than ANY other players. - DXVA: enable HEVC decoder if libavcodec runtime supports. LAVFilters ffmpeg supports it. - Cedarv improvements, nv12 output support, neon code from libvdpau-sunxi - Multiple OpenAL instances support - AVInput class to extend media sources. Support play from qrc resouces. - Display the first frame after seek - Better clock error correction - Fix play frame by frame issues - Fix QML video shake - More details for error signals - Apply user options in the next playback - Dynamic load libass (submodule 'capi' is required, https://github.com/wang-bin/capi) - VA-API: fix blurred bottom line issue. works on libav >= 9 now. - Progress is start at 0 by default even if 1st pts is not 0. - Fix capture issues: capture current displayed frame, easier api - RGB48 support. OpenGL only supports RGB48LE. - Link to static ffmpeg support - Fix open error if input url/path contains special charactors version 1.4.1 2014-11-06 Changelog: - More QtMultimedia compatible QML playback API - Debian package support. Now you can build on ubuntu>=14.04 using debuild - Subtitle: libass renderering support. Dynamically change FFmpeg parser and libass - Log level control support without changing any Qt logging functions (qDebug, qWarning etc.) - Video orientation support in renderers - Bug fix: video frame with alpha value. video stream start time >0. OpenAL can not close correctly... - QML only: video preview. - players: config UI in QMLPlayer. Video preview on progress bar. version 1.4.0 2014-09-10 Changelog: - Improve OpenGL: more pixel formats, supports QML(not stable), dynamic gl support etc. - VAAPI: GLX direct rendering support. check 4k. - DXVA: more decoding surfaces to improve performance - VDA (OSX hardware decoding) support - Android support. Easy to deploy - Subtitle support, including QML - Improve OpenAL. Works fine on most platforms including android - FFmpeg libavfilter support - Audio output api change - deploy script for ifw, OSX - Bug fix - WIP: dsound, opensl, audio engine, audio filters etc. version 1.3.3 2014-04-20 - CUDA support for windows and linux. (The first player/library support CUDA decoding on linux?) - Renderering 16-bit YUV (for example Hi10P) for both OpenGL and OpenGL ES2. maybe it's the first player/library supports rendering 10-bit using OpenGL ES2. VLC, XBMC and mplayer can't Supported format: 9, 10, 12, 14, 16 bit, planar, little/big endian. - Support Sailfish OS. Works perfectly. - Fix mosaics for some videos since QtAV1.3.1 - Better seeking - New VideoOutput class with QObject features support - Improve cedarv hardware decoding. - Audio channel api for QML - FFmpeg build script supports maemo5, meego, sailfish, android, mingw gcc, msvc - Fix build error for Qt 5.0 - player: * fix wrong video display size when fullscreen mode changed or toolbar hidden version 1.3.2 2014-03-16 - OpenGL improvement and better performance(works on iOS and Android): * enable GLSL if supported * use GLSL to render YUV frames * GLSL based video equalizer - XV bug fix and improvement. Supports NV12. Supports video equalizer. - Play from QIODevice support - Capture YUV frames support. - Fix wrong duration in OSD - CUDA decoder working in progress - player: * no gui blocking while opening a stream * add config dialog - Regressions: * OpenGL can not display H10p version 1.3.1 2014-01-27 - Initial OpenAL support. - Fix hardware decoding crashes: seeking, packet loss(e.g. bad network) - Allwinner's CedarX hardware decoding support. Thanks Miroslav Bendik. - FFmpeg log and error handling. New class: AVError - AVDictionary support for decoder and demuxer. API: AVPlayer::setOptionsForXXX() - Fix crash on app exit - Fix Hi10bits crash - Build: * fix XXX_EXPORT macro confliction. * configurable qmake project etc. - QMLPlayer: better UI - player: * wheel to zoom in/out. * apply decoder without restart. * exit on main window close. * move EventHandler to player. - Installer: ubuntu support. - Screen saver for OSX, X11. Improve windows version 1.3.0 2013-12-19 - Selectable audio track - Multiple rendering target for 1 video support - Hardware decoding support(unstable): DXVA2 for windows, VA-API for x11(bad performance now) - Region of Interest(ROI) support, i.e. crop. - Filter support(Experimental) - Video eq: brightness, contrast, saturation - Repeat support - Mang api changes - QML: compatible with many QtMultiMedia APIs - build/install: check arch, fix wrong rpath and launch error on Mac, add installer - player: playlist, history, better online tv, etc. version 1.2.4 2013-09-08 - QML support(thanks theoribeiro ). Can replace some of qtmultimedia qml apps, e.g. qmlvideofx - Fix build for FFmpeg >= 0.9, libav >= 0.8 - Channel can be choosed by user: original, stereo, left, right, centre(mono) - OSD for GL ES2 renderer - player: statistics viewer, disable screensaver on widows when playing, more online tv channels version 1.2.3 2013-08-01 - FFmpeg/libav avresample support - OpenGL ES2 support. Can build against Qt5 GLES2 version now - XV support for Qt5 - more audio format support, e.g. sample format, channels. - Fix H.264 decoding error for the beginning frames. - Fix audio decoding error if packet should be decoded multiple times. WMA audio. - Save video captures to system Picture directory version 1.2.2 2013-07-03 - Audio resampler using swresample - Play speed control - Audio format - Play good with audio that noise before(mp3, ...) - init and deinit FFmpeg only when needed - Component id accessed by symbol - mms support version 1.2.1 2013-06-19 - Configurable video quality - Correct aspect ratio. Any value is supported - Fix some media playing problem - Fix crash if no audio - Fix d2d crash by setting multi-thread type - Fix WidgetRenderer can not update problem - Fix mem leak if renderer changed - player: volume control, display correct online tv name, correct display time version 1.2.0 2013-05-27 - Better gui for the player example - Dynamically change renderer engine - Filter framework works. Filters on data and renderer support - XV rendering support - Fix some qmake project bugs - Other features, bug fix, code refine version 1.1.11 2013-03-15 - OpenGL support. Only rendering now. - OSD support. - New shortcuts: Ctrl+O=>open, O=>switch OSD, Q/ESC=>quit - Command line option: -vo gl/d2d/gdi/qt, -h|--help - Fix wrong aspect ratio when resizing - Better qmake project - Building debian package support: make deb - Bug fix version 1.1.10 2013-03-04 - Direct2D support. Auto check before compile - GDI+ renderer improved - Custom renderer template - Aspect ratio switch support - Config test support for both Qt4 and Qt5 - Better build system - Auto update rc file - Some documents version 1.1.9 2013-02-22 - Add network interrupt callback. Thanks Vito vcovito - QtAV and FFmpeg runtime version check - Add factory model to manager the components. Currently used in ImageConverter - MSVC support - Seek bug fix: some times blocked - qmake: no additional arguments required(if source dir is writable) - Add 2 graphics item renderer examples - GDI+ renderer support - Start to use script to create new classes version 1.1.8 2013-02-06 - LGPL version 2.1 - better Qt5 support - better synchronisation and seeking - crash fixed when getting stream info - crash fixed when replaying a music - drag & drop, simple internal gui and internal event filter - videowall works better version 1.1.7 2013-01-30 - scale image without qt support! - buggy ipp support. - thread safe capture - Fix first frame not correctly decoded! - new API - tests and examples: clockcontrol, videowall version 1.1.6 2013-01-23 - fix video blocking and crash when seeking - add tests: network, shared renderer - update frames when seeking in a paused state - avoid seeking too frequently - capture sync/async - playing music support - Auto select a suitable clock version 1.1.5 2013-01-18 - playing single stream support. i.e. playing video without audio or playing music - plannar audio support - output can be shared with multiple player - g++ compile error fix - external clock - optimizations and bug fix