0xFelix
16da47384d
Set AccessMode of MediaIO according to QIODevice it is created from
...
When creating MediaIO from QIODevice in AVMuxer's setMedia one had to
manually call mediaIO() after and set the MediaIO's AccessMode to
writable. This patch checks if the QIODevice is writable and then sets
MediaIO's AccessMode automatically.
2017-10-16 11:24:31 +02:00
WangBin
f8d9982e58
Merge pull request #970 from 0xFelix/splitAudioFrames
...
Split audio frames
2017-10-16 17:10:13 +08:00
0xFelix
09edeadb82
Fall back to not splitting AudioFrames if AudioEncoder did not set a frame_size
2017-10-16 11:05:56 +02:00
WangBin
a84ccc93df
Merge pull request #964 from nejatafshar/fixQmlVideoOutput2SourceChange
...
fix the bug that multiple players are rendered when changing source o…
2017-10-15 16:56:34 +08:00
WangBin
658eae6d68
Merge pull request #967 from 0xFelix/fixAVRaceCondition
...
Use dedicated variable to track open state of AVMuxer
2017-10-15 16:48:52 +08:00
WangBin
cd07d20fd9
Merge pull request #968 from 0xFelix/applyAudioSettings
...
Copy over initial_padding, extradata_size and extradata from avctx to newly created audio stream
2017-10-13 20:21:32 +08:00
0xFelix
c13a131dde
Split AudioFrames according to the audio encoders frame_size
...
Some encoders (e.g. OPUS) define a frame_size for each audio frame
and only process that much data in one encoding step. This means that
the number of incoming frames does not have be equal to the number of
outgoing frames. This patch splits AudioFrames according to the audio
encoders frame_size and buffers the leftovers of a frame until the next
frame arrives and prepends them to it. This results in the decoupling of
incoming and outgoing frame sizes.
2017-10-13 13:49:57 +02:00
0xFelix
b4b21a8cd4
Add function to prepend another AudioFrame to an AudioFrame
2017-10-13 13:49:57 +02:00
0xFelix
dff0967971
Add mid function to AudioFrame to get an arbitrary portion of the frame
2017-10-13 13:49:57 +02:00
0xFelix
7bf1cbb05e
Make kHz a static variable of AudioFormat
2017-10-13 13:49:57 +02:00
0xFelix
ed1ac9684f
Move frame_size from AudioEncoderFFmpegPrivate to AudioEncoderPrivate and make it accessible via getter
2017-10-13 13:49:57 +02:00
0xFelix
be777a8e27
For libavcodec versions older than 56.5.100 use delay instead of initial_padding when setting up audio stream
2017-10-13 09:08:14 +02:00
WangBin
4959f402eb
Merge pull request #969 from 0xFelix/fixAVTransCoderStop
...
Disconnect sourcePlayers signal stopped from vfilter/afilter when stopping AVTranscoder
2017-10-12 20:30:59 +08:00
WangBin
c8058733b8
Merge pull request #966 from 0xFelix/master
...
Set avg_frame_rate only for video streams and don't use inverse of frameRate
2017-10-12 20:16:07 +08:00
Felix Matouschek
58245bb0e5
Disconnect sourcePlayers signal stopped from vfilter/afilter when
...
stopping AVTranscoder.
The missing disconnect leads to a second call to finish of vfilter/afilter
which then leads to a segmentation fault in sync mode. In async mode
the segmentation fault does not happen because of a race condition
although a second call is executed. Always stop AVTranscoder first and
then the associated AVPlayer.
2017-10-12 12:52:09 +02:00
Felix Matouschek
66ad0cc59a
Use dedicated variable to track open state of AVMuxer
...
This fixes a race condition where an AVThread tries to access a sub
struct of format_ctx which has not yet been initialized but isOpen
already returns true.
2017-10-12 12:51:19 +02:00
Felix Matouschek
24c8dfbe6a
Copy over initial_padding, extradata_size and extradata from avctx to
...
newly created audio stream
This is needed for audio codecs that for example use the CodecPrivate
element in the WEBM container. The CodecPrivate field can contain
headers or other additional data. The audio codec OPUS cannot be
decoded without this element. Some audio codecs also define an
initial_padding which can be written as CodecDelay into the WEBM
container.
2017-10-12 12:46:54 +02:00
Felix
03d2c19e34
Set avg_frame_rate only for video streams and don't use inverse of frameRate
2017-10-12 12:45:12 +02:00
wang-bin
45fb21043a
sdk_deploy: dest lib name is *Qt5AV*
2017-10-11 17:56:29 +08:00
afshar
42c153cbb6
fix the bug that multiple players are rendered when changing source of VideoOutput2 on qml
2017-10-11 10:16:46 +03:30
wang-bin
9db34cdf64
ci: add vs2017
2017-10-06 23:43:29 +08:00
WangBin
b17b3f6d68
Merge pull request #959 from 0xFelix/master
...
Set the avg_frame_rate for newly created AVStream (Fixes #955 )
2017-10-06 22:33:12 +08:00
Felix Matouschek
abf42f5fba
Set avg_frame_rate of newly created AVStream in AVMuxer to frame_rate of
...
the associated VideoEncoder
Fixes the calculation of the DefaultDuration field for MKV/WEBM files.
Otherwise the DefaultDuration would have been equal to the time_base
(1000ms / fps) which leads to playback failures in Google Chrome.
2017-10-05 16:23:50 +02:00
wang-bin
dff05bbb7c
example: implement intermediate fbo for filtering rgb texture
2017-09-21 15:57:18 +08:00
wang-bin
b963adc3fa
vumeter: fix channel data sampling
2017-09-05 11:35:27 +08:00
WangBin
26e3658e23
Merge pull request #943 from wangwenx190/patch-seek-chapter
...
添加章节跳转的槽函数,已初步测试通过。
2017-08-22 00:07:32 -05:00
赵宇航
512ed74e1c
修正类型错误。
2017-08-22 12:16:48 +08:00
赵宇航
090ebb253b
添加章节跳转的槽函数,已初步测试通过。
2017-08-22 12:08:47 +08:00
WangBin
fc15d1ff09
Merge pull request #937 from felixonmars/patch-1
...
Fix a typo in README
2017-08-08 09:49:20 +08:00
Felix Yan
b6482b0d5e
Fix a typo in README
2017-08-07 14:34:59 -05:00
wang-bin
2110aa6028
qml: VideoOutput/VideoOutput2.source can be an AVPlayer object #935
...
use c++ player and qml renderer
2017-08-06 16:50:11 +08:00
wang-bin
206d89faae
fix qtav version in cmake
2017-08-04 09:32:05 +08:00
wang-bin
5aa04f3bbf
fix seek if media has no audio stream and start time > 0
2017-08-01 15:26:45 +08:00
WangBin
cf931f78ac
Merge pull request #933 from wangwenx190/master
...
修复Player出现视频预览小窗后其解码所需的额外内存不会在其关闭后释放的问题
2017-07-31 09:44:51 +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
cda61b264b
fix qml plugin source dir #928
2017-07-26 17:16:21 +08:00
WangBin
b85c69a26c
Merge pull request #926 from cynnyx/master
...
Allow QtAV to be used as a cmake external project
2017-07-25 18:36:42 +08:00
Michele Caini
528769c091
allow QtAV to be used as a cmake external project
2017-07-25 12:16:59 +02:00
wang-bin
78f1814968
fix cuD3D9CtxCreate error #920
2017-07-20 13:01:17 +08:00
wang-bin
acd681666f
qml: user filter life time is managed by qml engine
2017-07-19 21:42:13 +08:00
wang-bin
fa2720148d
examples: add vu meter filter
2017-07-19 21:13:16 +08:00
wang-bin
e92757f967
qml: fix user filter ptr
2017-07-19 16:51:03 +08:00
wang-bin
51f9e8f738
add github issue template
2017-07-13 17:48:18 +08:00
WangBin
99e721ec4f
Merge pull request #922 from cculianu/fix_vfextractor
...
Fixed esoteric bugs in VideoPreviewWidget and VideoFrameExtractor and added some features
2017-07-12 16:55:07 +08:00
Calin Culianu
5780035cfd
got rid of QMutex altogether as per wang-bin's recommendation
2017-07-12 10:25:39 +03:00
Calin Culianu
68d8544118
videoframe extractor fix and videpreviewwidget fix and feature additions
2017-07-06 20:16:15 +03:00
wang-bin
5f5706c197
opensl: fix SL_RESULT_BUFFER_INSUFFICIENT error
2017-07-05 22:14:53 +08:00
WangBin
3360595035
Merge pull request #916 from cculianu/master
...
Added muxer stream_index key to internalAudioTracks, internalVideoTracks, externalAudioTracks in AVPlayer and misc other fixups
2017-07-04 17:16:53 +08:00