275 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 3b3787a1b6 设置渲染引擎失败时,没有释放无效的渲染引擎,引发内存泄漏。 2025-07-22 23:21:06 +08:00
waterstrider 4ceee22176 Update MainWindow.cpp
add missing import to make it compile
2022-01-13 14:38:31 +07:00
waterstrider 6b54dc31aa Update MainWindow.cpp
add missing import to make it compile
2022-01-13 14:34:02 +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
wang-bin d59fec6dbd typo 2017-11-11 10:06:18 +08:00
jiang_xmin 26944f2bf0 examples/player add mouse left button double clicked showfullscreen 2017-10-30 00:15:06 +08:00
wang-bin dff05bbb7c example: implement intermediate fbo for filtering rgb texture 2017-09-21 15:57:18 +08:00
WangBin 08f2f87c75 Update MainWindow.cpp 2017-07-31 09:42:59 +08:00
wangwenx190 f6458955ee 使m_preview成为一个Tool Window,这样它就不会显示在任务栏上了 2017-07-30 22:40:57 +08:00
wangwenx190 ef3d1d3923 修复Player出现视频预览小窗后其解码所需的额外内存不会在其关闭后释放的问题
鼠标离开TimeSlider后即删除m_preview窗口,其解码过程即刻停止,内存占用即可下降
2017-07-30 22:23:12 +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 4ed72b638b add ts template for translating #836
translate QtAV.ts, player.ts and QMLPlayer.ts in linguest. the result ts
file name has suffix, e.g. QtAV_de.ts
2017-03-17 17:30:37 +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
ravas 5b3d8f25b7 set the Player's style to Fusion for OS X; #738
This is a work-around for the broken slider in the default Macintosh
style.
2016-09-29 23:23:55 -07:00
ravas 86652581af added svg module to player.pro
This is allows macdeployqt to properly copy the framework.
2016-09-28 10:04:11 -07:00
wang-bin 09e6e403f7 ao: simplify API
AudioOutput.setAudioFormat() now use a prefered format if not supported,
and return the actual format used
2016-07-25 16:11:07 +08:00
wang-bin 4746975dbe fix playback restart after stop() in repeat mode #670
AVPlayer.currentRepeat() < 0 if playback is stopped. Previous was 0
2016-07-06 23:46:45 +08:00
wang-bin 2d0dd1d1c8 apply frame rate when playing 2016-06-30 00:00:30 +08:00
wang-bin 0840e69da7 update translations 2016-06-19 20:30:43 +08:00
wang-bin 341ccb7a8c copyright update 2016-06-19 10:20:39 +08:00
wang-bin b08f2dd6a6 examples/player: no virtual func in ctor 2016-06-15 18:08:39 +08:00
wang-bin d3d9a32586 examples/player: add user shader ui 2016-06-15 18:08:39 +08:00
wang-bin 20284f418c AVPlayer: support manually load(). play() is not replay now
load() then play()
2016-05-30 23:19:59 +08:00
wang-bin a64236bc26 deploy: fix linux install destinations #632 2016-05-29 02:02:31 +08:00
wang-bin 0cc62015c4 examples/player: fix property read 2016-03-30 16:08:12 +08:00
wang-bin a26c1888f3 avoid register mutiple times 2016-03-27 22:56:34 +08:00
wang-bin e4bdd17886 fix build error 2016-03-27 18:37:40 +08:00
wang-bin 3723ab1fd5 examples: use sql 2016-03-22 15:22:41 +08:00
wang-bin bc4e7d8500 examples: QMLPlayer history panel, player zoom for mac 2016-03-22 15:02:10 +08:00
zccrs ceeca99b1f Fix compilation fails when define QT_NAMESPACE 2016-03-20 10:42:24 +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 48b2061c66 update translations 2016-02-28 14:18:32 +08:00
wang-bin 83fdda46f7 examples/player: add -vd-list to show decoders and options
TODO: cli like -vd=help, -vd="dec1=property1=value1:...;dec2..."
2016-02-28 01:33:39 +08:00
wang-bin 4851402f30 add signal parameter AVPlayer.seekFinished(qint64)
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?
2016-01-24 22:21:25 +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 575e0dba32 add AVPlayer.bufferSpeed 2015-12-31 21:24:16 +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 94b894b5b6 examples/player: uninstall old libavfilter if parameters changed 2015-12-10 12:41:21 +08:00
wang-bin a2fc440c9f debian: link to /usr/bin/Player. player is used by python3-pil 2015-12-08 17:42:00 +08:00
wang-bin c804872fa9 update examples 2015-12-01 17:03:36 +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 0266fe323a examples: add EGL and log options 2015-11-20 16:26:01 +08:00
wang-bin b426f92bf3 examples: add QMLPlayer project for sdk build
use xx_sdk.pro is better for mobiles. run sdk_install.sh/bat first
2015-11-05 15:41:57 +08:00
wang-bin 5ec08658f7 update translations 2015-11-05 15:31:18 +08:00
wang-bin 554edd75f9 example/player: avoid frame for x11 renderer is scaled twice
x11 renderer scales the input frames(any format), and now in rendering
thread(was in video decoding thread).
2015-10-30 18:46:14 +08:00
wang-bin 9ce84a580d examples: add pro to build from sdk
TODO: test app build from sdk in ci
2015-10-09 01:09:12 +08:00
wang-bin dbea492c0e video stepBackward()/Forward(). deprecate playNextFrame()
currently only step backward to the previous displayed frame
2015-10-05 22:59:05 +08:00
Felix Yan 0bd0553c36 fix a typo: stero => stereo 2015-10-03 13:46:25 +08:00