forked from wang-bin/QtAV
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changelog
545 lines (465 loc) · 18.4 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
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 <[email protected]>). 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