Skip to content

Releases: wang-bin/mdk-sdk

Release Version 0.10.4

17 Feb 06:32
Compare
Choose a tag to compare
  • Support macCatalyst
  • Support vulkan on apple silicon
  • VT decoder:
    • Support VP9 on macOS 11+. Profile 0 and 2 are confirmed
    • Support more(all) semi-planar formats, output a format with the same chroma subsample size as original format, e.g. 'p410' for hevc yuv444p10le.
    • Fix high depth channel formats output error on apple silicon. It's r10g10a10a2 for 10bit Y plane, but not support yet in renderer, so use p010('x420')
    • Add "hardware" property to enable/disable hardware acceleration
    • Add "width" and "height" property
    • Support HDR in mkv
    • Reduce compressed packet copy
  • VAAPI, VDPAU: fix not work since 0.10.2
  • MFT video decoder: fix h264 constrained baseline profile check
  • CUDA decoder: fix chroma format
  • FFmpeg:
    • Fix a crash if avio open error
    • Fix "drop" option does not work correctly
  • Improve decoder switch in paused state
  • Fix can't switch to a new decoder via setVideoDecoders() since 0.10.0
  • Fix a blank frame in gapless playback
  • Fix 2 crashes in player dtor, 1 race in setNextMedia(), 1 race/crash if faile to open a media
  • Examples:
    • Enable glfw for apple silicon

Release Version 0.10.3

04 Jan 05:22
Compare
Choose a tag to compare
  • Player.setMedia() will stop previous media
  • Default buffer range changes to 1000~2000ms
  • Deprecate foreignGLContextDestroyed(), does nothing now. Use setVideoSurfaceSize(-1, -1) instead
  • Support key-frame only decoding via env "KEY_FRAMES_ONLY=1" (per player option will be better)
  • Support play/seek dynamic duration streams, e.g. recording mpeg ts
  • Support 'x444'/p410 pixel format
  • OpenGL:
    • smart resources release, no leak even if no context destroyed
    • fix external image in essl3 may crash on android
  • VT decoder:
    • force nv12 for mpeg?video
    • support hevc yuv444p10le decoded format 'x444'
  • Change macOS framework struct to support codesign better
  • AMediaCodec decoder: use baseline as fallback of CBP(constrainted baseline) to fix decoder open error
  • Fix crash when destroying player if use native surface
  • Fix unable to seek if EOS is decoded
  • FindMDK.cmake:
    • support xcframework
    • support android studio
  • New swift binding: https://github.com/wang-bin/swiftMDK
  • New android java wrapper and example: https://github.com/wang-bin/mdk-android

Release Version 0.10.2

18 Nov 09:14
Compare
Choose a tag to compare
  • Support apple sillicon(not tested on real device)
  • Support swift language
  • Support cocoapods for macOS via pod 'mdk'
  • Add xcframework, including both macOS and iOS frameworks
  • Add av1 support for CUDA decoder
  • check pixel format support for mmal to fix yuv444p error
  • mmal decoder: force copy if no 0-copy support
  • Add ACES HDR tone map, via env GPU_TONE_MAP=aces
  • Metal, d3d11, vulkan renderer support alpha blending if video has alpha channel
  • Metal: fix crash if frame is invalid
  • Fix a/v sync regression after seek since v0.10.1

Release Version 0.10.1

09 Oct 15:39
Compare
Choose a tag to compare
  • Vulkan: support Player.snapshot()
  • GLRenderAPI.egl/opengl/opengles combinations
  • Fix Player.setProperty("audio.avfilter")
  • D3D11 supports shared nt handle 0-copy rendering via decoder "D3D11:nthandle=1"
  • Simplify ffmpeg runtime loading
  • Fix some crashes and endless waits

Release Version 0.10.0

01 Sep 02:10
Compare
Choose a tag to compare
  • API:
    • Add VulkanRenderAPI
  • Support Vulkan: win32, macOS, android(buggy). Everything works except hardware decoder 0-copy rendering, only software decoders and hardware decoder with ":copy=1" are supported.
  • Correct HDR trc if obviously wrong from decoder(mediacodec vp9)
  • AMediaCodec:
    • Improve async mode
    • Fix blocks on some devices
  • No need to call setLogHandler(nullptr) manually
  • Remove redundant gpu color primaries convertion
  • Fix D3D11 hevc decoder wrong result because of ignoring profile/level
  • Fix D3D11 decoder + D3D11 0-copy rendering wrong result on RTX2060
  • Partialy upport mac catalyst build

Release Version 0.9.2

30 Jul 02:53
Compare
Choose a tag to compare
  • API:
    • Add version()
    • Add Player.set(VideoEffect effect, const float& values, void* vo_opaque) to set brightness, constrast, hue, saturation
  • Metal: Fix viewport resize if create from user provided view
  • D3D11/Metal: Fix stop playback does not clear background
  • Fix XAudio2 crash on win7, fix leak
  • HDR:
    • support HLG transfer function
    • use primaries from decoder(maybe wrong values) iff env "USE_METADATA_PRIMARIES" is 1
    • tone mapping improves
  • Add AV1 for android "AMediaCodec" decoder
  • Fix another A-B range loop endless waiting
  • Vulkan WIP: apple, swapchain, debug, queue, apis, clear background render pass etc.

Release Version 0.9.1

30 Jun 13:53
Compare
Choose a tag to compare
  • API:
    • D3D11RenderAPI.rtv can be a texture to reduce platform dependent user code, context is optional if rtv is set
    • Add GLRenderAPI.fbo, so no need to bind & restore fbo in user code
    • Add MDK_strdup(). Fix potential crashes if msvc build configuration(Debug) != SDK(Release)
  • HDR:
    • BT.2390 is the default tone map curve. Controlled by env GPU_TONE_MAP=2390/hable
    • All decoder and renderer combinations has almost the same result
  • MFT:
  • Clear background on stop can be disabled by SetGlobalOption("videoout.clear_on_stop", 0)
  • Default log level is Info. Must manually set to Debug to see more. playback progress log only appears in LogLevel::All
  • Seek: ensure the last request will be executed. Useful for timeline preview
  • Fix D3D11 backbuffer resize error
  • Fix A-B range loop endless waiting if stop playback by user
  • Fix change decoder error and wait forever near EOF
  • Fix D3D11/Metal renderer crash if change from GPU decoder to CPU decoder
  • Fix D3D11RenderAPI.feature_level
  • Fix mute crash (avfilter)
  • Fix crash if a chapter tile is empty
  • Fix failed to save snapshot as png
  • Fix win64 cmake search dir
  • Deploy: requires vcruntime140_1.dll by win64
  • WIP: vulkan

release version 0.9.0

29 May 11:35
Compare
Choose a tag to compare
  • API: Add GLRenderAPI and MetalRenderAPI
  • Support Metal on macOS and iOS. Lower CPU and GPU load.
  • Windows:
    • Fix com initialization may affect cef
    • D3D11 support decode in 1 gpu and render in another (poor performance).
    • D3D11 upport some 16bit pixel formats if R16 is not supported
    • Add D3D11 debug mode for MFT decoder("MFT:debug=1") and D3D11 renderer
  • Android:
    • Fix EGL load
    • Fix decoding EOS frame in sync and async mode
  • Apple
    • Add debug symbol
    • (macOS) weak link to standard ffmpeg dylibs so no need to dlopen by user. see https://github.com/wang-bin/mdk-sdk/wiki/FFmpeg-Runtime#macos
    • Support software decoder direct rendering, decode to CVPixelBuffer via decoder "FFmpeg:pool=CVPixelBuffer". Less memory use.
    • VT decoder supports ProRes, decode into P010 frames
  • FFmpeg:
    • Print ffmpeg logs in log mdk log handler. Fix multi-lines logs not print completely
    • Support reload via library handle
    • Custom frame pool
    • Add "sw_fallback" property
  • Examples:

Release Version 0.8.1

01 May 09:59
Compare
Choose a tag to compare
  • API:
    • Player.onSync() default interval is 10
    • Add options for creating D3D11RenderAPI
  • CUDA: supports decoding yuv444 formats and 0-copy rendering
  • Support rendering gray formats
  • Fix MFT:d3d=11 texture leak
  • Fix Player.setMute()
  • Player.setState(State::Stopped) is much faster
  • Fix seek error after setPlaybackRate() if sync to audio
  • Apple: enable arc

Release Version 0.8.0

19 Mar 15:41
Compare
Choose a tag to compare
  • API:
    • Add Player.mapPoint() to map coordinates between video frame and viewport
    • Aspect ratio change: negative is scale and crop, positive is scale without crop
    • Add Player.onSync() to support sync to user provided clock. Currently only video can sync to it
  • D3D11 renderer:
    • Supports 16bit be formats
    • Convert to rgb by cpu if format is not supported
  • Linux multi arch cross build. Less platform specific code
  • Add V4L2M2M decoder
  • Improve EGL
  • Fix a crash on macOS when destroying player
  • setBackgroundColor(): always draw background if color is valid. Fix regression since 0.7.0.
  • Fix playback speed is too fast if resume after paused seek. Regression since v0.5.0
  • Fix video only stream clock sync if change playback rate
  • Fix wrong position when seeking (if media 1st pts > 0)
  • GLX is not linked
  • Use clang-8 for rpi to fix invalid armv6 so
  • Fix undefined symbol for sunxi
  • Enable cf guard for windows