blender/extern
Sergey Sharybin 68a76c3c77 Fix #121719: Sound does not play when playback starts outside of strip
The issue was caused by an integer overflow in the `FFMPEGReader::seek`, which
lead to different results depending on an exact compiler version and platform.

The overflow happened in the equation which calculates `m_position`, in its
`packet.pts - st_time` part, which is effectively `int64_t - uint64_t` which is
expected to result in `uint64_t` due to the way how upcasting works in C++.

With the values `packet.pts=0` and `st_time=353600` from the test file the
calculation resulted in a negative value, which then wrapped around due to the
unsigned nature of the type, resulting in very big value on arm64. The value
was wrong, but it did not manifest itself as an error, since the seek code
believed it found the place.

However, when built on x86 platform, the result value was very large negative
value. It is possible that the type upcasting went different, due to the
multiplication with a double value later in the formula. And this large negative
value lead to the seeking code to read the entire file, trying to make it so
the `m_position` is not less than the requested position.

Fortunately, the `AVStream::start_time` is `int64_t`, which leads to a simple
fix which avoids signed/unsigned cast, making the seeking code to properly
calculate `m_position` on both arm64 and x64 platforms, regardless of the
compiler.

Pull Request: https://projects.blender.org/blender/blender/pulls/122149
2024-05-23 21:25:04 +02:00
..
audaspace Fix #121719: Sound does not play when playback starts outside of strip 2024-05-23 21:25:04 +02:00
binreloc License headers: use SPDX-FileCopyrightText for CMake files 2023-06-14 23:36:23 +10:00
bullet2 Unbreak build on macOS with AppleClang from recent cleanup 2024-03-07 19:56:58 +11:00
ceres License headers: use SPDX-FileCopyrightText for CMake files 2023-06-14 23:36:23 +10:00
cuew Windows: Add ARM64 support 2024-03-06 16:14:34 +01:00
curve_fit_nd Build: replace Blender specific DEBUG by standard NDEBUG 2023-12-06 16:05:14 +01:00
draco License headers: use SPDX-FileCopyrightText for CMake files 2023-06-14 23:36:23 +10:00
Eigen3 Update Eigen to version 3.4.0 2023-07-03 15:09:20 +02:00
fast_float Externals: update fast_float to latest version (5.0.0) to fix some compile warnings 2023-05-30 10:01:48 +03:00
fmtlib Cleanup: CMake: Modernize extern_fmtlib dependencies 2024-02-03 18:55:09 +01:00
gflags License headers: use SPDX-FileCopyrightText for CMake files 2023-06-14 23:36:23 +10:00
glew-es/include/GL GPU: replace GLEW with libepoxy 2022-08-15 16:10:29 +02:00
glog Cleanup: quiet redefined warning in GLOG 2023-08-17 16:09:58 +10:00
gmock License headers: use SPDX-FileCopyrightText for CMake files 2023-06-14 23:36:23 +10:00
gtest License headers: use SPDX-FileCopyrightText for CMake files 2023-06-14 23:36:23 +10:00
hipew Windows: Add ARM64 support 2024-03-06 16:14:34 +01:00
json Extern: Update json library to 3.11.2 2023-07-11 18:01:18 +02:00
lzma Unbreak build on macOS with AppleClang from recent cleanup 2024-03-07 19:56:58 +11:00
lzo Windows: Add ARM64 support 2024-03-06 16:14:34 +01:00
mantaflow Fix: Mantaflow: move allocation after early return 2024-04-26 06:31:22 +02:00
nanosvg UI: SVG Thumbnails 2023-07-12 22:39:23 +02:00
quadriflow Unbreak build on macOS with AppleClang from recent cleanup 2024-03-07 19:56:58 +11:00
rangetree Build: replace Blender specific DEBUG by standard NDEBUG 2023-12-06 16:05:14 +01:00
renderdoc GPU: Renderdoc Frame Capturing 2023-03-23 16:37:52 +01:00
sdlew License headers: use SPDX-FileCopyrightText for CMake files 2023-06-14 23:36:23 +10:00
tinygltf Extern: Update TinyGLTF to version 2.8.21 2024-03-12 17:02:10 +01:00
vulkan_memory_allocator Unbreak build on macOS with AppleClang from recent cleanup 2024-03-07 19:56:58 +11:00
wcwidth Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
xdnd Fix dropping text & URL's from google-chrome in X11 2024-02-20 16:19:31 +11:00
xxhash Libraries: integrate xxHash library for fast hashing 2024-04-03 10:22:53 +02:00
.clang-format ClangFormat: add configuration files 2019-04-17 06:11:16 +02:00
CMakeLists.txt Libraries: integrate xxHash library for fast hashing 2024-04-03 10:22:53 +02:00
README Extern libs: Remove info to update THIRD-PARTY-LICENSES 2024-03-19 17:06:31 +01:00

When updating a library remember to:

* Update the README.blender with the corresponding version.