simpler sync logic using blocking queue. higher fps.
All wait logics should be in VideoFilterThread while the decoder decodes
as fast as possible in VideoThread.
TODO:
filters, video capture, sync to external/video, force fps, frame reorder
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
do a read back. the gpu frame format may be rgba, that means gpu do yuv-
>rgb first, so it's slower than hw decoder copy back mode. If the filter
does not support rgb input, another convertion is required in avfilter.
so you'd better to disable zero copy if avfilter is used