Skip to content

Version 0.21.0

Compare
Choose a tag to compare
@wang-bin wang-bin released this 31 May 07:51
· 67 commits to master since this release
  • New D3D12 renderer via D3D12RenderAPI. Support all decoders. Performance is similar to D3D11. Optimal texture upload for iGPU, env var "GPU_OPTIMAL_UPLOAD=0" can disale optimal upload to compare performance. You can try Qt6 QML example or ./glfwplay -d3d12 video_file.
  • D3D11:
    • Texture upload optimize for iGPU on win10. env var "GPU_OPTIMAL_UPLOAD", significantly reduce vram usage, about 50~70%, and even more for compressed textures. Software decoders and built-in hap decoder will benifit from it.
    • Cache shader binaries
    • Fix crash on win7 if default swapchain format is not supported
  • DRM Prime:
    • Auto detect external texture requirements via modifiers
    • Fix fd leak in 0.20.0
    • Support reusing EGLImage to improve performance via global option SetGlobalOption("eglimage.reuse", 1), or decoder option reuse=1. Known to work for raspberry pi.
  • Vulkan:
    • Fix snapshot() error, a regression in previous release
    • Fix a crash for Hap videos
  • Metal:
    • Fix BC3CoCgSY
    • Support BC formats for iOS 16.4+
  • OpenGL: Fix deleting queries without a context, fix potential leaks
  • MFT:
    • Supports d3d=12 option to enable d3d12 decoding. Currently 0-copy renderer is only D3D12, requires copy=1 option to be used in other renderers.
    • d3d=11 is default
    • Fallback to lower d3d version or software decoder if open error. So now using MFT without option as decoder name is enough.
    • Fix decode error on win7
  • VAAPI:
  • Raspberry Pi 3/4:
    • Perfectly support h264, hevc hardware decoder and 0-copy rendering in Raspberry Pi OS via Player.setDecoders(MediaType::Video, {"V4L2M2M","FFmpeg:hwcontext=drm"}). System ffmpeg is required, MUST delete libffmpeg.so.* in mdk sdk package. May also work with https://github.com/jc-kynesim/rpi-ffmpeg . EGL + OpenGL ES2/3 is recommended by hevc. You can test with ./glfwplay -c:v V4L2M2M,FFmpeg:hwcontext=drm -gl test.mp4
  • Android:
    • AMediaCodec video decoder enable image=1 option by default, lower latency
    • Fix acquiring AImage when it's not ready
    • Fix jni env detach
    • Add low_latency option for AMediaCodec video decoder, default is 0. requires api level 30+
  • Fix alpha value for opaque formats in all renderers
  • Enable SeekFlag::InCache for Default flag
  • Support programs, add MediaInfo.program. setActiveTracks(MediaType::Unknown, {N}) will select Nth program and it's audio/video tracks will be active. Useful for mpegts programs
  • Add SubtitleStreamInfo.metadata, subtitle(and other streams) language is metadata["language"]
  • New pixel formats supported by dx, drm
  • Fix a/v sync if audio duration is a lot less than video
  • Fix BRAW seek
  • FFmpeg:
    • Improve abi compatibility, better support ffmpeg 4.x and 5.x