Changes from 2.7g/1.300g to 2.7h/1.300h (02-26-2018)
- Added support for UE4 4.19 and soothed the build warnings on 4.17 and 4.18.
- Updated the WinRT example to compile on Windows Universal 10 (instead of Windows 8.1).
- Fixed a warning on the D3D11 code when running on the debug layer.
- Fixed a bug on iOS and Android OpenGL where odd sized videos could have their chroma planes slightly misaligned.
- Triple buffered the GPU command buffers on PS4 for compatibility with Unity.
- Added Bink 2.0 support (really old Bink2) to the WinRT DLLs.
- Switched to PS4 SDK 5.0 (this version will be available for 4.5 as well, but all future versions are 5.0 only).
Changes from 2.6e/1.200e to 2.6f/1.200f (2-6-2017)
Changes from 2.6d/1.200d to 2.6e/1.200e (1-19-2017)
- On PS4, Bink now sets the async thread affinities to share across the cores that you specify, (so that even if one core is overloaded on some other game code, Bink can continue decoding on the other async cores). In practice, this is makes a big difference in playback speed, when you are doing work in the background. This was already how Bink worked on other platforms (which all have soft thread affinities).
- Fixed a linker problem in the iOS plugin for Unity and UE4.
- Fixed a problem where render targets on the UE4 for PS4 wouldn't have SRGB turned on.
- In the Unity and UE4 plugins, we don't clear the rendertarget first, if there is only one movie drawing to the RT - this makes a big speed differences on PS4 and mobile.
- The binaries for the UE4 Bink plugin should now be placed in the /Bink directory (vs the Movies directory).
Changes from 2.6c/1.200c to 2.6d/1.200d (1-9-2017)
- Added new function to the Unity and UE4 plugins, so you can limit the number of output speakers - this lets you play 5.1 audio on stereo speakers. Stereo output is now the default, you need to call BinkPluginLimitSpeakers to bump up the limit for 5.1 or 7.1 output.
- Fixed a compressor problem where if the entire alpha plane was zero, we would ignore the disable alpha-weighting option.
Changes from 2.6b/1.200b to 2.6c/1.200c (11-22-2016)
- Switched the BinkTextureGL support to use slightly oversized textures when s_HasUnpackRowLength is not available. This is a big speed up on OpenGL ES platforms.
- Reorganized the UE4 plugin source - delete the Bink directory under Plugins before you install this new version.
- Fixed a few multithreaded PS4 UE4 problems.
- Changed the IO and sound threads to not be locked to any single core. You can stick lock these threads to a particular core with BinkGetPlatformInfo manually. This is more compatible in the general case when we don't know how your threads are laid out - neither thread does any heavy work, so it should be unnoticeable anyway.
- Added UI option to show just the color plane of alpha movies (handy when alpha plane stores non-alpha data).
- Versioned some atomic internal functions on static library platforms to handle linking with multiple RAD products using different versions of the atomics (fixes a PS4 Bink and older Telemetry issue).
- Changes to support UE 4.14.
- Fixed a bug in BinkWaitStopAsyncThread on the new platform.
Changes from 2.6a/1.200a to 2.6b/1.200b (11-14-2016)
- Fixed a problem with sound on Linux on UE4 and Unity.
- Switched to new locking primatives on a number of platforms - should be faster and work around nonsense like Linux clock changes (do not get me started on absolute lock timeouts).
- Added support for a new secret platform.
- Fixed crashes in BinkGoto when using GPU decoding and cleaned up seeking in general.
- Added Windows Universal support for both UE4 and Unity.
- Worked around some Unity issues when switching between fullscreen and windowed modes on Windows and Mac.
- Made BinkOpenXAudio2 a little less error prone when you update (we were hard to track down bugs). Just pass in 2 zeros, if you want us to init everything for you.
- Fixed a bug in the rescaler that with certain rescaling factors would put a black bar along the right side of the video.
- Fixed a bug in the Mac player, where it showed an Error opening buffer message.
Changes from 2.5u/1.100u to 2.6a/1.200a (10-3-2016)
- Both Bink 1 and Bink 2 upgraded to play 64-bit video files (larger than 4 GB Bink files). Compressor, mixer, player, runtime all updated. Bink files less than 4GB are still compatible with old versions. These updates pushed some changes out to the memory and file IO callbacks, so very minor code changes may be necessary.
- Added UE4 support for Xbox One. We now support all native UE4 platforms.
- Support cook-on-the-fly mode for UE4 on PS4.
- Added Unity support for Xbox One. We now support all native Unity platforms.
Changes from 2.5t/1.100t to 2.5u/1.100u (9-21-2016)
- Added Unity plugin for iOS.
- Added Unity plugin for Android.
- Added Unity plugin for Sony PS4.
- Added UE4 plugin for iOS.
- Added UE4 plugin for Android.
- Link dynamically to GL on Android.
- Fixed some path issues with UE4 plugin for Sony PS4.
- Updated the D3D12 support for the UE4 plugins.
Changes from 2.5s/1.100s to 2.5t/1.100t (9-6-2016)
- Fixed a crash bug in the Win32 Unity plugin when starting up.
- Fixed a bug in the Mac Unity plugin where GL errors were being dumped to the log.
- Fixed a bug where the Unity plugin failed to draw with D3D9.
- Fixed a crash in the Mac and Linux Unity plugins when running under the editor.
- Fixed a crash bug on shutdown in the Win32 and Win64 Unity plugins if you were using Xaudio 2.7 on Windows 7.
- Fixed a bug in the Unreal plugin on PS4 where no sound would play.
- Fixed some bugs in the Unreal plugin build scripts so that the Bink plugin would be included in Win64 packages properly (especially with Unreal 4.13).
Changes from 2.5r/1.100r to 2.5s/1.100s (8-20-2016)
- Added Bink UE4 plugin support for PS4!
- Added support for UE4 4.13.
- Added Metal support to the Bink Mac SDK (and the UE4 plugin).
- Added Bink Unity plugin support for Windows universal builds.
- Fixed a crash bug in the Unity plugin on MacOS and Linux.
- Added built-in support for lightweight graphics contexts on PS4.
- Moved to PS4 SDK 3.5 (shaders compiled for both GPU modes).
- Bink plugin source now ships with UE4 plugins.
Changes from 2.5q/1.100q to 2.5r/1.100r (5-31-2016)
- Worked around yet another autovec codegen bug in GCC for Linux 64 - kids, just say no to vectorization.
- The BinkSoundUseXAudio2 changed to take a BINK_XAUDIO2_INFO structure pointer (contains pointers to the XAudio device and the mastering voice). Works the same when you pass zero.
- Fixed some seeking and scrubbing issues in the Unity and UE4 plugins.
- Fixed some frame rate and duration issues in the UE4 plugin.
- Added a compiler define to redirect plugin dynamic loading directory for the UE4 plugin.
- Dropped the LTCG libs on Xbox 360 and Xbox One (not worth the compiler versioning pain).
- Colorspace matrices now drop a 1 into the alpha plane on non-alpha videos when using the Binktexture pixel shaders (convenient for render-to-texture).
- Added PRX versions of the Bink for Sony PS4.
- Allocate the Bink texture memory in the BinkTexture API on PS4 in one big allocation (rather than 6 to 8 smaller ones).
- Added shared library versions of Bink for Android.
- Added some sound interruption code to the example for iOS 9+.
Changes from 2.5p/1.100p to 2.5q/1.100q (5-11-2016)
- Fixed a hang that could occur during video playback if you suspended Bink IO, and then ran the buffer all the way down to empty without resuming IO.
- Updated the Bink for UE4 installation docs.
Changes from 2.5n/1.100n to 2.5p/1.100p (4-18-2016)
- Updated the Bink Unity plugin to support Unity 5.2+ (the binary interface changed).
- Added new Bink Unreal Engine 4 integration! Just drops in (no source changes normally needed). Built-in GPU decoding, async seeking and more. Supports UE 4.3 and up. Platforms: Win, Mac, Linux. GL, D3D11, and D3D12 support.
- Updated the Bink Japanese and Korean documentation.
- Added ARM 64 Android target.
- Fixed bug where the Bink player wasn't using keyframes during seeking.
Changes from 2.5m/1.995m to 2.5n/1.100n (1-5-2016)
- Fixed a few bugs with ancient Bink 1 old audio format files.
- Added new updated Japanese docs.
- Mac builds now use SSE 3 as their minimum architecture.
- The RAD tools no longer pre-read all of the images in a still-image sequence. We now assume all of the images are the same size as the first. This starts the compression much more quickly.
- Reorganized the order that input files are read - if there is a weird file that used to load and now doesn't, drop me a line.
- Change the minimum frame size calculations for Bink 2 - gives smaller output with videos that have little to no movement.
Changes from 2.5k/1.995k to 2.5m/1.100m (12-15-2015)
- Fixed a bug in the Binkplayer where it wouldn't use key frames after the current play cursor.
- Fixed a bug in the Analyze window for videos with more than 64K frames.
- The RAD Video Tools now run in high DPI mode (on high DPI monitors of course).
- Added support for importing 24-bit wave files.
- Fixed the iOS distribution to contain up-to-date Metal support.
- Made the Xbox build not set the BLD_INFO to avoid compiler warnings.
- Updated the PS4 sample for SDK 2.5 and 3.0.
- Froze the WinRT 8.0 and 8.1 builds at current version (new versions will be Win10 only).
- Add Miles output support to the Android builds.
- Switched the Windows 10 universal builds back to standard Win32 threads.
- Worked around occasional deadlock in BinkStartAsyncThread on PS4 2.5 or 3.0 SDK.
- Set affinity on Xbox One to the first 6 cores (running on the 7th core, even occasionally, can stall decompression).
- Now build the iOS build with embedded bitcode which is now the Apple recommended sweet action (also updated to Xcode 7.2).
Changes from 2.5j/1.995j to 2.5k/1.100k (11-12-2015)
- Simpler version scheme for Bink 1.
- Bink 1 file-format update: use full colorspace by default.
- Bink 1 file-format update: constant frame alpha is stored better smaller.
- Bink 1 file-format update: optional string data now supported.
- Bink 1 and 2 can now specify a custom colorspace in the file itself - more to come with this later.
- Added GPU-assistance for Windows 10 Universal and RT targets.
- All new software blitters - higher quality and available for all platforms. We continue to recommend not using software blitters and to use the GPU for color conversion, though.
- Dropped all the scaling compression options (2x height, 2x height interlaced, etc). No modern app should need these old school modes.
- Dropped the SPU version of the Bink decoder (which cleans up the codebase considerably). You can still download the old Bink 1 SPU decoder if necessary.
- Dropped the Nintendo 3DS as a current platform (also cleans up the codebase). You can still download the old Bink 1 3DS SDK if necessary.
- Removed all the weird buffer formats that no one uses anymore (BINKSURFACE24, BINKSURFACEYUVU, etc).
- Removed all the DirectDraw based options in the Bink player for Windows (just use DIBSections now).
- Added Linux 64-bit Bink Player to distribution.
- Moved to native Linux 32-bit builds (vs hybrid MSVC build).
- Fixed some window sizing and restoring problems for the RAD Video Tools on Windows 10 (update to Windows 10 1511 for sizing fix).
- Updated to Xcode 7.1 for tvOS, MacOS x64, and iOS.
Changes from 2.5i/1.995i to 2.5j/1.995j (10-07-2015)
- Fixed a bug when streaming Bink files smaller than 128KB.
- Fixed a bug on 64-bit MacOS when using memory allocation callbacks.
Changes from 2.5h/1.995h to 2.5i/1.995i (09-16-2015)
- Fixed a bug where files of a certain size would deadlock witth BINKPRELOADALL.
- Small changes to the Apple Metal integration to allow Metal GPU compute shaders to be used once the hardware gets fast enough (which is not now).
- Added an Apple tvOS platform.
Changes from 2.5g/1.995g to 2.5h/1.995h (08-26-2015)
- Fixed a bug where the IO buffer size was set to zero if the IO thread hadn't run in a while.
- Switched to the upcoming Telemetry 3 lib.
Changes from 2.5f/1.995f to 2.5g/1.995g (08-12-2015)
- Added Bink for Unity now supports Mac and GNU/Linux (in addition to Windows).
- Various small Unity fixes.
- Windows 10 Universal libraries now link with mincore.lib (instead of kernel32.lib) - should run on more Windows Universal platforms.
- Added Bink shared library target for GNU/Linux.
- Added Bink FAT shared library target for Mac.
- Worked around the powf_finite symbol on newer Linux GCC versions, should link with older glibc versions now.
- Worked around some multiple symbol definition warnings for older Linux GCC versions.
- Worked around ancient GCC linkers failing on long C++ symbols.
Changes from 2.5e/1.995e to 2.5f/1.995f (07-15-2015)
- Unity update: Unity 5.x compatibility, 64-bit Unity, Bink 1 compatibility, errors to Debug.Log.
- On Linux, we now use clock_gettime with CLOCK_MONOTONIC to avoid problems with timing if the system time is changed during video playback.
Changes from 2.5d/1.995d to 2.5e/1.995e (07-13-2015)
- Added all new Unity integration for Windows! Supports GL, D3D9, D3D11, GPU-assist, rendertargets, multichannel audio, and is fully multithreaded (up to 4 core decoding). Supports Bink 1 or Bink 2.
- With BinkGPU on GL, we now use persistent buffers if available - this gives a large reduction in CPU driver time on some GPUs.
- Added D3D 12 BinkGPU implementation on Windows.
- Added D3D 12 Binktextures and BinkGPU implementation on Xbox One.
- Added feature to stream Bink into memory and then play out of the memory once fully loaded. Use a size larger than the Bink file size to BinkSetIOSize to trigger this mode.
- Made the BinkGPU GL implementation use a dummy alpha texture instead of relying on driver consistency when sampling from unbound textures.
Changes from 2.5c/1.995c to 2.5d/1.995d (06-17-2015)
- Added new Windows Universal target (WinRT and WinPhone). WinRT and WinPhone targets merged.
- Added D3D 12 Binktextures API implementation. See BinkTexturesD3D12.cpp for details, D3D12 isn't as hands off as the other Binktexture platforms.
- Added support for Xaudio 2.8 (in addition to the old Xaudio 2.7 version).
- Added a user pointer parameter to Create_Bink_textures functions (which is passed back to you from any internal allocators).
- Made the GL Binktextures implementation use a dummy alpha texture instead of relying on driver consistency when sampling from unbound textures.
- Fixed a bug in the D3D9 Binktextures implementation when using triple buffering.
- New C# plugin library.
Changes from 2.5b/1.995b to 2.5c/1.995c (05-19-2015)
- Merge BinkTextures API with the GPU assisted API - now, if you use BinkTextures, you can switch to GPU assisted decoding just by linking with a different source file!
- BinkTexture API streamlined and simplified - switching is easy, should take less than 15 minutes. The Bink docs have a checklist on updating to the new API.
- BinkTextures now allows you to have multiple providers linked in and use them dynamically (like GL and D3D11 in the same EXE, or, more commonly, D3D11 and D3D11-GPU-assisted).
- Added new Apple Metal support for iOS - MUCH faster video than OpenGL, easily play 4K video on new iPads!
- Examples all streamlined and simplified - especially Linux and MacOS.
- BinkTextures source files renamed to be consistent across platforms.
- You can tell Bink to use triple buffering in the framebuffers, so you get automatic triple buffering just by changing a constant in BinkOpen. Nice on all zero-copy texture platforms (consoles, Metal).
- Fixed a bug where you couldn't control the volume on OpenAL.
- Removed the ancient BinkBuffers 2D API - just easier to use SetDIBits directly now-a-days.
- Fixed a tricky bug in the FFT code on Linux and Mac where the CPU detection code caused an internal overwrite.
- Fixed crash when flooding filling non-divisible by 16d alpha plane sizes.
- Fixed crash when flooding filling a completely empty alpha plane.
- Fixed a problem where the Bink player wasn't showing the scroll bar.
- Fixed a problem when Bink would incorrectly warn about movie-wide constant alpha.
- Fixed a problem where a constant alpha plane could be cleared incorrectly.
- Fixed a problem where decompression of a constant alpha plane with a height divisible by 16 (not 32) could crash.
Список изменений (v.1.994k to v.1.994m):
- Fixed a bug in the GL and DX11 examples where they weren't calling BinkRegisterFrameBuffers (which has the odd effect of drawing every other frame).
- Fixed a bug where the DX11 code tried to update the alpha texture, even if it was not initialized.