2576 Commits

Author SHA1 Message Date
wang-bin e898e6af15 no stl types that break abi
most algorithms and containers are fine. no std::string, exception
2015-09-13 20:29:21 +08:00
wang-bin 96714b49e7 graphicsitem: check glcontext only in rendering thread. fix debug crash
the old code checks gl context in decoder thread and get false at the
first call. then the frame is not set in openglvideo but still be
rendered. the result is VideoMaterial::mapToTexture
crash(texture_size[0] invalid)
2015-09-12 20:48:23 +08:00
wang-bin 7d014b6c05 vaapi: fix build with old va.h on travis-ci 2015-09-12 17:42:49 +08:00
wang-bin ce8993d1dd ci: disable osx dmg upload because it can not run 2015-09-12 11:17:51 +08:00
wang-bin 6801a6f603 vaapi: also test context to check resolution support 2015-09-12 11:14:56 +08:00
wang-bin 43bdf14ebc example player: avoid reopen decoder in play() 2015-09-11 18:19:38 +08:00
wang-bin 1c83cf3c9b vaapi: check resolution support before codec open
if no check, open ok but get_format error, get_buffer2 will still be
called
2015-09-11 15:13:50 +08:00
wang-bin 2ce809beca vaapi: create surfaces later to get used threads
thread type is depending on format. for example mpeg2 use single thread
by ffmpeg
2015-09-11 15:08:56 +08:00
wang-bin a5d59cd51b va: remove unnecessary setup() check
assume parameters do not change in the same stream. setup() is already
called in getFormat()
2015-09-11 12:03:47 +08:00
wang-bin 915ef8c561 remove unnecessary include 2015-09-11 11:57:40 +08:00
wang-bin 11ea2358a0 vaapi: correctly increase surfaces. code cleanup
vdpau backend: surface height>=frame height for glx interoperation and
gl renders a gray bottom line
2015-09-10 13:43:25 +08:00
wang-bin fc6a40f171 vaapi: more profiles (hevc,vpx) 2015-09-10 09:50:40 +08:00
wang-bin b479de61a9 forgot to initialize some members 2015-09-09 22:31:44 +08:00
WangBin 00d75c39ee Merge pull request #506 from Lexerys/hotfix-crash_no_audio
fixed a crash when the audio decoder failed to create
2015-09-09 21:12:11 +08:00
wang-bin 95688bae72 vaapi: fallback to main profile if constrained baseline isn't supported 2015-09-09 19:52:27 +08:00
wang-bin 8315e2115f vaapi: correctly check thread_count and increase default surface count
increasing the surface count should fix mpeg4 multi-thread decoding
using vaapi(single thread decoding is fine). a better solution is use a
surface pool and enlarge the pool when necessary. createSurfaces in my
code will recreate va context and that's unreasonable(crash!)
thread_count is checked before avcodec_open2. If user does not set it,
the default value is 0 and thread_type is FRAME|SLICE, which means
ffmpeg will try to enable threaded decoding and update the thread_count.
So thread_count is always 0 unless we set a >0 value, for example, 1 to
disable threaded decoding
TODO: update thread_count check in DXVA
2015-09-09 19:22:54 +08:00
wang-bin f5250b5f06 vaapi: fix wrong surface size check 2015-09-09 17:58:21 +08:00
wang-bin fe447f098d vaapi: do not release tex image in unmap to fix black display if paused 2015-09-09 17:39:31 +08:00
lexerys 33b07a67b4 fixed a crash when the audio decoder failed to create 2015-09-09 11:28:47 +04:00
wang-bin fdd23cda3c gl: can not upload texture if hw frame map failed 2015-09-08 17:57:58 +08:00
wang-bin ce68ecec33 vaapi: fix vdpau backend(nv gpu tested) crash and no display
If vaPutSurface failed and return false, gl renderer will try to upload
an invalid texture then crash. This should be fixed in VideoShader
(detect hw surface) in the following commits
no display: glx create an rgba(32bpp) pixmap from a 24 bpp x11 pixmap.
intel works fine but nv does not
2015-09-08 17:57:14 +08:00
wang-bin b2a45973ba vaapi: fix vdpau backend copy mode crash. create surfaces in open
vaGetImage surface size must match
if no surface created in open, ffmpeg will create 1 in threaded
getBuffer()
2015-09-08 15:10:46 +08:00
wang-bin 3b342f6c09 vda: AVFrame.data[0] must not be null 2015-09-08 12:38:00 +08:00
wang-bin 7055adb6bd try AVCodecDescriptor.name to find the codec 2015-09-06 16:37:20 +08:00
wang-bin d6a8db7cb1 sub: try to support embedded text subtitles by ffmpeg
TODO: bitmap subtitles(pgs)
sometimes crash
2015-09-06 16:35:01 +08:00
WangBin 181c8ae0a1 Merge pull request #502 from Liberus/master
Fixed resize bug in VideoRenderer if only height or width changes
2015-09-05 13:12:04 +08:00
a.boichuk 8796faa0a6 Fixed resize bug in VideoRenderer if only height or width changes 2015-09-04 21:06:03 +03:00
wang-bin e377e4d2ff gl: compute less in glsl. less material types
TODO: to support both RG and LA format, vec3 can be used
2015-09-05 00:09:42 +08:00
wang-bin 514553a754 gles: fix broken bgra rendering since 53c5353 2015-09-04 01:00:51 +08:00
wang-bin 37f870b2f5 ci: enable osx for travis 2015-09-03 22:28:18 +08:00
wang-bin 33f3f5e6f2 gl: use macro HAS_ALPHA for fragment shaders 2015-09-03 18:53:29 +08:00
wang-bin c8f5c2f4a9 gl: simplify video material type 2015-09-03 18:21:30 +08:00
wang-bin 8f8ae591fd version 1.8.0
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
v1.8.0
2015-09-01 13:26:10 +08:00
wang-bin d9c90dc668 qml: update plugins.qmltypes 2015-09-01 01:03:06 +08:00
wang-bin 9126e2c2fc warnings etc 2015-09-01 00:02:08 +08:00
wang-bin 7d2c3181b0 use qimage with r/g swapped for bgr formats if not directly supported 2015-09-01 00:01:27 +08:00
wang-bin 9fe6c044a8 fix no opengl build 2015-08-31 23:36:44 +08:00
wang-bin ed4fc0b469 gl: fix broken 8bit gbrp support 2015-08-30 21:48:14 +08:00
wang-bin 44e9cc1c4b rgba64 build error for libav 2015-08-30 18:40:01 +08:00
wang-bin 78155d59fc gl: add rgba 64 le support. only desktop supports 48/64
bgrX: rgbX+bgrX for gl.
gles has not GL_UNSIGNED_SHORT so does not support those formats
2015-08-30 00:46:34 +08:00
wang-bin edeb852df9 gl: fix broken alpha image rendering 2015-08-30 00:05:23 +08:00
wang-bin 42c1ceae13 add rgba64, 0rgb formats
0rgb still use rgba formats because we can check hasAlpha. libav use
rgba too
2015-08-29 23:46:55 +08:00
wang-bin 53c5353203 gl: fix bgra on osx
use channel map is fine too
2015-08-29 23:40:00 +08:00
wang-bin 9e88c423c8 vo: clean up api 2015-08-29 15:21:25 +08:00
wang-bin 79362de766 check FF_API_R_FRAME_RATE 2015-08-29 01:50:43 +08:00
wang-bin 07316c35d5 gl: fix >8bits/component yuv/rgb support 2015-08-27 02:14:56 +08:00
wang-bin 7e4b98f5a2 fix array_size error for local types 2015-08-26 23:58:09 +08:00
wang-bin b6bfe8f4fd gl: fix packed yuv format channel mapping 2015-08-26 22:12:31 +08:00
wang-bin f0263ab3a8 gl: unify video format=>gl parameters code 2015-08-26 22:05:37 +08:00
wang-bin 655c336f90 channels of plane and channel size information for video format 2015-08-26 21:55:52 +08:00