1.Optimize the texture data transfer mechanism based on memory alignment.
2.Adjust the creation timing of the DescriptorPool, moving it from initSwapChainResources to initResources.
3.Add Vulkan color space configuration items to the Player instance.
- 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
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
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
The position() you get in the slot is not exactly the video seek finish
timestamp, but the clock value. You must use the signal parameter. So if
audio stream seeking is not finished, the value can be very different
from video timestamp.
TODO: emit seekFinished when all streams done the seeking?
signal xxxChanged is emitted in base class VideoRenderer. derived
classes just declare these signals and implemented by moc.
also rename VideoRenderer.frameSize to VideoRenderer.videoFrameSize
the result is abi break.
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 
- 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
- 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