94 Commits

Author SHA1 Message Date
JiaboLi 7d3b3af691 Optimize the Vulkan rendering engine
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.
2025-08-15 21:24:54 +08:00
JiaboLi 4c2c3c3de8 Merge branch 'wang-bin:master' into master 2025-08-10 22:31:59 +08:00
JiaboLi 93f0af0919 New Vulkan renderer has been added. 2025-08-07 20:36:18 +08:00
JiaboLi b457a7597c The variable name is incomplete, resulting in compilation errors. 2025-08-07 19:26:17 +08:00
waterstrider 784a1a44cc Update GLWidgetRenderer2.h
fix: include before QT_VERSION_CHECK(6,0,0)
2022-01-13 14:07:47 +07:00
wang-bin ce21c55b6e qt6 support
no qml. examples are wip.
fix #1381, #1294, #1389
2022-01-08 17:09:43 +08:00
wang-bin b51fee72a8 release 1.13.0
- 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
2019-07-11 08:58:59 +08:00
wangwenx190 691fc41038 Fixed Qt header misspelling: QTableWidget -> QTabWidget. 2018-11-09 15:09:23 +08:00
wang-bin bead28196a fix -Wexpansion-to-defined 2018-06-08 18:00:50 +08:00
Michele Caini 528769c091 allow QtAV to be used as a cmake external project 2017-07-25 12:16:59 +02:00
Calin Culianu 68d8544118 videoframe extractor fix and videpreviewwidget fix and feature additions 2017-07-06 20:16:15 +03:00
WangBin 27c00ef024 remove garbage characters 2017-07-03 17:01:22 +08:00
Andor Greißl d626b3d459 fixed thread handling, saved painter state 2017-06-30 12:36:00 +02:00
wang-bin 00f5d136f2 apply rotation from video stream 2017-06-27 15:27:55 +08:00
wang-bin f672e4a696 version 1.12.0
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
2017-06-21 09:47:15 +08:00
wang-bin d55c9c8c6e qmake: fix mkspecs dir for cross build 2017-03-23 11:09:30 +08:00
wang-bin f343ffc2b7 cmake: use rc template 2017-03-15 17:38:41 +08:00
wang-bin aea2dbc4c2 cmake: embed rc files 2017-03-14 18:39:53 +08:00
wang-bin dfb3425db1 cmake: build qml plugin. fix cmake install dir
[skip ci]
2017-03-10 23:24:10 +08:00
wirx6 c95e52f4ee cmake: custom prefix support 2017-02-05 09:58:16 +01:00
wang-bin bc60860410 cmake: support find_package(QtAV) #795
Currently only FindQtAV.cmake works, i.e. "Module" mode. In "Config"
mode, QTAV_INCLUDE_DIRS and QTAV_LIBRARIES are empty. To use
FindQtAV.cmake, you have to append it's dir to CMAKE_MODULE_PATH

try simpleplayer example after qtav make install

TODO: module mode. auto insert dependencies
2017-01-26 18:01:33 +08:00
wang-bin 87cd8964f1 cmake: check more features 2017-01-24 01:02:44 +08:00
wang-bin 71806f3bab cmake: add examples 2017-01-23 14:46:14 +08:00
wang-bin c54b769e9f cmake: add QtAVWidget module
only common sources for all platforms
2017-01-23 01:52:49 +08:00
wang-bin 9d49102382 support msvc static build. qml is not supported yet
tested qt5.7.0 vs2015 x86 from http://www.npcglib.org/~stathis/blog/
precompiled-qt4-qt5/
2017-01-06 13:26:38 +08:00
wang-bin fdc1d55c46 d2d: fix wrong rect. skip painting for empty rect #780 2016-12-14 09:44:14 +08:00
wang-bin 35611b1862 fix wrong mkspecs dir #779 2016-12-12 21:37:52 +08:00
wang-bin 33692509a4 gl: update viewport when widget parent changed #732 2016-10-21 18:18:02 +08:00
wang-bin b377fbe539 disable log in QtAV module in release mode #658
only print QtAV information
2016-07-22 23:21:39 +08:00
wang-bin f45954f7d8 gl: fix devicePixelRatio in qt5.0 2016-07-05 21:39:39 +08:00
wang-bin 51da36d377 use QWidget::devicePixelRatio for qt<5.5 2016-07-02 10:34:04 +08:00
wang-bin ba14c2ae94 gl: fix OpenGLWidgetRenderer hi-dpi rendering
size passed to QOpenGLWidget.resizeGL is not scaled, while the one to
QGLWidget.resizeGL is scaled
2016-07-02 02:32:19 +08:00
wang-bin 035c3cfb4b qmake: fix osx strip path 2016-06-18 00:56:02 +08:00
wang-bin 3ca2f0d0c6 fix warnings 2016-05-24 22:31:43 +08:00
wang-bin 60c0ac5080 prefer openglwidget only if qt>=5.4 2016-04-19 13:47:51 +08:00
wang-bin 796781b993 let mingw build d3d11 decoder
d3d11.h in mingw64<v5 is not complete, no video decoder there. So the
latest d3d11.h from vs is used. other dependencies like d3d11layers.h,
d3d10.h are already in mingw64. Toolchain provided by qt does not
contains wrl and d3d11layers.h, use mingw-builds instead.
xaudio2 still use 2.8.
tested on mingw64 gcc 4.9, 5.3
remove d2d1headers because d2d1 is supported by most toolchains (gcc4.7,
vs2010 for example)
2016-04-10 18:59:57 +08:00
wang-bin b60398c94d move widgets module source 2016-03-25 10:51:58 +08:00
wang-bin 849f055060 gl/custom_shader: expose VideoRenderer.opengl() 2016-03-11 18:33:08 +08:00
wang-bin c97e29599d vo: remove eq properties in WidgetRenderer because they are not
supported
2016-03-07 22:00:58 +08:00
wang-bin 1f53443c8f version 1.10.0
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
2016-03-02 15:26:03 +08:00
wang-bin 24169cb791 x11: use old ximage if frame/vo not change 2016-01-29 21:13:40 +08:00
wang-bin 1a970d94a0 vo: backgroundColor property. do not support x11, xv, VideoOutput 2016-01-11 15:33:06 +08:00
wang-bin a611bebccd vo: simplify background update
Deprecate needDrawFrame() and needUpdateBackground(). Introduce
backgroundRegion() thus only draw each rect in the region is enough.
2016-01-11 14:17:11 +08:00
wang-bin 5d38ff0dcb vo: simplify signal emtit logic. add properties for qobj renderes
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.
2016-01-06 15:28:34 +08:00
wang-bin 215814e1c4 x11: interop frame first to reduce interop+wait time 2015-12-29 14:50:10 +08:00
wang-bin b562ab9820 version 1.9.0
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
- 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
2015-12-21 02:24:08 +08:00
wang-bin 3a62151f58 filter: support x11/xv renderer
have api changes. source compatible
2015-12-01 15:15:48 +08:00
wang-bin 5629aee041 qmake: do not add INSTALLS on windows
the install path will be like this D:$(INSTALL_ROOT)\you\dir. I don't
know why. This can fix building android on windows
2015-11-24 16:43:14 +08:00
wang-bin 9d0807e88a x11: workaround no shm complete event when replay 2015-11-23 22:16:41 +08:00
wang-bin e4018e9d57 deb: always add a link libQt5AV.so and libQt5AVWidgets.so
seems the link flag is always prefixed with Qt5.
TODO: use the same naming rule as qt to live with multiple qtav
versions?
2015-11-06 19:17:57 +08:00