Skip to content

Commit f01b1ef

Browse files
scriptorianJulusian
authored andcommitted
Update Intel TBB library to v2021.1.1
1 parent e767c1d commit f01b1ef

File tree

248 files changed

+30605
-36126
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

248 files changed

+30605
-36126
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
CasparCG 2.3.2 Beta
2+
==========================================
3+
4+
### Producers
5+
##### Fixes
6+
* Packages: Update TBB library to v2021.1.1 - fixes CPU and memory growth when deleting threads
7+
* FFmpeg: Fix possible deadlock leading to producer not being cleaned up correctly
8+
9+
110
CasparCG 2.3.1 Stable
211
==========================================
312

src/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ CMAKE_MINIMUM_REQUIRED (VERSION 3.0)
44
PROJECT ("CasparCG Server")
55
SET (CONFIG_VERSION_MAJOR 2)
66
SET (CONFIG_VERSION_MINOR 3)
7-
SET (CONFIG_VERSION_BUG 1)
7+
SET (CONFIG_VERSION_BUG 2)
88
SET (CONFIG_VERSION_TAG "Dev")
99

1010
option(ENABLE_HTML "Enable HTML module, require CEF" ON)

src/CMakeModules/Bootstrap_Windows.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,10 @@ casparcg_add_runtime_dependency("${FFMPEG_BIN_PATH}/swscale-5.dll")
9999

100100
# TBB
101101
set(TBB_INCLUDE_PATH "${PACKAGES_FOLDER}/tbb/include")
102-
set(TBB_BIN_PATH "${PACKAGES_FOLDER}/tbb/bin/win32")
103-
link_directories("${PACKAGES_FOLDER}/tbb/lib/win32")
104-
casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbb.dll")
105-
casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbb_debug.dll")
102+
set(TBB_BIN_PATH "${PACKAGES_FOLDER}/tbb/bin/intel64")
103+
link_directories("${PACKAGES_FOLDER}/tbb/lib/intel64")
104+
casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbb12.dll")
105+
casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbb12_debug.dll")
106106
casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbbmalloc.dll")
107107
casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbbmalloc_debug.dll")
108108
casparcg_add_runtime_dependency("${TBB_BIN_PATH}/tbbmalloc_proxy.dll")

src/accelerator/ogl/util/buffer.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,14 @@
2222

2323
#include <common/gl/gl_check.h>
2424

25-
#include <tbb/atomic.h>
26-
2725
#include <GL/glew.h>
2826

2927
namespace caspar { namespace accelerator { namespace ogl {
3028

31-
static tbb::atomic<int> g_w_total_count;
32-
static tbb::atomic<std::size_t> g_w_total_size;
33-
static tbb::atomic<int> g_r_total_count;
34-
static tbb::atomic<std::size_t> g_r_total_size;
29+
static std::atomic<int> g_w_total_count;
30+
static std::atomic<std::size_t> g_w_total_size;
31+
static std::atomic<int> g_r_total_count;
32+
static std::atomic<std::size_t> g_r_total_size;
3533

3634
struct buffer::impl
3735
{

src/common/compiler/vs/disable_silly_warnings.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#pragma warning(disable : 4100) // unreferenced formal parameter
2424
#pragma warning(disable : 4127) // conditional expression is constant
2525
#pragma warning(disable : 4180) // qualifier applied to function type has no meaning; ignored
26+
#pragma warning(disable : 4324) // padding a structure for alignment
2627
#pragma warning(disable : 4355) // 'this' : used in base member initializer list
2728
#pragma warning(disable : 4482) // nonstandard extension used: enum 'enum' used in qualified name
2829
#pragma warning(disable : 4503) // decorated name length exceeded, name was truncated
@@ -31,6 +32,7 @@
3132
#pragma warning(disable : 4714) // marked as __forceinline not inlined
3233
#pragma warning(disable : 4505) // unreferenced local function has been
3334
#pragma warning(disable : 4481) // nonstandard extension used: override specifier 'override'
35+
#pragma warning(disable : 4834) // discarding return value of function with 'nodiscard' attribute
3436
#pragma warning(disable : 4996) // function call with parameters that may be unsafe
3537
#pragma warning( \
3638
disable : 4334) // '<<': result of 32 - bit shift implicitly converted to 64 bits(was 64 - bit shift intended ?)

src/modules/ffmpeg/producer/av_input.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@ void Input::abort()
101101
{
102102
abort_request_ = true;
103103
ic_cond_.notify_all();
104+
105+
std::shared_ptr<AVPacket> packet;
106+
while (buffer_.try_pop(packet))
107+
;
104108
}
105109

106110
void Input::reset()
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
; Copyright (c) 2005-2020 Intel Corporation
2+
;
3+
; Licensed under the Apache License, Version 2.0 (the "License");
4+
; you may not use this file except in compliance with the License.
5+
; You may obtain a copy of the License at
6+
;
7+
; http://www.apache.org/licenses/LICENSE-2.0
8+
;
9+
; Unless required by applicable law or agreed to in writing, software
10+
; distributed under the License is distributed on an "AS IS" BASIS,
11+
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
; See the License for the specific language governing permissions and
13+
; limitations under the License.
14+
15+
; This file is organized with a section for each .cpp file.
16+
17+
EXPORTS
18+
19+
; Assertions (assert.cpp)
20+
?assertion_failure@r1@detail@tbb@@YAXPEBDH00@Z
21+
22+
; ITT (tbb_profiling.cpp)
23+
?call_itt_notify@r1@detail@tbb@@YAXHPEAX@Z
24+
?create_itt_sync@r1@detail@tbb@@YAXPEAXPEB_W1@Z
25+
?itt_make_task_group@r1@detail@tbb@@YAXW4itt_domain_enum@d1@23@PEAX_K12W4string_resource_index@d0@23@@Z
26+
?itt_task_begin@r1@detail@tbb@@YAXW4itt_domain_enum@d1@23@PEAX_K12W4string_resource_index@d0@23@@Z
27+
?itt_task_end@r1@detail@tbb@@YAXW4itt_domain_enum@d1@23@@Z
28+
?itt_set_sync_name@r1@detail@tbb@@YAXPEAXPEB_W@Z
29+
?itt_metadata_str_add@r1@detail@tbb@@YAXW4itt_domain_enum@d1@23@PEAX_KW4string_resource_index@d0@23@PEBD@Z
30+
?itt_relation_add@r1@detail@tbb@@YAXW4itt_domain_enum@d1@23@PEAX_KW4itt_relation@d0@23@12@Z
31+
?itt_region_begin@r1@detail@tbb@@YAXW4itt_domain_enum@d1@23@PEAX_K12W4string_resource_index@d0@23@@Z
32+
?itt_region_end@r1@detail@tbb@@YAXW4itt_domain_enum@d1@23@PEAX_K@Z
33+
?itt_metadata_ptr_add@r1@detail@tbb@@YAXW4itt_domain_enum@d1@23@PEAX_KW4string_resource_index@d0@23@1@Z
34+
35+
; Allocators (tbb_allocator.cpp)
36+
?cache_aligned_allocate@r1@detail@tbb@@YAPEAX_K@Z
37+
?cache_aligned_deallocate@r1@detail@tbb@@YAXPEAX@Z
38+
?cache_line_size@r1@detail@tbb@@YA_KXZ
39+
?allocate_memory@r1@detail@tbb@@YAPEAX_K@Z
40+
?deallocate_memory@r1@detail@tbb@@YAXPEAX@Z
41+
?is_tbbmalloc_used@r1@detail@tbb@@YA_NXZ
42+
43+
; Small object pool (small_object_pool.cpp)
44+
?allocate@r1@detail@tbb@@YAPEAXAEAPEAVsmall_object_pool@d1@23@_KAEBUexecution_data@523@@Z
45+
?allocate@r1@detail@tbb@@YAPEAXAEAPEAVsmall_object_pool@d1@23@_K@Z
46+
?deallocate@r1@detail@tbb@@YAXAEAVsmall_object_pool@d1@23@PEAX_KAEBUexecution_data@523@@Z
47+
?deallocate@r1@detail@tbb@@YAXAEAVsmall_object_pool@d1@23@PEAX_K@Z
48+
49+
; Error handling (exception.cpp)
50+
?throw_exception@r1@detail@tbb@@YAXW4exception_id@d0@23@@Z
51+
?what@bad_last_alloc@r1@detail@tbb@@UEBAPEBDXZ
52+
?what@user_abort@r1@detail@tbb@@UEBAPEBDXZ
53+
?what@missing_wait@r1@detail@tbb@@UEBAPEBDXZ
54+
55+
; RTM Mutex (rtm_mutex.cpp)
56+
?try_acquire@r1@detail@tbb@@YA_NAEAVrtm_mutex@d1@23@AEAVscoped_lock@4523@@Z
57+
?acquire@r1@detail@tbb@@YAXAEAVrtm_mutex@d1@23@AEAVscoped_lock@4523@_N@Z
58+
?release@r1@detail@tbb@@YAXAEAVscoped_lock@rtm_mutex@d1@23@@Z
59+
60+
; RTM RW Mutex (rtm_rw_mutex.cpp)
61+
?acquire_writer@r1@detail@tbb@@YAXAEAVrtm_rw_mutex@d1@23@AEAVscoped_lock@4523@_N@Z
62+
?acquire_reader@r1@detail@tbb@@YAXAEAVrtm_rw_mutex@d1@23@AEAVscoped_lock@4523@_N@Z
63+
?upgrade@r1@detail@tbb@@YA_NAEAVscoped_lock@rtm_rw_mutex@d1@23@@Z
64+
?downgrade@r1@detail@tbb@@YA_NAEAVscoped_lock@rtm_rw_mutex@d1@23@@Z
65+
?try_acquire_writer@r1@detail@tbb@@YA_NAEAVrtm_rw_mutex@d1@23@AEAVscoped_lock@4523@@Z
66+
?try_acquire_reader@r1@detail@tbb@@YA_NAEAVrtm_rw_mutex@d1@23@AEAVscoped_lock@4523@@Z
67+
?release@r1@detail@tbb@@YAXAEAVscoped_lock@rtm_rw_mutex@d1@23@@Z
68+
69+
; Tasks and partitioners (task.cpp)
70+
?suspend@r1@detail@tbb@@YAXP6AXPEAXPEAUsuspend_point_type@123@@Z0@Z
71+
?resume@r1@detail@tbb@@YAXPEAUsuspend_point_type@123@@Z
72+
?current_suspend_point@r1@detail@tbb@@YAPEAUsuspend_point_type@123@XZ
73+
?notify_waiters@r1@detail@tbb@@YAX_K@Z
74+
75+
; Task dispatcher (task_dispatcher.cpp)
76+
?spawn@r1@detail@tbb@@YAXAEAVtask@d1@23@AEAVtask_group_context@523@@Z
77+
?spawn@r1@detail@tbb@@YAXAEAVtask@d1@23@AEAVtask_group_context@523@G@Z
78+
?execute_and_wait@r1@detail@tbb@@YAXAEAVtask@d1@23@AEAVtask_group_context@523@AEAVwait_context@523@1@Z
79+
?execution_slot@r1@detail@tbb@@YAGPEBUexecution_data@d1@23@@Z
80+
?wait@r1@detail@tbb@@YAXAEAVwait_context@d1@23@AEAVtask_group_context@523@@Z
81+
?submit@r1@detail@tbb@@YAXAEAVtask@d1@23@AEAVtask_group_context@523@PEAVarena@123@_K@Z
82+
?current_context@r1@detail@tbb@@YAPEAVtask_group_context@d1@23@XZ
83+
84+
; Task group context (task_group_context.cpp)
85+
?initialize@r1@detail@tbb@@YAXAEAVtask_group_context@d1@23@@Z
86+
?destroy@r1@detail@tbb@@YAXAEAVtask_group_context@d1@23@@Z
87+
?is_group_execution_cancelled@r1@detail@tbb@@YA_NAEAVtask_group_context@d1@23@@Z
88+
?reset@r1@detail@tbb@@YAXAEAVtask_group_context@d1@23@@Z
89+
?cancel_group_execution@r1@detail@tbb@@YA_NAEAVtask_group_context@d1@23@@Z
90+
?capture_fp_settings@r1@detail@tbb@@YAXAEAVtask_group_context@d1@23@@Z
91+
92+
; Task arena (arena.cpp)
93+
?max_concurrency@r1@detail@tbb@@YAHPEBVtask_arena_base@d1@23@@Z
94+
?initialize@r1@detail@tbb@@YAXAEAVtask_arena_base@d1@23@@Z
95+
?terminate@r1@detail@tbb@@YAXAEAVtask_arena_base@d1@23@@Z
96+
?execute@r1@detail@tbb@@YAXAEAVtask_arena_base@d1@23@AEAVdelegate_base@523@@Z
97+
?wait@r1@detail@tbb@@YAXAEAVtask_arena_base@d1@23@@Z
98+
99+
; NUMA support (governor.cpp)
100+
?numa_node_count@r1@detail@tbb@@YAIXZ
101+
?fill_numa_indices@r1@detail@tbb@@YAXPEAH@Z
102+
?numa_default_concurrency@r1@detail@tbb@@YAHH@Z
103+
?attach@r1@detail@tbb@@YA_NAEAVtask_arena_base@d1@23@@Z
104+
?isolate_within_arena@r1@detail@tbb@@YAXAEAVdelegate_base@d1@23@_J@Z
105+
?enqueue@r1@detail@tbb@@YAXAEAVtask@d1@23@PEAVtask_arena_base@523@@Z
106+
107+
; Observer (observer_proxy.cpp)
108+
?observe@r1@detail@tbb@@YAXAEAVtask_scheduler_observer@d1@23@_N@Z
109+
110+
; Queuing RW Mutex (queuing_rw_mutex.cpp)
111+
?construct@r1@detail@tbb@@YAXAEAVqueuing_rw_mutex@d1@23@@Z
112+
?try_acquire@r1@detail@tbb@@YA_NAEAVqueuing_rw_mutex@d1@23@AEAVscoped_lock@4523@_N@Z
113+
?acquire@r1@detail@tbb@@YAXAEAVqueuing_rw_mutex@d1@23@AEAVscoped_lock@4523@_N@Z
114+
?release@r1@detail@tbb@@YAXAEAVscoped_lock@queuing_rw_mutex@d1@23@@Z
115+
?upgrade_to_writer@r1@detail@tbb@@YA_NAEAVscoped_lock@queuing_rw_mutex@d1@23@@Z
116+
?downgrade_to_reader@r1@detail@tbb@@YA_NAEAVscoped_lock@queuing_rw_mutex@d1@23@@Z
117+
118+
; Global control (global_control.cpp)
119+
?global_control_active_value@r1@detail@tbb@@YA_KH@Z
120+
?create@r1@detail@tbb@@YAXAEAVglobal_control@d1@23@@Z
121+
?destroy@r1@detail@tbb@@YAXAEAVglobal_control@d1@23@@Z
122+
?get@r1@detail@tbb@@YAXAEAVtask_scheduler_handle@d1@23@@Z
123+
?finalize@r1@detail@tbb@@YA_NAEAVtask_scheduler_handle@d1@23@_J@Z
124+
125+
; Parallel pipeline (parallel_pipeline.cpp)
126+
?set_end_of_input@r1@detail@tbb@@YAXAEAVbase_filter@d1@23@@Z
127+
?parallel_pipeline@r1@detail@tbb@@YAXAEAVtask_group_context@d1@23@_KAEBVfilter_node@523@@Z
128+
129+
; Concurrent bounded queue (concurrent_bounded_queue.cpp)
130+
?allocate_bounded_queue_rep@r1@detail@tbb@@YAPEAE_K@Z
131+
?deallocate_bounded_queue_rep@r1@detail@tbb@@YAXPEAE_K@Z
132+
?wait_bounded_queue_monitor@r1@detail@tbb@@YAXPEAVconcurrent_monitor@123@_K_JAEAVdelegate_base@d1@23@@Z
133+
?abort_bounded_queue_monitors@r1@detail@tbb@@YAXPEAVconcurrent_monitor@123@@Z
134+
?notify_bounded_queue_monitor@r1@detail@tbb@@YAXPEAVconcurrent_monitor@123@_K1@Z
135+
136+
;; Versioning (version.cpp)
137+
TBB_runtime_interface_version
138+
TBB_runtime_version
358 KB
Binary file not shown.
3.16 MB
Binary file not shown.
740 KB
Binary file not shown.

0 commit comments

Comments
 (0)