├── src ├── packages │ ├── libjpeg-turbo │ │ ├── bin │ │ │ ├── linux │ │ │ │ ├── libjpeg.so │ │ │ │ ├── libjpeg.so.62 │ │ │ │ ├── libturbojpeg.so │ │ │ │ ├── libturbojpeg.so.0 │ │ │ │ ├── libjpeg.so.62.3.0 │ │ │ │ └── libturbojpeg.so.0.2.0 │ │ │ └── win32 │ │ │ │ ├── jpeg62.dll │ │ │ │ └── turbojpeg.dll │ │ ├── lib │ │ │ ├── win32 │ │ │ │ ├── jpeg.lib │ │ │ │ ├── turbojpeg.lib │ │ │ │ ├── jpeg-static.lib │ │ │ │ └── turbojpeg-static.lib │ │ │ └── linux │ │ │ │ ├── libjpeg.a │ │ │ │ └── libturbojpeg.a │ │ └── include │ │ │ └── win32 │ │ │ └── jconfig.h │ ├── glew │ │ ├── bin │ │ │ └── win32 │ │ │ │ └── glew32.dll │ │ └── lib │ │ │ └── win32 │ │ │ ├── glew32.lib │ │ │ └── glew32s.lib │ ├── tbb │ │ ├── bin │ │ │ └── intel64 │ │ │ │ ├── tbb12.dll │ │ │ │ ├── tbb12.pdb │ │ │ │ ├── tbbbind.dll │ │ │ │ ├── tbbbind.pdb │ │ │ │ ├── tbbmalloc.dll │ │ │ │ ├── tbbmalloc.pdb │ │ │ │ ├── tbb12_debug.dll │ │ │ │ ├── tbb12_debug.pdb │ │ │ │ ├── tbbbind_2_0.dll │ │ │ │ ├── tbbbind_2_0.pdb │ │ │ │ ├── tbbbind_debug.dll │ │ │ │ ├── tbbbind_debug.pdb │ │ │ │ ├── tbbmalloc_debug.dll │ │ │ │ ├── tbbmalloc_debug.pdb │ │ │ │ ├── tbbmalloc_proxy.dll │ │ │ │ ├── tbbmalloc_proxy.pdb │ │ │ │ ├── tbbbind_2_0_debug.dll │ │ │ │ ├── tbbbind_2_0_debug.pdb │ │ │ │ ├── tbbmalloc_proxy_debug.dll │ │ │ │ └── tbbmalloc_proxy_debug.pdb │ │ ├── lib │ │ │ └── intel64 │ │ │ │ ├── tbb.lib │ │ │ │ ├── tbb12.lib │ │ │ │ ├── tbbbind.lib │ │ │ │ ├── tbb_debug.lib │ │ │ │ ├── tbbmalloc.lib │ │ │ │ ├── tbb12_debug.lib │ │ │ │ ├── tbbbind_2_0.lib │ │ │ │ ├── tbbbind_debug.lib │ │ │ │ ├── tbbmalloc_debug.lib │ │ │ │ ├── tbbmalloc_proxy.lib │ │ │ │ ├── tbbbind_2_0_debug.lib │ │ │ │ └── tbbmalloc_proxy_debug.lib │ │ └── include │ │ │ ├── tbb │ │ │ ├── tbb.h │ │ │ ├── info.h │ │ │ ├── task.h │ │ │ ├── version.h │ │ │ ├── profiling.h │ │ │ ├── combinable.h │ │ │ ├── flow_graph.h │ │ │ ├── memory_pool.h │ │ │ ├── null_mutex.h │ │ │ ├── parallel_for.h │ │ │ ├── partitioner.h │ │ │ ├── spin_mutex.h │ │ │ ├── task_arena.h │ │ │ ├── task_group.h │ │ │ ├── tick_count.h │ │ │ ├── blocked_range.h │ │ │ ├── concurrent_map.h │ │ │ ├── concurrent_set.h │ │ │ ├── global_control.h │ │ │ ├── null_rw_mutex.h │ │ │ ├── parallel_scan.h │ │ │ ├── parallel_sort.h │ │ │ ├── queuing_mutex.h │ │ │ ├── spin_rw_mutex.h │ │ │ ├── tbb_allocator.h │ │ │ ├── blocked_range2d.h │ │ │ ├── blocked_range3d.h │ │ │ ├── blocked_rangeNd.h │ │ │ ├── concurrent_queue.h │ │ │ ├── concurrent_vector.h │ │ │ ├── parallel_for_each.h │ │ │ ├── parallel_invoke.h │ │ │ ├── parallel_pipeline.h │ │ │ ├── parallel_reduce.h │ │ │ ├── queuing_rw_mutex.h │ │ │ ├── tbbmalloc_proxy.h │ │ │ ├── concurrent_hash_map.h │ │ │ ├── scalable_allocator.h │ │ │ ├── concurrent_lru_cache.h │ │ │ ├── cache_aligned_allocator.h │ │ │ ├── concurrent_unordered_map.h │ │ │ ├── concurrent_unordered_set.h │ │ │ ├── flow_graph_abstractions.h │ │ │ ├── task_scheduler_observer.h │ │ │ ├── concurrent_priority_queue.h │ │ │ └── enumerable_thread_specific.h │ │ │ └── oneapi │ │ │ └── tbb │ │ │ ├── detail │ │ │ ├── _namespace_injection.h │ │ │ └── _aligned_space.h │ │ │ └── task.h │ └── openal │ │ ├── bin │ │ └── win32 │ │ │ └── OpenAL32.dll │ │ ├── lib │ │ └── win32 │ │ │ └── OpenAL32.lib │ │ └── include │ │ └── AL │ │ └── efx-creative.h ├── shell │ ├── resource.h │ ├── CasparCG.ico │ ├── LiberationSans-Regular.ttf │ ├── run.sh │ ├── liberation-fonts │ │ ├── LiberationMono-Regular.ttf │ │ ├── AUTHORS │ │ ├── TODO │ │ └── ChangeLog │ ├── casparcg_auto_restart.bat │ ├── included_modules.tmpl │ ├── copy_deps.sh │ ├── platform_specific.h │ ├── server.h │ └── packages.config ├── common │ ├── os │ │ ├── thread.h │ │ ├── linux │ │ │ └── thread.cpp │ │ ├── windows │ │ │ ├── windows.h │ │ │ └── thread.cpp │ │ └── filesystem.h │ ├── packages.config │ ├── future.h │ ├── stdafx.cpp │ ├── base64.h │ ├── utf.h │ ├── forward.h │ ├── filesystem.h │ ├── prec_timer.h │ ├── env.h │ ├── utf.cpp │ └── timer.h ├── protocol │ ├── packages.config │ ├── util │ │ ├── http_request.h │ │ ├── lock_container.h │ │ ├── tokenize.h │ │ └── ProtocolStrategy.h │ ├── amcp │ │ ├── amcp_shared.h │ │ ├── AMCPCommandsImpl.h │ │ └── AMCPCommandQueue.h │ ├── StdAfx.cpp │ └── cii │ │ └── CIICommand.h ├── modules │ ├── newtek │ │ ├── packages.config │ │ ├── newtek.h │ │ ├── StdAfx.cpp │ │ ├── StdAfx.h │ │ ├── producer │ │ │ └── newtek_ndi_producer.h │ │ ├── util │ │ │ └── ndi.h │ │ └── consumer │ │ │ └── newtek_ivga_consumer.h │ ├── oal │ │ ├── packages.config │ │ ├── oal.h │ │ ├── CMakeLists.txt │ │ ├── oal.cpp │ │ └── consumer │ │ │ └── oal_consumer.h │ ├── screen │ │ ├── consumer │ │ │ ├── screen.vert │ │ │ └── screen_consumer.h │ │ ├── packages.config │ │ ├── util │ │ │ └── x11_util.h │ │ ├── screen.h │ │ ├── screen.cpp │ │ └── CMakeLists.txt │ ├── bluefish │ │ ├── packages.config │ │ ├── bluefish.h │ │ ├── StdAfx.cpp │ │ ├── producer │ │ │ └── bluefish_producer.h │ │ ├── CMakeLists.txt │ │ └── StdAfx.h │ ├── decklink │ │ ├── packages.config │ │ ├── StdAfx.c │ │ ├── StdAfx.cpp │ │ ├── decklink.h │ │ ├── producer │ │ │ └── decklink_producer.h │ │ └── consumer │ │ │ └── decklink_consumer.h │ ├── ffmpeg │ │ ├── packages.config │ │ ├── StdAfx.cpp │ │ ├── ffmpeg.h │ │ ├── producer │ │ │ ├── ffmpeg_producer.h │ │ │ ├── av_producer.h │ │ │ └── av_input.h │ │ ├── util │ │ │ └── av_util.h │ │ └── CMakeLists.txt │ ├── flash │ │ ├── packages.config │ │ ├── StdAfx.c │ │ ├── StdAfx.cpp │ │ ├── flash.h │ │ ├── CMakeLists.txt │ │ └── producer │ │ │ └── flash_producer.h │ ├── html │ │ ├── packages.config │ │ ├── CMakeLists.txt │ │ ├── producer │ │ │ └── html_producer.h │ │ └── html.h │ ├── image │ │ ├── packages.config │ │ ├── image.h │ │ ├── producer │ │ │ ├── image_scroll_producer.h │ │ │ └── image_producer.h │ │ ├── util │ │ │ └── image_loader.h │ │ └── consumer │ │ │ └── image_consumer.h │ ├── CMakeLists.txt │ └── replay │ │ ├── replay.h │ │ ├── producer │ │ └── replay_producer.h │ │ └── consumer │ │ └── replay_consumer.h ├── version.tmpl ├── accelerator │ ├── ogl │ │ └── image │ │ │ ├── shader.vert │ │ │ └── image_shader.h │ ├── d3d │ │ ├── d3d_device_context.cpp │ │ ├── d3d_device_context.h │ │ ├── d3d_device.h │ │ └── d3d_texture2d.h │ ├── packages.config │ ├── StdAfx.cpp │ ├── accelerator.h │ ├── accelerator.cpp │ └── StdAfx.h ├── tools │ ├── CMakeLists.txt │ └── bin2c.cpp ├── core │ ├── packages.config │ ├── StdAfx.cpp │ ├── diagnostics │ │ ├── osd_graph.h │ │ └── call_context.cpp │ ├── producer │ │ ├── separated │ │ │ └── separated_producer.h │ │ └── route │ │ │ └── route_producer.h │ └── frame │ │ └── frame_visitor.h └── CMakeLists.txt ├── tools ├── linux │ ├── launch-interactive │ ├── extract-from-docker │ ├── build-base-images │ ├── image-versions │ ├── run_docker.sh │ ├── build-in-docker │ ├── boost │ │ └── Dockerfile │ ├── ensure-base-images │ ├── cef │ │ └── Dockerfile │ ├── extract-deps-from-docker │ ├── Dockerfile │ ├── start_docker.sh │ └── base │ │ └── Dockerfile ├── verify-format.sh ├── update-format.sh └── sync-nuget-packages.sh ├── resources └── windows │ └── flash-template-host-files │ ├── cg20.fth.ntsc │ ├── cg20.fth.pal │ ├── cg20.fth.pal.43 │ ├── cg20.fth.1080i5000 │ ├── cg20.fth.1080i5994 │ ├── cg20.fth.1080i6000 │ ├── cg20.fth.1080p2398 │ ├── cg20.fth.1080p2400 │ ├── cg20.fth.1080p2500 │ ├── cg20.fth.1080p2997 │ ├── cg20.fth.1080p3000 │ ├── cg20.fth.1080p5000 │ ├── cg20.fth.1080p5994 │ ├── cg20.fth.1080p6000 │ ├── cg20.fth.1556p2398 │ ├── cg20.fth.1556p2400 │ ├── cg20.fth.1556p2500 │ ├── cg20.fth.2160p2398 │ ├── cg20.fth.2160p2400 │ ├── cg20.fth.2160p2500 │ ├── cg20.fth.2160p2997 │ ├── cg20.fth.2160p3000 │ ├── cg20.fth.2160p5000 │ ├── cg20.fth.2160p5994 │ ├── cg20.fth.2160p6000 │ ├── cg20.fth.576p2500 │ ├── cg20.fth.720p2398 │ ├── cg20.fth.720p2400 │ ├── cg20.fth.720p2500 │ ├── cg20.fth.720p2997 │ ├── cg20.fth.720p3000 │ ├── cg20.fth.720p5000 │ ├── cg20.fth.720p5994 │ ├── cg20.fth.720p6000 │ ├── cg20.fth.ntsc.169 │ ├── cg20.fth.dci1080p2398 │ ├── cg20.fth.dci1080p2400 │ ├── cg20.fth.dci1080p2500 │ ├── cg20.fth.dci2160p2398 │ ├── cg20.fth.dci2160p2400 │ └── cg20.fth.dci2160p2500 ├── .editorconfig ├── .dockerignore ├── .gitignore └── .github └── ISSUE_TEMPLATE ├── feature_request.md └── bug_report.md /src/packages/libjpeg-turbo/bin/linux/libjpeg.so: -------------------------------------------------------------------------------- 1 | libjpeg.so.62 -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/bin/linux/libjpeg.so.62: -------------------------------------------------------------------------------- 1 | libjpeg.so.62.3.0 -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/bin/linux/libturbojpeg.so: -------------------------------------------------------------------------------- 1 | libturbojpeg.so.0 -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/bin/linux/libturbojpeg.so.0: -------------------------------------------------------------------------------- 1 | libturbojpeg.so.0.2.0 -------------------------------------------------------------------------------- /src/shell/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/shell/resource.h -------------------------------------------------------------------------------- /tools/linux/launch-interactive: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | docker run --rm -it casparcg/server /bin/bash 3 | -------------------------------------------------------------------------------- /src/shell/CasparCG.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/shell/CasparCG.ico -------------------------------------------------------------------------------- /src/packages/glew/bin/win32/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/glew/bin/win32/glew32.dll -------------------------------------------------------------------------------- /src/packages/glew/lib/win32/glew32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/glew/lib/win32/glew32.lib -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbb12.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbb12.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbb12.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbb12.pdb -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbb.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbb.lib -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbb12.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbb12.lib -------------------------------------------------------------------------------- /src/shell/LiberationSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/shell/LiberationSans-Regular.ttf -------------------------------------------------------------------------------- /src/packages/glew/lib/win32/glew32s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/glew/lib/win32/glew32s.lib -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbbind.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbbind.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbbind.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbbind.pdb -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbbbind.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbbbind.lib -------------------------------------------------------------------------------- /src/packages/openal/bin/win32/OpenAL32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/openal/bin/win32/OpenAL32.dll -------------------------------------------------------------------------------- /src/packages/openal/lib/win32/OpenAL32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/openal/lib/win32/OpenAL32.lib -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbmalloc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbmalloc.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbmalloc.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbmalloc.pdb -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbb_debug.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbb_debug.lib -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbbmalloc.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbbmalloc.lib -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/lib/win32/jpeg.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/lib/win32/jpeg.lib -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbb12_debug.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbb12_debug.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbb12_debug.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbb12_debug.pdb -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbbind_2_0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbbind_2_0.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbbind_2_0.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbbind_2_0.pdb -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbb12_debug.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbb12_debug.lib -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbbbind_2_0.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbbbind_2_0.lib -------------------------------------------------------------------------------- /src/shell/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | RET=5 4 | 5 | while [ $RET -eq 5 ] 6 | do 7 | bin/casparcg "$@" 8 | RET=$? 9 | done 10 | 11 | -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/bin/win32/jpeg62.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/bin/win32/jpeg62.dll -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/lib/linux/libjpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/lib/linux/libjpeg.a -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbbind_debug.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbbind_debug.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbbind_debug.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbbind_debug.pdb -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbmalloc_debug.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbmalloc_debug.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbmalloc_debug.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbmalloc_debug.pdb -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbmalloc_proxy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbmalloc_proxy.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbmalloc_proxy.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbmalloc_proxy.pdb -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbbbind_debug.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbbbind_debug.lib -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbbmalloc_debug.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbbmalloc_debug.lib -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbbmalloc_proxy.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbbmalloc_proxy.lib -------------------------------------------------------------------------------- /src/common/os/thread.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace caspar { 6 | 7 | void set_thread_name(const std::wstring& name); 8 | } 9 | -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/bin/win32/turbojpeg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/bin/win32/turbojpeg.dll -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/lib/win32/turbojpeg.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/lib/win32/turbojpeg.lib -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbbind_2_0_debug.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbbind_2_0_debug.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbbind_2_0_debug.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbbind_2_0_debug.pdb -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbbbind_2_0_debug.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbbbind_2_0_debug.lib -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/lib/linux/libturbojpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/lib/linux/libturbojpeg.a -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/lib/win32/jpeg-static.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/lib/win32/jpeg-static.lib -------------------------------------------------------------------------------- /src/shell/liberation-fonts/LiberationMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/shell/liberation-fonts/LiberationMono-Regular.ttf -------------------------------------------------------------------------------- /src/common/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/bin/linux/libjpeg.so.62.3.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/bin/linux/libjpeg.so.62.3.0 -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbmalloc_proxy_debug.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbmalloc_proxy_debug.dll -------------------------------------------------------------------------------- /src/packages/tbb/bin/intel64/tbbmalloc_proxy_debug.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/bin/intel64/tbbmalloc_proxy_debug.pdb -------------------------------------------------------------------------------- /src/packages/tbb/lib/intel64/tbbmalloc_proxy_debug.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/tbb/lib/intel64/tbbmalloc_proxy_debug.lib -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.ntsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.ntsc -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.pal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.pal -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/bin/linux/libturbojpeg.so.0.2.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/bin/linux/libturbojpeg.so.0.2.0 -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/lib/win32/turbojpeg-static.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/src/packages/libjpeg-turbo/lib/win32/turbojpeg-static.lib -------------------------------------------------------------------------------- /src/protocol/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.pal.43: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.pal.43 -------------------------------------------------------------------------------- /src/modules/newtek/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080i5000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080i5000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080i5994: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080i5994 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080i6000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080i6000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080p2398: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080p2398 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080p2400: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080p2400 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080p2500: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080p2500 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080p2997: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080p2997 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080p3000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080p3000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080p5000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080p5000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080p5994: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080p5994 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1080p6000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1080p6000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1556p2398: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1556p2398 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1556p2400: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1556p2400 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.1556p2500: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.1556p2500 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.2160p2398: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.2160p2398 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.2160p2400: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.2160p2400 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.2160p2500: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.2160p2500 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.2160p2997: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.2160p2997 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.2160p3000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.2160p3000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.2160p5000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.2160p5000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.2160p5994: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.2160p5994 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.2160p6000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.2160p6000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.576p2500: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.576p2500 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.720p2398: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.720p2398 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.720p2400: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.720p2400 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.720p2500: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.720p2500 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.720p2997: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.720p2997 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.720p3000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.720p3000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.720p5000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.720p5000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.720p5994: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.720p5994 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.720p6000: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.720p6000 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.ntsc.169: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.ntsc.169 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.dci1080p2398: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.dci1080p2398 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.dci1080p2400: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.dci1080p2400 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.dci1080p2500: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.dci1080p2500 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.dci2160p2398: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.dci2160p2398 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.dci2160p2400: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.dci2160p2400 -------------------------------------------------------------------------------- /resources/windows/flash-template-host-files/cg20.fth.dci2160p2500: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/krzyc/CasparCG-Server/HEAD/resources/windows/flash-template-host-files/cg20.fth.dci2160p2500 -------------------------------------------------------------------------------- /tools/linux/extract-from-docker: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | tempContainer=$(docker create casparcg/server) 3 | docker cp $tempContainer:/opt/casparcg ./casparcg_server 4 | docker rm -v $tempContainer 5 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 4 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /tools/linux/build-base-images: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source $(dirname "$0")/image-versions 4 | 5 | docker rmi $IMAGE_BASE $IMAGE_CEF $IMAGE_BOOST $IMAGE_FFMPEG 6 | 7 | $(dirname "$0")/ensure-base-images 8 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | src/packages 2 | src/cmake-build-* 3 | build-scripts 4 | build 5 | resources 6 | .git 7 | .vscode 8 | CMakeFiles 9 | casparcg_server 10 | 11 | dist 12 | build 13 | src/cmake-build-* 14 | -------------------------------------------------------------------------------- /tools/verify-format.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # override args to diff changes 4 | export CLANG_ARGS=-output-replacements-xml 5 | 6 | SCRIPT_ROOT=$(dirname "${0}")/.. 7 | "${SCRIPT_ROOT}/tools/update-format.sh" 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.dir 2 | *.vcxproj 3 | *.vcxproj.filters 4 | *.tlog 5 | *.sln 6 | .settings 7 | .vscode 8 | .vs 9 | build 10 | dist 11 | CMakeFiles 12 | casparcg_server 13 | 14 | src/cmake-build-* 15 | src/.idea 16 | -------------------------------------------------------------------------------- /tools/linux/image-versions: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export IMAGE_BASE=casparcg/base:1.3.3 4 | export IMAGE_CEF=casparcg/cef:3.3578.1870-3 5 | export IMAGE_BOOST=casparcg/boost:1.66-6 6 | export IMAGE_FFMPEG=casparcg/ffmpeg:4.2.2-2 7 | -------------------------------------------------------------------------------- /src/packages/openal/include/AL/efx-creative.h: -------------------------------------------------------------------------------- 1 | /* The tokens that would be defined here are already defined in efx.h. This 2 | * empty file is here to provide compatibility with Windows-based projects 3 | * that would include it. */ 4 | -------------------------------------------------------------------------------- /src/modules/oal/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/modules/screen/consumer/screen.vert: -------------------------------------------------------------------------------- 1 | #version 450 2 | in vec4 TexCoordIn; 3 | in vec2 Position; 4 | 5 | out vec4 TexCoord; 6 | 7 | void main() 8 | { 9 | TexCoord = TexCoordIn; 10 | gl_Position = vec4(Position, 0, 1); 11 | } 12 | -------------------------------------------------------------------------------- /src/common/os/linux/thread.cpp: -------------------------------------------------------------------------------- 1 | #include "../thread.h" 2 | #include "../../utf.h" 3 | 4 | namespace caspar { 5 | 6 | void set_thread_name(const std::wstring& name) { pthread_setname_np(pthread_self(), u8(name).c_str()); } 7 | 8 | } // namespace caspar 9 | -------------------------------------------------------------------------------- /src/modules/bluefish/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/modules/decklink/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/modules/ffmpeg/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/version.tmpl: -------------------------------------------------------------------------------- 1 | #define CASPAR_GEN ${CONFIG_VERSION_MAJOR} 2 | #define CASPAR_MAJOR ${CONFIG_VERSION_MINOR} 3 | #define CASPAR_MINOR ${CONFIG_VERSION_BUG} 4 | #define CASPAR_TAG "${CONFIG_VERSION_TAG}" 5 | #define CASPAR_HASH "${CONFIG_VERSION_GIT_HASH}" 6 | -------------------------------------------------------------------------------- /src/modules/flash/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/shell/casparcg_auto_restart.bat: -------------------------------------------------------------------------------- 1 | @Echo off 2 | 3 | IF EXIST scanner.exe ( 4 | IF EXIST leveldown.node ( 5 | start scanner.exe 6 | ) 7 | ) 8 | 9 | :Start 10 | SET ERRORLEVEL 0 11 | 12 | casparcg.exe 13 | 14 | if ERRORLEVEL 5 goto :Start 15 | -------------------------------------------------------------------------------- /src/shell/liberation-fonts/AUTHORS: -------------------------------------------------------------------------------- 1 | AUTHORS 2 | 3 | Current Contributors (sorted alphabetically): 4 | - Pravin Satpute 5 | Project Owner (Current) 6 | Red Hat, Inc. 7 | 8 | Previous Contributors 9 | 10 | - Steve Matteson 11 | Original Designer 12 | Ascender, Inc. 13 | -------------------------------------------------------------------------------- /src/modules/html/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/modules/image/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /tools/linux/run_docker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$DISPLAY" ]; then 4 | echo "DISPLAY is not set" 5 | exit 9 6 | fi 7 | 8 | if [ ! -d /tmp/.X11-unix ]; then 9 | echo "X11 socket not found" 10 | exit 9 11 | fi 12 | 13 | if [ ! -f /root/.Xauthority ]; then 14 | echo "Xauthority not found" 15 | exit 9 16 | fi 17 | 18 | ./run.sh 19 | -------------------------------------------------------------------------------- /src/shell/liberation-fonts/TODO: -------------------------------------------------------------------------------- 1 | Here are todo for next release 2 | 1) Serbian glyph for wikipedia https://bugzilla.redhat.com/show_bug.cgi?id=657849 3 | - Improving shape of S_BE https://bugzilla.redhat.com/show_bug.cgi?id=657849#c96 4 | 2) Liberation Mono not recognizing as Mono in Windows application #861003 5 | - presently it is patch, we have to update zero width characters to fixed width 6 | -------------------------------------------------------------------------------- /src/accelerator/ogl/image/shader.vert: -------------------------------------------------------------------------------- 1 | #version 450 2 | in vec4 TexCoordIn; 3 | in vec2 Position; 4 | 5 | out vec4 TexCoord; 6 | out vec4 TexCoord2; 7 | 8 | void main() 9 | { 10 | TexCoord = TexCoordIn; 11 | vec4 pos = vec4(Position, 0, 1); 12 | TexCoord2 = vec4(pos.xy, 0.0, 0.0); 13 | pos.x = pos.x*2.0 - 1.0; 14 | pos.y = pos.y*2.0 - 1.0; 15 | gl_Position = pos; 16 | } 17 | -------------------------------------------------------------------------------- /src/accelerator/d3d/d3d_device_context.cpp: -------------------------------------------------------------------------------- 1 | #include "d3d_device_context.h" 2 | 3 | namespace caspar { namespace accelerator { namespace d3d { 4 | d3d_device_context::d3d_device_context(ID3D11DeviceContext* ctx) 5 | : ctx_(std::shared_ptr(ctx, [](ID3D11DeviceContext* p) { 6 | if (p) 7 | p->Release(); 8 | })) 9 | { 10 | } 11 | }}} // namespace caspar::accelerator::d3d 12 | -------------------------------------------------------------------------------- /src/modules/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | project("modules") 3 | 4 | add_subdirectory(replay) 5 | add_subdirectory(image) 6 | add_subdirectory(ffmpeg) 7 | add_subdirectory(oal) 8 | add_subdirectory(decklink) 9 | add_subdirectory(screen) 10 | add_subdirectory(newtek) 11 | if (ENABLE_HTML) 12 | add_subdirectory(html) 13 | endif () 14 | 15 | if (MSVC) 16 | add_subdirectory(flash) 17 | add_subdirectory(bluefish) 18 | endif() 19 | 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | ### Description 8 | A clear and concise description describing to us how your feature/enhancement request should work. 9 | 10 | ### Solution suggestion 11 | A clear and concise description if you have an idea about a solution. 12 | 13 | --- 14 | 15 | ### Additional information 16 | If you have some additional information or attachments. 17 | -------------------------------------------------------------------------------- /tools/linux/build-in-docker: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | source $(dirname "$0")/image-versions 4 | 5 | GIT_HASH=$(git rev-parse --verify --short HEAD) 6 | 7 | docker build -t casparcg/server \ 8 | --build-arg CC \ 9 | --build-arg CXX \ 10 | --build-arg PROC_COUNT \ 11 | --build-arg GIT_HASH \ 12 | --build-arg IMAGE_BASE \ 13 | --build-arg IMAGE_CEF \ 14 | --build-arg IMAGE_BOOST \ 15 | --build-arg IMAGE_FFMPEG \ 16 | -f $PWD/tools/linux/Dockerfile $PWD 17 | 18 | -------------------------------------------------------------------------------- /src/modules/screen/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/accelerator/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED (VERSION 3.0) 2 | 3 | include_directories(..) 4 | add_executable(bin2c bin2c.cpp) 5 | 6 | function(bin2c source_file dest_file namespace obj_name) 7 | ADD_CUSTOM_COMMAND( 8 | OUTPUT ${dest_file} 9 | COMMAND bin2c ${namespace} ${obj_name} ${CMAKE_CURRENT_SOURCE_DIR}/${source_file} > ${CMAKE_CURRENT_BINARY_DIR}/${dest_file} 10 | DEPENDS bin2c ${CMAKE_CURRENT_SOURCE_DIR}/${source_file} 11 | ) 12 | endfunction() 13 | 14 | -------------------------------------------------------------------------------- /tools/linux/boost/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG IMAGE_BASE 2 | 3 | FROM ${IMAGE_BASE} as BUILD 4 | ARG PROC_COUNT=8 5 | ENV LIBBOOST_VERSION 1_66_0 6 | 7 | RUN wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_${LIBBOOST_VERSION}.tar.gz && \ 8 | tar zxf boost_${LIBBOOST_VERSION}.tar.gz && \ 9 | cd boost_${LIBBOOST_VERSION} && \ 10 | ./bootstrap.sh --prefix=/opt/boost && \ 11 | ./b2 --with=all -j $PROC_COUNT install || exit 0 12 | 13 | FROM scratch 14 | COPY --from=BUILD /opt/boost /opt/boost 15 | -------------------------------------------------------------------------------- /src/common/os/windows/windows.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #undef _UNICODE 4 | #define _UNICODE 5 | #undef UNICODE 6 | #define UNICODE 7 | 8 | #undef NOMINMAX 9 | #define NOMINMAX 10 | 11 | #undef NOSERVICE 12 | #define NOSERVICE 13 | #undef NOMCX 14 | #define NOMCX 15 | 16 | #ifdef _MSC_VER 17 | #include 18 | #endif 19 | #ifndef _WIN32_WINNT 20 | #define _WIN32_WINNT _WIN32_WINNT_WIN7 21 | #endif 22 | 23 | #undef WIN32_LEAN_AND_MEAN 24 | #define WIN32_LEAN_AND_MEAN 25 | 26 | #include 27 | -------------------------------------------------------------------------------- /src/protocol/util/http_request.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace caspar { namespace http { 7 | 8 | struct HTTPResponse 9 | { 10 | unsigned int status_code; 11 | std::string status_message; 12 | std::map headers; 13 | std::string body; 14 | }; 15 | 16 | HTTPResponse request(const std::string& host, const std::string& port, const std::string& path); 17 | 18 | std::string url_encode(const std::string& str); 19 | 20 | }} // namespace caspar::http 21 | -------------------------------------------------------------------------------- /tools/linux/ensure-base-images: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source $(dirname "$0")/image-versions 4 | 5 | docker pull $IMAGE_BASE || docker build --pull -t $IMAGE_BASE tools/linux/base 6 | docker pull $IMAGE_CEF || docker build -t $IMAGE_CEF --build-arg PROC_COUNT --build-arg IMAGE_BASE tools/linux/cef 7 | docker pull $IMAGE_BOOST || docker build -t $IMAGE_BOOST --build-arg PROC_COUNT --build-arg IMAGE_BASE tools/linux/boost 8 | docker pull $IMAGE_FFMPEG || docker build -t $IMAGE_FFMPEG --build-arg PROC_COUNT --build-arg IMAGE_BASE tools/linux/ffmpeg 9 | 10 | # TODO - push images if auth variables are defined 11 | -------------------------------------------------------------------------------- /tools/linux/cef/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG IMAGE_BASE 2 | 3 | FROM ${IMAGE_BASE} as BUILD 4 | ARG PROC_COUNT=8 5 | 6 | ADD http://opensource.spotify.com/cefbuilds/cef_binary_3.3578.1870.gc974488_linux64_minimal.tar.bz2 /opt/cef.tar.bz2 7 | WORKDIR /opt 8 | RUN tar -jxf cef.tar.bz2 && mv /opt/cef_binary_* /opt/cef 9 | RUN mkdir /opt/build 10 | WORKDIR /opt/build 11 | RUN cmake /opt/cef && make -j $PROC_COUNT 12 | RUN cp /opt/build/libcef_dll_wrapper/libcef_dll_wrapper.a /opt/cef/Release/ 13 | RUN strip /opt/cef/Release/libcef.so 14 | 15 | FROM scratch 16 | COPY --from=BUILD /opt/cef /opt/cef 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | ### Expected behaviour 8 | A clear and concise description of what you expected to happen. 9 | 10 | ### Current behaviour 11 | A clear and concise description of what the current behaviour is. 12 | 13 | ---- 14 | 15 | ### Steps to reproduce 16 | 1. 17 | 2. 18 | 3. ... 19 | 20 | ### Environment 21 | * Commit: [e.g. ab1234c] 22 | * Server version: [e.g. v2.2] 23 | * Operating system: [e.g. Windows 10] 24 | 25 | --- 26 | 27 | ### Screenshots 28 | If applicable, add screenshots as complementary information. 29 | -------------------------------------------------------------------------------- /src/shell/included_modules.tmpl: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated file. 3 | */ 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | #include 10 | ${CASPARCG_MODULE_INCLUDE_STATEMENTS} 11 | 12 | namespace caspar { 13 | 14 | static bool intercept_command_line_args(int argc, char** argv) 15 | {${CASPARCG_MODULE_COMMAND_LINE_ARG_INTERCEPTORS_STATEMENTS} 16 | return false; 17 | } 18 | 19 | static void initialize_modules(const core::module_dependencies& dependencies) 20 | {${CASPARCG_MODULE_INIT_STATEMENTS}} 21 | 22 | static void uninitialize_modules() 23 | { 24 | ${CASPARCG_MODULE_UNINIT_STATEMENTS}} 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/core/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/accelerator/d3d/d3d_device_context.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #undef NOMINMAX 4 | #define NOMINMAX 5 | 6 | #include 7 | 8 | #include 9 | 10 | namespace caspar { namespace accelerator { namespace d3d { 11 | class d3d_device_context 12 | { 13 | public: 14 | d3d_device_context(ID3D11DeviceContext* ctx); 15 | 16 | d3d_device_context(const d3d_device_context&) = delete; 17 | d3d_device_context& operator=(const d3d_device_context&) = delete; 18 | 19 | ID3D11DeviceContext* context() const { return ctx_.get(); } 20 | 21 | private: 22 | std::shared_ptr const ctx_; 23 | }; 24 | }}} // namespace caspar::accelerator::d3d 25 | -------------------------------------------------------------------------------- /src/protocol/amcp/amcp_shared.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../util/lock_container.h" 4 | #include 5 | 6 | namespace caspar { namespace protocol { namespace amcp { 7 | 8 | class channel_context 9 | { 10 | public: 11 | explicit channel_context() {} 12 | explicit channel_context(const std::shared_ptr& c, const std::wstring& lifecycle_key) 13 | : channel(c) 14 | , lock(std::make_shared(lifecycle_key)) 15 | { 16 | } 17 | std::shared_ptr channel; 18 | std::shared_ptr lock; 19 | }; 20 | 21 | }}} // namespace caspar::protocol::amcp -------------------------------------------------------------------------------- /tools/linux/extract-deps-from-docker: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source $(dirname "$0")/image-versions 4 | 5 | # CEF 6 | echo "Extracting CEF" 7 | rm -Rf /opt/cef 8 | tempContainer=$(docker create $IMAGE_CEF sh) 9 | docker cp $tempContainer:/opt/cef /opt/cef 10 | docker rm -v $tempContainer 11 | 12 | # FFmpeg 13 | echo "Extracting FFmpeg" 14 | rm -Rf /opt/ffmpeg 15 | tempContainer=$(docker create $IMAGE_FFMPEG sh) 16 | docker cp $tempContainer:/opt/ffmpeg /opt/ffmpeg 17 | docker rm -v $tempContainer 18 | 19 | # Boost 20 | echo "Extracting Boost" 21 | rm -Rf /opt/boost 22 | tempContainer=$(docker create $IMAGE_BOOST sh) 23 | docker cp $tempContainer:/opt/boost /opt/boost 24 | docker rm -v $tempContainer 25 | -------------------------------------------------------------------------------- /tools/update-format.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # args needed to format inline. can be overridden to use script for otehr purposes 4 | CLANG_ARGS=${CLANG_ARGS:--i} 5 | 6 | SOURCE_FILES=`find ./src/ \( -name \*.cpp -type f -or -name \*.h -type f \) -not -path "./src/packages/*" -not -path "*interop*" -not -path "./src/cmake*"` 7 | BAD_FILES=0 8 | for SOURCE_FILE in $SOURCE_FILES 9 | do 10 | export FORMATTING_ISSUE_COUNT=`clang-format-6.0 $CLANG_ARGS $SOURCE_FILE | grep offset | wc -l` 11 | if [ "$FORMATTING_ISSUE_COUNT" -gt "0" ]; then 12 | echo "Source file $SOURCE_FILE contains formatting issues." 13 | BAD_FILES=1 14 | fi 15 | done 16 | 17 | if [ $BAD_FILES ]; then 18 | exit 1 19 | fi 20 | -------------------------------------------------------------------------------- /tools/sync-nuget-packages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SRC_DIR=$PWD/src 4 | BUILD_DIR=$1 5 | 6 | if [ -z ${1+x} ]; then 7 | echo "Expected build directory" 8 | exit 1 9 | fi 10 | 11 | cd $BUILD_DIR 12 | 13 | for d in */ ; do 14 | # echo "$d" 15 | if [ -f "$d/packages.config" ]; then 16 | echo "syncing $d" 17 | cp "${d}packages.config" "$SRC_DIR/${d}packages.config" 18 | fi 19 | if [ "$d" == "modules/" ]; then 20 | for e in $d*/ ; do 21 | # echo "$e" 22 | if [ -f "${e}packages.config" ]; then 23 | echo "syncing $e" 24 | cp "${e}packages.config" "$SRC_DIR/${e}packages.config" 25 | fi 26 | done 27 | fi 28 | done 29 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/tbb.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/info.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2019-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/info.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/task.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/task.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/version.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/profiling.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/profiling.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/combinable.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/combinable.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/flow_graph.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/flow_graph.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/memory_pool.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/memory_pool.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/null_mutex.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/null_mutex.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/parallel_for.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/parallel_for.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/partitioner.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/partitioner.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/spin_mutex.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/spin_mutex.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/task_arena.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/task_arena.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/task_group.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/task_group.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/tick_count.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/tick_count.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/blocked_range.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/blocked_range.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_map.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2019-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_map.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_set.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2019-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_set.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/global_control.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/global_control.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/null_rw_mutex.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/null_rw_mutex.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/parallel_scan.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/parallel_scan.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/parallel_sort.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/parallel_sort.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/queuing_mutex.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/queuing_mutex.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/spin_rw_mutex.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/spin_rw_mutex.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/tbb_allocator.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/tbb_allocator.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/blocked_range2d.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/blocked_range2d.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/blocked_range3d.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/blocked_range3d.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/blocked_rangeNd.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2017-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/blocked_rangeNd.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_queue.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_queue.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_vector.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_vector.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/parallel_for_each.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/parallel_for_each.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/parallel_invoke.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/parallel_invoke.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/parallel_pipeline.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/parallel_pipeline.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/parallel_reduce.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/parallel_reduce.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/queuing_rw_mutex.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/queuing_rw_mutex.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/tbbmalloc_proxy.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/tbbmalloc_proxy.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_hash_map.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_hash_map.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/scalable_allocator.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/scalable_allocator.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_lru_cache.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_lru_cache.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/cache_aligned_allocator.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/cache_aligned_allocator.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_unordered_map.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_unordered_map.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_unordered_set.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_unordered_set.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/flow_graph_abstractions.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/flow_graph_abstractions.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/task_scheduler_observer.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/task_scheduler_observer.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/concurrent_priority_queue.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/concurrent_priority_queue.h" 18 | -------------------------------------------------------------------------------- /src/packages/tbb/include/tbb/enumerable_thread_specific.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../oneapi/tbb/enumerable_thread_specific.h" 18 | -------------------------------------------------------------------------------- /src/protocol/util/lock_container.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "protocol_strategy.h" 6 | 7 | namespace caspar { namespace IO { 8 | 9 | class lock_container 10 | { 11 | public: 12 | lock_container(const std::wstring& lifecycle_key); 13 | ~lock_container(); 14 | 15 | bool check_access(client_connection::ptr conn); 16 | bool try_lock(const std::wstring& lock_phrase, client_connection::ptr conn); 17 | void release_lock(client_connection::ptr conn); 18 | void clear_locks(); 19 | 20 | private: 21 | struct impl; 22 | spl::unique_ptr impl_; 23 | 24 | lock_container(const lock_container&) = delete; 25 | lock_container& operator=(const lock_container&) = delete; 26 | }; 27 | }} // namespace caspar::IO 28 | -------------------------------------------------------------------------------- /src/accelerator/d3d/d3d_device.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace caspar { namespace accelerator { namespace d3d { 7 | class d3d_device 8 | { 9 | public: 10 | d3d_device(); 11 | ~d3d_device(); 12 | 13 | d3d_device(const d3d_device&) = delete; 14 | d3d_device& operator=(const d3d_device&) = delete; 15 | 16 | std::wstring adapter_name() const; 17 | 18 | void* device() const; 19 | 20 | std::shared_ptr immedidate_context(); 21 | 22 | std::shared_ptr open_shared_texture(void* handle); 23 | 24 | static const std::shared_ptr& get_device(); 25 | 26 | private: 27 | struct impl; 28 | std::shared_ptr impl_; 29 | }; 30 | }}} // namespace caspar::accelerator::d3d 31 | -------------------------------------------------------------------------------- /src/common/future.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace caspar { 8 | 9 | template 10 | auto flatten(F&& f) 11 | { 12 | return std::async(std::launch::deferred, [f = std::forward(f)]() mutable { return f.get().get(); }); 13 | } 14 | 15 | template 16 | bool is_ready(const F& future) 17 | { 18 | return future.wait_for(std::chrono::seconds(0)) == std::future_status::ready; 19 | } 20 | 21 | template 22 | auto make_ready_future(T&& value) 23 | { 24 | std::promise::type> p; 25 | p.set_value(std::forward(value)); 26 | return p.get_future(); 27 | } 28 | 29 | static std::future make_ready_future() 30 | { 31 | std::promise p; 32 | p.set_value(); 33 | return p.get_future(); 34 | } 35 | 36 | } // namespace caspar -------------------------------------------------------------------------------- /src/shell/liberation-fonts/ChangeLog: -------------------------------------------------------------------------------- 1 | * Thu Oct 04 2012 Pravin Satpute 2 | - Resolved "Glyphs with multiple unicode encodings inhibit subsetting" #851790 3 | - Resolved #851791, #854601 and #851825 4 | - Following GASP table version as per Liberation old version. (Anti-aliasing disabled) 5 | - Added support for Serbian glyphs for wikipedia #657849 6 | - In Monospace fonts, isFixedPitch bit set via script for getting it recognized as Monospace in putty.exe 7 | 8 | * Fri Jul 06 2012 Pravin Satpute 9 | - Initial version of Liberation fonts based on croscore fonts version 1.21.0 10 | - Converted TTF files into SFD files to be open source. 11 | - Update Copyright and License file 12 | - set fsType bit to 0, Installable Embedding is allowed. 13 | - Absolute value in HHeadAscent/Descent values for maintaining Metric compatibility. 14 | 15 | -------------------------------------------------------------------------------- /src/protocol/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Nicklas P Andersson 20 | */ 21 | 22 | #include "StdAfx.h" 23 | -------------------------------------------------------------------------------- /src/common/stdafx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "stdafx.h" 23 | -------------------------------------------------------------------------------- /src/core/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "StdAfx.h" 23 | -------------------------------------------------------------------------------- /src/modules/flash/StdAfx.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "stdafx.h" -------------------------------------------------------------------------------- /src/modules/flash/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "stdafx.h" -------------------------------------------------------------------------------- /src/accelerator/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "StdAfx.h" 23 | -------------------------------------------------------------------------------- /src/modules/ffmpeg/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "StdAfx.h" 23 | -------------------------------------------------------------------------------- /src/accelerator/accelerator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | namespace caspar { namespace accelerator { 12 | 13 | class accelerator_device 14 | { 15 | public: 16 | virtual boost::property_tree::wptree info() const = 0; 17 | virtual std::future gc() = 0; 18 | }; 19 | 20 | class accelerator 21 | { 22 | public: 23 | explicit accelerator(); 24 | accelerator(accelerator&) = delete; 25 | ~accelerator(); 26 | 27 | accelerator& operator=(accelerator&) = delete; 28 | 29 | std::unique_ptr create_image_mixer(int channel_id); 30 | 31 | std::shared_ptr get_device() const; 32 | 33 | private: 34 | struct impl; 35 | std::unique_ptr impl_; 36 | }; 37 | 38 | }} // namespace caspar::accelerator 39 | -------------------------------------------------------------------------------- /src/packages/tbb/include/oneapi/tbb/detail/_namespace_injection.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | // All public entities of the OneAPI Spec are available under oneapi namespace 18 | 19 | // Define tbb namespace first as it might not be known yet 20 | namespace tbb {} 21 | 22 | namespace oneapi { 23 | namespace tbb = ::tbb; 24 | } 25 | -------------------------------------------------------------------------------- /src/modules/decklink/StdAfx.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "StdAfx.h" 23 | 24 | // TODO: reference any additional headers you need in STDAFX.H 25 | // and not in this file 26 | -------------------------------------------------------------------------------- /src/modules/screen/util/x11_util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Julian Waller, git@julusian.co.uk 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | bool window_always_on_top(const sf::Window& window); 27 | -------------------------------------------------------------------------------- /src/modules/decklink/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "StdAfx.h" 23 | 24 | // TODO: reference any additional headers you need in STDAFX.H 25 | // and not in this file 26 | -------------------------------------------------------------------------------- /src/common/os/windows/thread.cpp: -------------------------------------------------------------------------------- 1 | #include "../thread.h" 2 | 3 | #include 4 | 5 | #include 6 | 7 | #include "../../utf.h" 8 | 9 | namespace caspar { 10 | 11 | typedef struct tagTHREADNAME_INFO 12 | { 13 | DWORD dwType; // must be 0x1000 14 | LPCSTR szName; // pointer to name (in user addr space) 15 | DWORD dwThreadID; // thread ID (-1=caller thread) 16 | DWORD dwFlags; // reserved for future use, must be zero 17 | } THREADNAME_INFO; 18 | 19 | inline void SetThreadName(DWORD dwThreadID, LPCSTR szThreadName) 20 | { 21 | THREADNAME_INFO info; 22 | { 23 | info.dwType = 0x1000; 24 | info.szName = szThreadName; 25 | info.dwThreadID = dwThreadID; 26 | info.dwFlags = 0; 27 | } 28 | __try { 29 | RaiseException(0x406D1388, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR*)&info); 30 | } __except (EXCEPTION_CONTINUE_EXECUTION) { 31 | } 32 | } 33 | 34 | void set_thread_name(const std::wstring& name) { SetThreadName(GetCurrentThreadId(), u8(name).c_str()); } 35 | 36 | } // namespace caspar 37 | -------------------------------------------------------------------------------- /src/protocol/util/tokenize.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see .* 18 | */ 19 | 20 | #pragma once 21 | 22 | #include 23 | #include 24 | 25 | namespace caspar { namespace IO { 26 | 27 | std::size_t tokenize(const std::wstring& message, std::list& pTokenVector); 28 | 29 | }} // namespace caspar::IO 30 | -------------------------------------------------------------------------------- /src/modules/oal/oal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace oal { 27 | 28 | void init(core::module_dependencies dependencies); 29 | 30 | }} // namespace caspar::oal 31 | -------------------------------------------------------------------------------- /src/protocol/amcp/AMCPCommandsImpl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Nicklas P Andersson 20 | */ 21 | 22 | #pragma once 23 | 24 | namespace caspar { namespace protocol { namespace amcp { 25 | 26 | void register_commands(class amcp_command_repository& repo); 27 | 28 | }}} // namespace caspar::protocol::amcp 29 | -------------------------------------------------------------------------------- /src/modules/newtek/newtek.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Sveriges Television AB http://casparcg.com/ 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace newtek { 27 | 28 | void init(core::module_dependencies dependencies); 29 | 30 | }} // namespace caspar::newtek -------------------------------------------------------------------------------- /src/modules/flash/flash.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace flash { 27 | 28 | void init(core::module_dependencies dependencies); 29 | 30 | }} // namespace caspar::flash 31 | -------------------------------------------------------------------------------- /src/modules/screen/screen.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace screen { 27 | 28 | void init(core::module_dependencies dependencies); 29 | 30 | }} // namespace caspar::screen 31 | -------------------------------------------------------------------------------- /src/modules/oal/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.6) 2 | project (oal) 3 | 4 | set(SOURCES 5 | consumer/oal_consumer.cpp 6 | 7 | oal.cpp 8 | ) 9 | set(HEADERS 10 | consumer/oal_consumer.h 11 | 12 | oal.h 13 | ) 14 | 15 | add_library(oal ${SOURCES} ${HEADERS}) 16 | configure_file("${PROJECT_SOURCE_DIR}/packages.config" "${CMAKE_CURRENT_BINARY_DIR}/packages.config") 17 | 18 | include_directories(..) 19 | include_directories(../..) 20 | include_directories(${BOOST_INCLUDE_PATH}) 21 | include_directories(${TBB_INCLUDE_PATH}) 22 | include_directories(${FFMPEG_INCLUDE_PATH}) 23 | include_directories(${OPENAL_INCLUDE_PATH}) 24 | 25 | set_target_properties(oal PROPERTIES FOLDER modules) 26 | source_group(sources\\consumer consumer/*) 27 | source_group(sources ./*) 28 | 29 | if(MSVC) 30 | target_link_libraries(oal 31 | common 32 | core 33 | 34 | OpenAL32) 35 | else() 36 | target_link_libraries(oal 37 | common 38 | core 39 | 40 | openal) 41 | endif() 42 | 43 | casparcg_add_include_statement("modules/oal/oal.h") 44 | casparcg_add_init_statement("oal::init" "oal") 45 | casparcg_add_module_project("oal") 46 | -------------------------------------------------------------------------------- /src/modules/image/image.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace image { 27 | 28 | void init(core::module_dependencies dependencies); 29 | void uninit(); 30 | 31 | }} // namespace caspar::image 32 | -------------------------------------------------------------------------------- /src/core/diagnostics/osd_graph.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | namespace caspar { namespace core { namespace diagnostics { namespace osd { 25 | 26 | void register_sink(); 27 | void show_graphs(bool value); 28 | void shutdown(); 29 | 30 | }}}} // namespace caspar::core::diagnostics::osd 31 | -------------------------------------------------------------------------------- /src/modules/bluefish/bluefish.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace bluefish { 27 | 28 | std::wstring get_version(); 29 | void init(core::module_dependencies dependencies); 30 | 31 | }} // namespace caspar::bluefish 32 | -------------------------------------------------------------------------------- /src/modules/decklink/decklink.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace decklink { 27 | 28 | std::wstring get_version(); 29 | void init(core::module_dependencies dependencies); 30 | 31 | }} // namespace caspar::decklink 32 | -------------------------------------------------------------------------------- /src/shell/copy_deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function usage() 4 | { 5 | cat << EOU 6 | Useage: bash $0 7 | EOU 8 | exit 1 9 | } 10 | 11 | #Validate the inputs 12 | [[ $# < 2 ]] && usage 13 | 14 | #Check if the paths are vaild 15 | [[ ! -e $1 ]] && echo "Not a vaild input $1" && exit 1 16 | [[ -d $2 ]] || echo "No such directory $2 creating..."&& mkdir -p "$2" 17 | 18 | #Get the library dependencies 19 | export LD_LIBRARY_PATH=/opt/boost/lib 20 | echo "Collecting the shared library dependencies for $1..." 21 | deps=$(ldd $1 | awk 'BEGIN{ORS=" "}$1\ 22 | ~/^\//{print $1}$3~/^\//{print $3}'\ 23 | | sed 's/,$/\n/') 24 | echo "Copying the dependencies to $2" 25 | 26 | #Copy the deps 27 | for dep in $deps 28 | do 29 | if [[ $dep = *"ld-linux-x86-64.so"* ]] || [[ $dep = *"libc.so"* ]] || [[ $dep = *"libstdc++.so"* ]]; then 30 | echo "Skipping $dep" 31 | else 32 | echo "Copying $dep to $2" 33 | cp "$dep" "$2" 34 | fi 35 | done 36 | 37 | # Dynamic deps 38 | cp "/usr/lib/x86_64-linux-gnu/nss/libsoftokn3.so" "$2" 39 | cp "/usr/lib/x86_64-linux-gnu/nss/libnssckbi.so" "$2" 40 | 41 | echo "Done!" 42 | -------------------------------------------------------------------------------- /src/common/base64.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Helge Norberg, helge.norberg@svt.se 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | #include 26 | 27 | namespace caspar { 28 | 29 | std::string to_base64(const char* data, size_t length); 30 | std::vector from_base64(const std::string& data); 31 | 32 | } // namespace caspar -------------------------------------------------------------------------------- /src/common/utf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { 27 | 28 | std::wstring u16(const std::string& str); 29 | std::wstring u16(const std::wstring& str); 30 | std::string u8(const std::wstring& str); 31 | std::string u8(const std::string& str); 32 | 33 | } // namespace caspar -------------------------------------------------------------------------------- /src/common/forward.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define FORWARD0(expr) expr 4 | #define FORWARD1(a1, expr) \ 5 | namespace a1 { \ 6 | expr; \ 7 | } 8 | #define FORWARD2(a1, a2, expr) \ 9 | namespace a1 { namespace a2 { \ 10 | expr; \ 11 | }} 12 | #define FORWARD3(a1, a2, a3, expr) \ 13 | namespace a1 { namespace a2 { namespace a3 { \ 14 | expr; \ 15 | }}} 16 | -------------------------------------------------------------------------------- /src/modules/newtek/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Sveriges Television AB http://casparcg.com/ 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | // stdafx.cpp : source file that includes just the standard includes 23 | // dma.pch will be the pre-compiled header 24 | // stdafx.obj will contain the pre-compiled type information 25 | 26 | #include "StdAfx.h" 27 | 28 | // TODO: reference any additional headers you need in STDAFX.H 29 | // and not in this file 30 | -------------------------------------------------------------------------------- /src/modules/bluefish/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | // stdafx.cpp : source file that includes just the standard includes 23 | // dma.pch will be the pre-compiled header 24 | // stdafx.obj will contain the pre-compiled type information 25 | 26 | #include "stdafx.h" 27 | 28 | // TODO: reference any additional headers you need in STDAFX.H 29 | // and not in this file 30 | -------------------------------------------------------------------------------- /src/modules/replay/replay.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * Copyright (c) 2013 Technical University of Lodz Multimedia Centre 4 | * 5 | * This file is part of CasparCG (www.casparcg.com). 6 | * 7 | * CasparCG is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * CasparCG is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with CasparCG. If not, see . 19 | * 20 | * Author: Jan Starzak, jan@ministryofgoodsteps.com 21 | * Krzysztof Pyrkosz, pyrkosz@o2.pl 22 | */ 23 | 24 | #pragma once 25 | 26 | #include 27 | #include 28 | 29 | namespace caspar { namespace replay { 30 | 31 | void init(core::module_dependencies dependencies); 32 | 33 | }} 34 | -------------------------------------------------------------------------------- /src/packages/libjpeg-turbo/include/win32/jconfig.h: -------------------------------------------------------------------------------- 1 | #define JPEG_LIB_VERSION 62 2 | #define LIBJPEG_TURBO_VERSION 2.0.3 3 | #define LIBJPEG_TURBO_VERSION_NUMBER 2000003 4 | 5 | #define C_ARITH_CODING_SUPPORTED 6 | #define D_ARITH_CODING_SUPPORTED 7 | #define MEM_SRCDST_SUPPORTED 8 | #define WITH_SIMD 9 | 10 | #define BITS_IN_JSAMPLE 8 /* use 8 or 12 */ 11 | 12 | #define HAVE_STDDEF_H 13 | #define HAVE_STDLIB_H 14 | #undef NEED_SYS_TYPES_H 15 | #undef NEED_BSD_STRINGS 16 | 17 | #define HAVE_UNSIGNED_CHAR 18 | #define HAVE_UNSIGNED_SHORT 19 | #undef INCOMPLETE_TYPES_BROKEN 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | #undef __CHAR_UNSIGNED__ 22 | 23 | /* Define "boolean" as unsigned char, not int, per Windows custom */ 24 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 25 | typedef unsigned char boolean; 26 | #endif 27 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 28 | 29 | /* Define "INT32" as int, not long, per Windows custom */ 30 | #if !(defined(_BASETSD_H_) || defined(_BASETSD_H)) /* don't conflict if basetsd.h already read */ 31 | typedef short INT16; 32 | typedef signed int INT32; 33 | #endif 34 | #define XMD_H /* prevent jmorecfg.h from redefining it */ 35 | -------------------------------------------------------------------------------- /src/packages/tbb/include/oneapi/tbb/task.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __TBB_task_H 18 | #define __TBB_task_H 19 | 20 | #include "detail/_config.h" 21 | #include "detail/_namespace_injection.h" 22 | #include "detail/_task.h" 23 | 24 | namespace tbb { 25 | inline namespace v1 { 26 | namespace task { 27 | #if __TBB_RESUMABLE_TASKS 28 | using detail::d1::suspend_point; 29 | using detail::d1::resume; 30 | using detail::d1::suspend; 31 | #endif /* __TBB_RESUMABLE_TASKS */ 32 | using detail::d1::current_context; 33 | } // namespace task 34 | } // namespace v1 35 | } // namespace tbb 36 | 37 | #endif /* __TBB_task_H */ 38 | -------------------------------------------------------------------------------- /src/common/os/filesystem.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Helge Norberg, helge.norberg@svt.se 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | namespace caspar { 29 | 30 | boost::optional find_case_insensitive(const std::wstring& case_insensitive); 31 | 32 | std::wstring clean_path(std::wstring path); 33 | 34 | std::wstring ensure_trailing_slash(std::wstring folder); 35 | 36 | } // namespace caspar 37 | -------------------------------------------------------------------------------- /src/modules/image/producer/image_scroll_producer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | /* 3 | * Copyright (c) 2011 Sveriges Television AB 4 | * 5 | * This file is part of CasparCG (www.casparcg.com). 6 | * 7 | * CasparCG is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * CasparCG is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with CasparCG. If not, see . 19 | * 20 | * Author: Robert Nagy, ronag89@gmail.com 21 | */ 22 | 23 | #pragma once 24 | 25 | #include 26 | 27 | #include 28 | #include 29 | 30 | namespace caspar { 31 | namespace image { 32 | 33 | spl::shared_ptr create_scroll_producer(const core::frame_producer_dependencies& dependencies, const std::vector& params); 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/core/producer/separated/separated_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace core { 27 | 28 | spl::shared_ptr create_separated_producer(const spl::shared_ptr& fill, 29 | const spl::shared_ptr& key); 30 | 31 | }} // namespace caspar::core -------------------------------------------------------------------------------- /tools/linux/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG IMAGE_BASE 2 | ARG IMAGE_BOOST 3 | ARG IMAGE_FFMPEG 4 | ARG IMAGE_CEF 5 | 6 | FROM ${IMAGE_BOOST} as boost 7 | FROM ${IMAGE_FFMPEG} as ffmpeg 8 | FROM ${IMAGE_CEF} as cef 9 | 10 | 11 | FROM ${IMAGE_BASE} as build-casparcg 12 | COPY --from=boost /opt/boost /opt/boost 13 | COPY --from=ffmpeg /opt/ffmpeg /opt/ffmpeg 14 | COPY --from=cef /opt/cef /opt/cef 15 | 16 | ARG PROC_COUNT=8 17 | 18 | RUN mkdir /source && mkdir /build && mkdir /install 19 | 20 | COPY ./src /source 21 | 22 | WORKDIR /build 23 | 24 | ENV BOOST_ROOT=/opt/boost 25 | ENV PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig 26 | 27 | ARG CC 28 | ARG CXX 29 | ARG GIT_HASH 30 | 31 | RUN cmake /source 32 | RUN make -j $PROC_COUNT 33 | 34 | # Find a better way to copy deps 35 | RUN ln -s /build/staging /staging && \ 36 | /source/shell/copy_deps.sh shell/casparcg /staging/lib 37 | 38 | FROM nvidia/opengl:1.0-glvnd-devel-ubuntu18.04 39 | COPY --from=build-casparcg /staging /opt/casparcg 40 | 41 | RUN set -ex; \ 42 | apt-get update; \ 43 | apt-get install -y --no-install-recommends \ 44 | libc++1 \ 45 | libnss3 \ 46 | fontconfig \ 47 | ; \ 48 | rm -rf /var/lib/apt/lists/* 49 | 50 | WORKDIR /opt/casparcg 51 | 52 | ADD tools/linux/run_docker.sh ./ 53 | CMD ["./run_docker.sh"] 54 | -------------------------------------------------------------------------------- /src/tools/bin2c.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | int main(int argc, char** argv) 7 | { 8 | if (argc != 4) { 9 | fprintf(stderr, "Usage: %s \"namespace\" \"constant_name\" \"input_filename\"\n", argv[0]); 10 | return -1; 11 | } 12 | char* fn = argv[3]; 13 | FILE* f = fopen(fn, "rb"); 14 | 15 | if (f == nullptr) { 16 | fprintf(stderr, "Error opening file: %s\n", strerror(errno)); 17 | return -1; 18 | } 19 | 20 | int count = 0; 21 | char* pch = strtok(argv[1], "::"); 22 | while (pch != nullptr) { 23 | printf("namespace %s {\n", pch); 24 | pch = strtok(nullptr, "::"); 25 | count++; 26 | } 27 | 28 | printf("const char %s[] = {\n", argv[2]); 29 | unsigned long n = 0; 30 | while (!feof(f)) { 31 | unsigned char c; 32 | if (fread(&c, 1, 1, f) == 0) 33 | break; 34 | if ('\r' == c) // ignore carret return 35 | continue; 36 | printf("0x%.2X,", (int)c); 37 | ++n; 38 | if (n % 10 == 0) 39 | printf("\n"); 40 | } 41 | fclose(f); 42 | printf("0x00\n};\n"); 43 | 44 | for (int i = 0; i < count; i++) 45 | printf("}\n"); 46 | 47 | return 0; 48 | } 49 | -------------------------------------------------------------------------------- /src/modules/ffmpeg/ffmpeg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | namespace caspar { namespace ffmpeg { 25 | 26 | void init(core::module_dependencies dependencies); 27 | void uninit(); 28 | std::shared_ptr temporary_enable_quiet_logging_for_thread(bool enable); 29 | void enable_quiet_logging_for_thread(); 30 | bool is_logging_quiet_for_thread(); 31 | 32 | }} // namespace caspar::ffmpeg 33 | -------------------------------------------------------------------------------- /src/modules/newtek/StdAfx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Sveriges Television AB http://casparcg.com/ 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #ifdef _DEBUG 23 | #include 24 | #endif 25 | 26 | #define NOMINMAX 27 | 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | 38 | #include 39 | 40 | #include 41 | #include 42 | 43 | #include 44 | -------------------------------------------------------------------------------- /tools/linux/start_docker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | CMD="docker run --rm -it" 4 | 5 | # bind AMCP Ports 6 | CMD="$CMD -p 5250:5250" 7 | 8 | # passthrough config 9 | CMD="$CMD -v $PWD/casparcg.config:/opt/casparcg/casparcg.config:ro" 10 | 11 | # passthrough media folder 12 | CMD="$CMD -v $PWD/media:/opt/casparcg/media" 13 | 14 | ## DO NOT EDIT BELOW THIS LINE 15 | 16 | HAS_NVIDIA_RUNTIME=$(docker info | grep -i nvidia) 17 | if [ ! -z "$HAS_NVIDIA_RUNTIME" ]; then 18 | CMD="$CMD --runtime=nvidia" 19 | else 20 | # assume intel, so setup for that 21 | CMD="$CMD --device /dev/dri" 22 | fi 23 | 24 | DECKLINK_API_SO="/usr/lib/libDeckLinkAPI.so" 25 | if [ -f "$DECKLINK_API_SO" ]; then 26 | CMD="$CMD -v $DECKLINK_API_SO:$DECKLINK_API_SO:ro" 27 | 28 | for dev in /dev/blackmagic/*; do 29 | if [ -f "$dev" ]; then 30 | CMD="$CMD --device $dev" 31 | fi 32 | done 33 | fi 34 | 35 | if [ ! -z "$XAUTHORITY" ]; then 36 | CMD="$CMD -v $XAUTHORITY:/root/.Xauthority:ro" 37 | elif [ -f "$HOME/.Xauthority" ]; then 38 | CMD="$CMD -v $HOME/.Xauthority:/root/.Xauthority:ro" 39 | else 40 | echo "Failed to find Xauthority file" 41 | exit 9 42 | fi 43 | 44 | CMD="$CMD -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:ro" 45 | 46 | CMD="$CMD casparcg/server" 47 | 48 | echo "Executing command: $CMD" 49 | 50 | # Run it! 51 | $CMD 52 | -------------------------------------------------------------------------------- /src/shell/platform_specific.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Helge Norberg, helge.norberg@svt.se 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { 27 | 28 | void setup_prerequisites(); 29 | void setup_console_window(); 30 | void increase_process_priority(); 31 | void wait_for_keypress(); 32 | std::shared_ptr setup_debugging_environment(); 33 | void wait_for_remote_debugging(); 34 | 35 | } // namespace caspar 36 | -------------------------------------------------------------------------------- /src/modules/decklink/producer/decklink_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | #include 28 | 29 | namespace caspar { namespace decklink { 30 | 31 | spl::shared_ptr create_producer(const core::frame_producer_dependencies& dependencies, 32 | const std::vector& params); 33 | 34 | }} // namespace caspar::decklink 35 | -------------------------------------------------------------------------------- /src/modules/image/producer/image_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | #include 28 | 29 | namespace caspar { namespace image { 30 | 31 | spl::shared_ptr create_producer(const core::frame_producer_dependencies& dependencies, 32 | const std::vector& params); 33 | 34 | }} // namespace caspar::image -------------------------------------------------------------------------------- /src/modules/flash/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.6) 2 | project (flash) 3 | 4 | set(SOURCES 5 | interop/Flash9e_i.c 6 | 7 | producer/FlashAxContainer.cpp 8 | producer/flash_producer.cpp 9 | 10 | util/swf.cpp 11 | 12 | flash.cpp 13 | StdAfx.c 14 | StdAfx.cpp 15 | ) 16 | set(HEADERS 17 | interop/axflash.h 18 | interop/TimerHelper.h 19 | 20 | producer/FlashAxContainer.h 21 | producer/flash_producer.h 22 | 23 | util/swf.h 24 | 25 | flash.h 26 | StdAfx.h 27 | ) 28 | 29 | add_library(flash ${SOURCES} ${HEADERS}) 30 | add_precompiled_header(flash StdAfx.h FORCEINCLUDE) 31 | configure_file("${PROJECT_SOURCE_DIR}/packages.config" "${CMAKE_CURRENT_BINARY_DIR}/packages.config") 32 | 33 | include_directories(..) 34 | include_directories(../..) 35 | include_directories(${BOOST_INCLUDE_PATH}) 36 | include_directories(${TBB_INCLUDE_PATH}) 37 | include_directories(${ZLIB_INCLUDE_PATH}) 38 | 39 | set_target_properties(flash PROPERTIES FOLDER modules) 40 | source_group(sources\\interop interop/*) 41 | source_group(sources\\producer producer/*) 42 | source_group(sources\\util util/*) 43 | source_group(sources ./*) 44 | 45 | target_link_libraries(flash common core) 46 | 47 | casparcg_add_include_statement("modules/flash/flash.h") 48 | casparcg_add_init_statement("flash::init" "flash") 49 | casparcg_add_module_project("flash") 50 | -------------------------------------------------------------------------------- /src/modules/image/util/image_loader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | struct FIBITMAP; 29 | 30 | namespace caspar { namespace image { 31 | 32 | std::shared_ptr load_image(const std::wstring& filename); 33 | std::shared_ptr load_png_from_memory(const void* memory_location, size_t size); 34 | const std::set& supported_extensions(); 35 | 36 | }} // namespace caspar::image 37 | -------------------------------------------------------------------------------- /src/common/filesystem.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Helge Norberg, helge.norberg@svt.se 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { 27 | 28 | boost::filesystem::path get_relative(const boost::filesystem::path& file, const boost::filesystem::path& relative_to); 29 | boost::filesystem::path get_relative_without_extension(const boost::filesystem::path& file, 30 | const boost::filesystem::path& relative_to); 31 | 32 | } // namespace caspar 33 | -------------------------------------------------------------------------------- /src/modules/ffmpeg/producer/ffmpeg_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | #include 29 | #include 30 | 31 | namespace caspar { namespace ffmpeg { 32 | 33 | spl::shared_ptr create_producer(const core::frame_producer_dependencies& dependencies, 34 | const std::vector& params); 35 | 36 | }} // namespace caspar::ffmpeg 37 | -------------------------------------------------------------------------------- /src/accelerator/d3d/d3d_texture2d.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #undef NOMINMAX 4 | #define NOMINMAX 5 | 6 | #include 7 | 8 | #include 9 | 10 | namespace caspar { namespace accelerator { namespace d3d { 11 | class d3d_texture2d 12 | { 13 | public: 14 | d3d_texture2d(ID3D11Texture2D* tex); 15 | 16 | ~d3d_texture2d(); 17 | 18 | d3d_texture2d(const d3d_texture2d&) = delete; 19 | d3d_texture2d& operator=(const d3d_texture2d&) = delete; 20 | 21 | uint32_t width() const { return width_; } 22 | 23 | uint32_t height() const { return height_; } 24 | 25 | DXGI_FORMAT format() const { return format_; } 26 | 27 | void* share_handle() const { return share_handle_; } 28 | 29 | ID3D11Texture2D* texture() const { return texture_.get(); } 30 | 31 | uint32_t gl_texture_id() const { return gl_texture_id_; } 32 | 33 | void gen_gl_texture(const std::shared_ptr& interop); 34 | 35 | private: 36 | HANDLE share_handle_; 37 | 38 | std::shared_ptr const texture_; 39 | uint32_t width_ = 0; 40 | uint32_t height_ = 0; 41 | DXGI_FORMAT format_ = DXGI_FORMAT::DXGI_FORMAT_UNKNOWN; 42 | 43 | std::shared_ptr texture_handle_; 44 | uint32_t gl_texture_id_ = 0; 45 | }; 46 | }}} // namespace caspar::accelerator::d3d 47 | -------------------------------------------------------------------------------- /src/accelerator/ogl/image/image_shader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace accelerator { namespace ogl { 27 | 28 | class shader; 29 | class device; 30 | 31 | enum class texture_id 32 | { 33 | plane0 = 0, 34 | plane1, 35 | plane2, 36 | plane3, 37 | local_key, 38 | layer_key, 39 | background 40 | }; 41 | 42 | std::shared_ptr get_image_shader(const spl::shared_ptr& ogl); 43 | 44 | }}} // namespace caspar::accelerator::ogl 45 | -------------------------------------------------------------------------------- /src/protocol/cii/CIICommand.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Nicklas P Andersson 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { namespace protocol { namespace cii { 27 | 28 | class ICIICommand 29 | { 30 | public: 31 | virtual ~ICIICommand() {} 32 | virtual int GetMinimumParameters() = 0; 33 | virtual void Setup(const std::vector& parameters) = 0; 34 | 35 | virtual void Execute() = 0; 36 | }; 37 | using CIICommandPtr = std::shared_ptr; 38 | 39 | }}} // namespace caspar::protocol::cii 40 | -------------------------------------------------------------------------------- /src/accelerator/accelerator.cpp: -------------------------------------------------------------------------------- 1 | #include "accelerator.h" 2 | 3 | #include "ogl/image/image_mixer.h" 4 | #include "ogl/util/device.h" 5 | 6 | #include 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | namespace caspar { namespace accelerator { 15 | 16 | struct accelerator::impl 17 | { 18 | std::shared_ptr ogl_device_; 19 | 20 | impl() {} 21 | 22 | std::unique_ptr create_image_mixer(int channel_id) 23 | { 24 | return std::make_unique(spl::make_shared_ptr(get_device()), channel_id); 25 | } 26 | 27 | std::shared_ptr get_device() 28 | { 29 | if (!ogl_device_) { 30 | ogl_device_ = std::make_shared(); 31 | } 32 | 33 | return ogl_device_; 34 | } 35 | }; 36 | 37 | accelerator::accelerator() 38 | : impl_(std::make_unique()) 39 | { 40 | } 41 | 42 | accelerator::~accelerator() {} 43 | 44 | std::unique_ptr accelerator::create_image_mixer(int channel_id) 45 | { 46 | return impl_->create_image_mixer(channel_id); 47 | } 48 | 49 | std::shared_ptr accelerator::get_device() const 50 | { 51 | return std::dynamic_pointer_cast(impl_->get_device()); 52 | } 53 | 54 | }} // namespace caspar::accelerator 55 | -------------------------------------------------------------------------------- /src/modules/screen/screen.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "screen.h" 23 | 24 | #include "consumer/screen_consumer.h" 25 | 26 | #include 27 | 28 | namespace caspar { namespace screen { 29 | 30 | void init(core::module_dependencies dependencies) 31 | { 32 | dependencies.consumer_registry->register_consumer_factory(L"Screen Consumer", create_consumer); 33 | dependencies.consumer_registry->register_preconfigured_consumer_factory(L"screen", create_preconfigured_consumer); 34 | } 35 | 36 | }} // namespace caspar::screen 37 | -------------------------------------------------------------------------------- /src/protocol/util/ProtocolStrategy.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Nicklas P Andersson 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "ClientInfo.h" 25 | #include 26 | 27 | namespace caspar { namespace IO { 28 | 29 | class IProtocolStrategy 30 | { 31 | public: 32 | virtual ~IProtocolStrategy() {} 33 | 34 | virtual void Parse(const std::wstring& msg, ClientInfoPtr pClientInfo) = 0; 35 | virtual std::string GetCodepage() const = 0; 36 | }; 37 | using ProtocolStrategyPtr = std::shared_ptr; 38 | 39 | }} // namespace caspar::IO 40 | -------------------------------------------------------------------------------- /src/modules/image/consumer/image_consumer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | #include 28 | 29 | #include 30 | #include 31 | 32 | namespace caspar { namespace image { 33 | 34 | spl::shared_ptr 35 | create_consumer(const std::vector& params, 36 | const std::vector>& channels); 37 | 38 | }} // namespace caspar::image 39 | -------------------------------------------------------------------------------- /src/modules/ffmpeg/util/av_util.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | struct AVFrame; 11 | struct AVPacket; 12 | struct AVFilterContext; 13 | struct AVCodecContext; 14 | struct AVDictionary; 15 | 16 | namespace caspar { namespace ffmpeg { 17 | 18 | std::shared_ptr alloc_frame(); 19 | std::shared_ptr alloc_packet(); 20 | 21 | core::pixel_format get_pixel_format(AVPixelFormat pix_fmt); 22 | core::pixel_format_desc pixel_format_desc(AVPixelFormat pix_fmt, int width, int height, std::vector& data_map); 23 | core::mutable_frame make_frame(void* tag, 24 | core::frame_factory& frame_factory, 25 | std::shared_ptr video, 26 | std::shared_ptr audio); 27 | 28 | std::shared_ptr make_av_video_frame(const core::const_frame& frame, const core::video_format_desc& format_des); 29 | std::shared_ptr make_av_audio_frame(const core::const_frame& frame, const core::video_format_desc& format_des); 30 | 31 | AVDictionary* to_dict(std::map&& map); 32 | std::map to_map(AVDictionary** dict); 33 | 34 | }} // namespace caspar::ffmpeg 35 | -------------------------------------------------------------------------------- /src/modules/newtek/producer/newtek_ndi_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Krzysztof Zegzula, zegzulakrzysztof@gmail.com 20 | * based on work of Robert Nagy, ronag89@gmail.com 21 | */ 22 | 23 | #pragma once 24 | 25 | #include 26 | 27 | #include 28 | 29 | #include 30 | 31 | #include 32 | 33 | namespace caspar { namespace newtek { 34 | 35 | spl::shared_ptr create_ndi_producer(const core::frame_producer_dependencies& dependencies, 36 | const std::vector& params); 37 | 38 | }} // namespace caspar::newtek 39 | -------------------------------------------------------------------------------- /src/common/prec_timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { 27 | 28 | class prec_timer 29 | { 30 | public: 31 | prec_timer(); 32 | 33 | void tick(double interval) { tick_nanos(static_cast(interval * 1000000000.0)); } 34 | 35 | void tick_millis(int64_t interval) { tick_nanos(interval * 1000000); } 36 | 37 | // Author: Ryan M. Geiss 38 | // http://www.geisswerks.com/ryan/FAQS/timing.html 39 | void tick_nanos(int64_t interval); 40 | 41 | private: 42 | int64_t time_; 43 | }; 44 | 45 | } // namespace caspar 46 | -------------------------------------------------------------------------------- /src/modules/bluefish/producer/bluefish_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | * satchit puthenveetil 21 | * James Wise, james.wise@bluefish444.com 22 | */ 23 | 24 | #pragma once 25 | 26 | #include 27 | 28 | #include 29 | #include 30 | 31 | namespace caspar { namespace bluefish { 32 | 33 | spl::shared_ptr create_producer(const core::frame_producer_dependencies& dependencies, 34 | const std::vector& params); 35 | 36 | }} // namespace caspar::bluefish 37 | -------------------------------------------------------------------------------- /src/common/env.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | namespace caspar { namespace env { 29 | 30 | void configure(const std::wstring& filename); 31 | 32 | const std::wstring& initial_folder(); 33 | const std::wstring& media_folder(); 34 | const std::wstring& log_folder(); 35 | const std::wstring& template_folder(); 36 | const std::wstring& data_folder(); 37 | const std::wstring& version(); 38 | 39 | const boost::property_tree::wptree& properties(); 40 | 41 | void log_configuration_warnings(); 42 | 43 | }} // namespace caspar::env 44 | -------------------------------------------------------------------------------- /src/modules/oal/oal.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #include "oal.h" 23 | 24 | #include "consumer/oal_consumer.h" 25 | 26 | #include 27 | 28 | namespace caspar { namespace oal { 29 | 30 | void init(core::module_dependencies dependencies) 31 | { 32 | dependencies.consumer_registry->register_consumer_factory(L"System Audio Consumer", create_consumer); 33 | dependencies.consumer_registry->register_preconfigured_consumer_factory(L"system-audio", 34 | create_preconfigured_consumer); 35 | } 36 | 37 | }} // namespace caspar::oal 38 | -------------------------------------------------------------------------------- /src/common/utf.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | #include "utf.h" 22 | 23 | #pragma warning(push, 1) 24 | 25 | #include 26 | 27 | namespace caspar { 28 | 29 | std::wstring u16(const std::string& str) 30 | { 31 | return boost::locale::conv::utf_to_utf(str); // std::wstring(str.begin(), str.end()); 32 | } 33 | 34 | std::wstring u16(const std::wstring& str) { return str; } 35 | 36 | std::string u8(const std::wstring& str) 37 | { 38 | return boost::locale::conv::utf_to_utf(str); // std::string(str.begin(), str.end()); 39 | } 40 | 41 | std::string u8(const std::string& str) { return str; } 42 | 43 | } // namespace caspar -------------------------------------------------------------------------------- /src/modules/html/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.6) 2 | project (html) 3 | 4 | set(SOURCES 5 | producer/html_cg_proxy.cpp 6 | producer/html_producer.cpp 7 | 8 | html.cpp 9 | ) 10 | set(HEADERS 11 | producer/html_cg_proxy.h 12 | producer/html_producer.h 13 | 14 | html.h 15 | ) 16 | 17 | add_library(html ${SOURCES} ${HEADERS}) 18 | configure_file("${PROJECT_SOURCE_DIR}/packages.config" "${CMAKE_CURRENT_BINARY_DIR}/packages.config") 19 | 20 | include_directories(..) 21 | include_directories(../..) 22 | include_directories(${BOOST_INCLUDE_PATH}) 23 | include_directories(${TBB_INCLUDE_PATH}) 24 | include_directories(${CEF_INCLUDE_PATH}) 25 | 26 | set_target_properties(html PROPERTIES FOLDER modules) 27 | source_group(sources\\producer producer/*) 28 | source_group(sources ./*) 29 | 30 | if(MSVC) 31 | target_link_libraries(html 32 | common 33 | core 34 | accelerator 35 | 36 | optimized release/libcef 37 | optimized release/VS2015/libcef_dll_wrapper 38 | debug debug/libcef 39 | debug debug/VS2015/libcef_dll_wrapper 40 | ) 41 | else() 42 | target_link_libraries(html 43 | common 44 | core 45 | 46 | ${CEF_BIN_PATH}/libcef.so 47 | ${CEF_BIN_PATH}/libcef_dll_wrapper.a 48 | ) 49 | endif() 50 | 51 | casparcg_add_include_statement("modules/html/html.h") 52 | casparcg_add_init_statement("html::init" "html") 53 | casparcg_add_uninit_statement("html::uninit") 54 | casparcg_add_command_line_arg_interceptor("html::intercept_command_line") 55 | casparcg_add_module_project("html") 56 | -------------------------------------------------------------------------------- /src/core/frame/frame_visitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | namespace caspar { namespace core { 25 | 26 | class frame_visitor 27 | { 28 | public: 29 | frame_visitor() = default; 30 | frame_visitor(const frame_visitor&) = delete; 31 | virtual ~frame_visitor() = default; 32 | 33 | frame_visitor& operator=(const frame_visitor&) = delete; 34 | 35 | virtual void push(const struct frame_transform& transform) = 0; 36 | virtual void visit(const class const_frame& frame) = 0; 37 | virtual void pop() = 0; 38 | }; 39 | 40 | }} // namespace caspar::core -------------------------------------------------------------------------------- /src/modules/bluefish/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.6) 2 | project (bluefish) 3 | 4 | set(SOURCES 5 | consumer/bluefish_consumer.cpp 6 | producer/bluefish_producer.cpp 7 | util/blue_velvet.cpp 8 | bluefish.cpp 9 | StdAfx.cpp 10 | ) 11 | set(HEADERS 12 | consumer/bluefish_consumer.h 13 | producer/bluefish_producer.h 14 | util/blue_velvet.h 15 | util/memory.h 16 | bluefish.h 17 | StdAfx.h 18 | ) 19 | 20 | add_library(bluefish ${SOURCES} ${HEADERS}) 21 | add_precompiled_header(bluefish StdAfx.h FORCEINCLUDE) 22 | configure_file("${PROJECT_SOURCE_DIR}/packages.config" "${CMAKE_CURRENT_BINARY_DIR}/packages.config") 23 | 24 | include_directories(..) 25 | include_directories(../..) 26 | include_directories(${BOOST_INCLUDE_PATH}) 27 | include_directories(${TBB_INCLUDE_PATH}) 28 | include_directories(${FFMPEG_INCLUDE_PATH}) 29 | 30 | set_target_properties(bluefish PROPERTIES FOLDER modules) 31 | source_group(sources ./*) 32 | source_group(sources\\consumer consumer/*) 33 | source_group(sources\\producer producer/*) 34 | source_group(sources\\util util/*) 35 | source_group(sources\\interop interop/*) 36 | 37 | target_link_libraries( bluefish 38 | common 39 | core 40 | ffmpeg) 41 | 42 | casparcg_add_include_statement("modules/bluefish/bluefish.h") 43 | casparcg_add_init_statement("bluefish::init" "bluefish") 44 | casparcg_add_module_project("bluefish") 45 | -------------------------------------------------------------------------------- /src/modules/replay/producer/replay_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * Copyright (c) 2013 Technical University of Lodz Multimedia Centre 4 | * 5 | * This file is part of CasparCG (www.casparcg.com). 6 | * 7 | * CasparCG is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * CasparCG is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with CasparCG. If not, see . 19 | * 20 | * Author: Robert Nagy, ronag89@gmail.com 21 | * Jan Starzak, jan@ministryofgoodsteps.com 22 | * Krzysztof Pyrkosz, pyrkosz@o2.pl 23 | */ 24 | 25 | #pragma once 26 | 27 | #include 28 | 29 | #define REPLAY_PRODUCER_BUFFER_SIZE 3 30 | 31 | namespace caspar { namespace replay { 32 | 33 | spl::shared_ptr create_producer(const core::frame_producer_dependencies& dependencies, 34 | const std::vector& params); 35 | 36 | }} // namespace caspar::replay 37 | -------------------------------------------------------------------------------- /src/common/timer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Helge Norberg, helge.norberg@svt.se 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | namespace caspar { 27 | 28 | class timer 29 | { 30 | std::int_least64_t start_time_; 31 | 32 | public: 33 | timer() { start_time_ = now(); } 34 | 35 | void restart() { start_time_ = now(); } 36 | 37 | double elapsed() const { return static_cast(now() - start_time_) / 1000.0; } 38 | 39 | private: 40 | static std::int_least64_t now() 41 | { 42 | using namespace std::chrono; 43 | 44 | return duration_cast(high_resolution_clock::now().time_since_epoch()).count(); 45 | } 46 | }; 47 | 48 | } // namespace caspar 49 | -------------------------------------------------------------------------------- /src/modules/newtek/util/ndi.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Sveriges Television AB http://casparcg.com/ 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Krzysztof Zegzula, zegzulakrzysztof@gmail.com 20 | */ 21 | #pragma once 22 | 23 | #include "../interop/Processing.NDI.Lib.h" 24 | #include "protocol/amcp/AMCPCommand.h" 25 | #include 26 | 27 | namespace caspar { namespace newtek { namespace ndi { 28 | 29 | const std::wstring& dll_name(); 30 | NDIlib_v3* load_library(); 31 | std::map get_current_sources(); 32 | void not_initialized(); 33 | void not_installed(); 34 | 35 | std::wstring list_command(protocol::amcp::command_context& ctx); 36 | 37 | }}} // namespace caspar::newtek::ndi 38 | -------------------------------------------------------------------------------- /src/core/diagnostics/call_context.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Helge Norberg, helge.norberg@svt.se 20 | */ 21 | 22 | #include "../StdAfx.h" 23 | 24 | #include "call_context.h" 25 | 26 | namespace caspar { namespace core { namespace diagnostics { 27 | 28 | thread_local call_context context; 29 | 30 | call_context& call_context::for_thread() { return context; } 31 | 32 | std::wstring call_context::to_string() const 33 | { 34 | if (video_channel == -1) 35 | return L"[]"; 36 | if (layer == -1) 37 | return L"[ch=" + std::to_wstring(video_channel) + L"]"; 38 | return L"[ch=" + std::to_wstring(video_channel) + L"; layer=" + std::to_wstring(layer) + L"]"; 39 | } 40 | 41 | }}} // namespace caspar::core::diagnostics 42 | -------------------------------------------------------------------------------- /src/modules/bluefish/StdAfx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #if defined _DEBUG && defined _MSC_VER 23 | #include 24 | #endif 25 | 26 | #define NOMINMAX 27 | 28 | #include 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | 40 | #include 41 | #include 42 | //#include "../common/executor.h" // Can't include this due to MSVC lambda bug 43 | 44 | #include 45 | #include 46 | 47 | #include 48 | #include 49 | -------------------------------------------------------------------------------- /src/accelerator/StdAfx.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | -------------------------------------------------------------------------------- /src/modules/replay/consumer/replay_consumer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * Copyright (c) 2013 Technical University of Lodz Multimedia Centre 4 | * 5 | * This file is part of CasparCG (www.casparcg.com). 6 | * 7 | * CasparCG is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * CasparCG is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with CasparCG. If not, see . 19 | * 20 | * Author: Robert Nagy, ronag89@gmail.com 21 | * Jan Starzak, jan@ministryofgoodsteps.com 22 | * Krzysztof Pyrkosz, pyrkosz@o2.pl 23 | */ 24 | 25 | #pragma once 26 | 27 | #include 28 | #include 29 | #include 30 | #include 31 | 32 | namespace caspar { namespace replay { 33 | 34 | spl::shared_ptr create_consumer(const std::vector& params, 35 | std::vector> channels); 36 | 37 | }} // namespace caspar::replay 38 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED (VERSION 3.0) 2 | 3 | # Project settings 4 | PROJECT ("CasparCG Server") 5 | SET (CONFIG_VERSION_MAJOR 2) 6 | SET (CONFIG_VERSION_MINOR 3) 7 | SET (CONFIG_VERSION_BUG 3) 8 | SET (CONFIG_VERSION_TAG "MAV 10 Dev") 9 | 10 | option(ENABLE_HTML "Enable HTML module, require CEF" ON) 11 | 12 | # Add custom cmake modules path 13 | LIST (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules) 14 | 15 | if (MSVC) 16 | INCLUDE (Bootstrap_Windows) 17 | else () 18 | INCLUDE (Bootstrap_Linux) 19 | 20 | # Output build settings 21 | IF (SUPPORTED_PLATFORM) 22 | MESSAGE (STATUS "Supported target platform: ${SUPPORTED_PLATFORM}") 23 | ELSE () 24 | MESSAGE (STATUS "Unsupported target platform, will still attempt build!") 25 | ENDIF () 26 | MESSAGE (STATUS "Target platform: ${CONFIG_PLATFORM}") 27 | MESSAGE (STATUS "Target architecture: ${CONFIG_ARCH}") 28 | MESSAGE (STATUS "CPU Count: ${CONFIG_CPU_COUNT}") 29 | MESSAGE (STATUS "Target build type: ${CMAKE_BUILD_TYPE}") 30 | MESSAGE (STATUS "Build Version: ${CONFIG_VERSION_MAJOR}.${CONFIG_VERSION_MINOR}.${CONFIG_VERSION_BUG} ${CONFIG_VERSION_TAG} (Revision: ${CONFIG_VERSION_GIT_HASH})") 31 | 32 | CONFIGURE_FILE ("${PROJECT_SOURCE_DIR}/version.tmpl" "${CMAKE_BINARY_DIR}/generated/version.h") 33 | INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}/generated") 34 | 35 | ADD_SUBDIRECTORY (tools) 36 | ADD_SUBDIRECTORY (accelerator) 37 | ADD_SUBDIRECTORY (common) 38 | ADD_SUBDIRECTORY (core) 39 | ADD_SUBDIRECTORY (modules) 40 | ADD_SUBDIRECTORY (protocol) 41 | ADD_SUBDIRECTORY (shell) 42 | endif () 43 | -------------------------------------------------------------------------------- /src/shell/server.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | #include 28 | 29 | namespace caspar { 30 | 31 | class server final 32 | { 33 | public: 34 | explicit server(std::function shutdown_server_now); 35 | void start(); 36 | spl::shared_ptr get_amcp_command_repository() const; 37 | 38 | private: 39 | struct impl; 40 | std::shared_ptr impl_; 41 | 42 | server(const server&) = delete; 43 | server& operator=(const server&) = delete; 44 | }; 45 | 46 | } // namespace caspar 47 | -------------------------------------------------------------------------------- /src/protocol/amcp/AMCPCommandQueue.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Nicklas P Andersson 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "AMCPCommand.h" 25 | 26 | #include 27 | #include 28 | 29 | namespace caspar { namespace protocol { namespace amcp { 30 | 31 | class AMCPCommandQueue 32 | { 33 | AMCPCommandQueue(const AMCPCommandQueue&); 34 | AMCPCommandQueue& operator=(const AMCPCommandQueue&); 35 | 36 | public: 37 | using ptr_type = spl::shared_ptr; 38 | 39 | AMCPCommandQueue(const std::wstring& name); 40 | ~AMCPCommandQueue(); 41 | 42 | void AddCommand(AMCPCommand::ptr_type pCommand); 43 | 44 | private: 45 | executor executor_; 46 | }; 47 | 48 | }}} // namespace caspar::protocol::amcp 49 | -------------------------------------------------------------------------------- /tools/linux/base/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM buildpack-deps:bionic 2 | 3 | RUN apt-get update && apt-get install -yq --no-install-recommends \ 4 | autoconf \ 5 | automake \ 6 | cmake \ 7 | curl \ 8 | bzip2 \ 9 | clang \ 10 | g++ \ 11 | gcc \ 12 | git \ 13 | gperf \ 14 | libtool \ 15 | make \ 16 | nasm \ 17 | perl \ 18 | pkg-config \ 19 | python \ 20 | yasm \ 21 | zlib1g-dev \ 22 | libexpat1-dev \ 23 | lsb-release \ 24 | libglew-dev \ 25 | libfreeimage-dev \ 26 | libtbb-dev \ 27 | libopenal-dev \ 28 | libxcursor-dev \ 29 | libxinerama-dev \ 30 | libxi-dev \ 31 | libnih-dbus-dev \ 32 | libsfml-dev \ 33 | libxrandr-dev \ 34 | libudev-dev \ 35 | libglu1-mesa-dev \ 36 | libharfbuzz0b \ 37 | libpangoft2-1.0-0 \ 38 | libcairo2 \ 39 | libv4l-0 \ 40 | libraw1394-11 \ 41 | libavc1394-0 \ 42 | libiec61883-0 \ 43 | libxtst6 \ 44 | libnss3 \ 45 | libnspr4 \ 46 | libgconf-2-4 \ 47 | libasound2 \ 48 | libopus-dev \ 49 | libgsm1-dev \ 50 | libmodplug-dev \ 51 | libvpx-dev \ 52 | libass-dev \ 53 | libbluray-dev \ 54 | libfribidi-dev \ 55 | libgmp-dev \ 56 | libgnutls28-dev \ 57 | libmp3lame-dev \ 58 | libopencore-amrnb-dev \ 59 | libopencore-amrwb-dev \ 60 | librtmp-dev \ 61 | libtheora-dev \ 62 | libx264-dev \ 63 | libxvidcore-dev \ 64 | libx265-dev \ 65 | libxss1 \ 66 | libgtk2.0-0 \ 67 | libatspi2.0-dev \ 68 | libatk-bridge2.0-dev \ 69 | libopenjp2-7-dev \ 70 | libopenmpt-dev \ 71 | libshine-dev \ 72 | libsnappy-dev \ 73 | libsoxr-dev \ 74 | libspeex-dev \ 75 | libtwolame-dev \ 76 | libvo-amrwbenc-dev \ 77 | libwavpack-dev \ 78 | libsdl2-dev 79 | 80 | -------------------------------------------------------------------------------- /src/modules/html/producer/html_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Sveriges Television AB http://casparcg.com/ 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | #include 29 | #include 30 | 31 | namespace caspar { namespace html { 32 | 33 | spl::shared_ptr create_producer(const core::frame_producer_dependencies& dependencies, 34 | const std::vector& params); 35 | spl::shared_ptr create_cg_producer(const core::frame_producer_dependencies& dependencies, 36 | const std::vector& params); 37 | 38 | }} // namespace caspar::html 39 | -------------------------------------------------------------------------------- /src/modules/ffmpeg/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.6) 2 | project (ffmpeg) 3 | 4 | set(SOURCES 5 | producer/av_producer.cpp 6 | producer/av_input.cpp 7 | util/av_util.cpp 8 | producer/ffmpeg_producer.cpp 9 | consumer/ffmpeg_consumer.cpp 10 | 11 | ffmpeg.cpp 12 | StdAfx.cpp 13 | ) 14 | set(HEADERS 15 | util/av_assert.h 16 | producer/av_producer.h 17 | producer/av_input.h 18 | util/av_util.h 19 | producer/ffmpeg_producer.h 20 | consumer/ffmpeg_consumer.h 21 | 22 | ffmpeg.h 23 | StdAfx.h 24 | ) 25 | 26 | add_library(ffmpeg ${SOURCES} ${HEADERS}) 27 | add_precompiled_header(ffmpeg StdAfx.h FORCEINCLUDE) 28 | configure_file("${PROJECT_SOURCE_DIR}/packages.config" "${CMAKE_CURRENT_BINARY_DIR}/packages.config") 29 | 30 | include_directories(..) 31 | include_directories(../..) 32 | include_directories(${BOOST_INCLUDE_PATH}) 33 | include_directories(${TBB_INCLUDE_PATH}) 34 | include_directories(${FFMPEG_INCLUDE_PATH}) 35 | 36 | set_target_properties(ffmpeg PROPERTIES FOLDER modules) 37 | source_group(sources ./*) 38 | source_group(sources\\consumer ./consumer/.*) 39 | source_group(sources\\producer ./producer/.*) 40 | source_group(sources\\util ./util/.*) 41 | 42 | if (MSVC) 43 | target_link_libraries(ffmpeg 44 | common 45 | core 46 | ) 47 | else() 48 | target_link_libraries(ffmpeg 49 | common 50 | core 51 | ${FFMPEG_LIBRARIES} 52 | ) 53 | endif() 54 | 55 | casparcg_add_include_statement("modules/ffmpeg/ffmpeg.h") 56 | casparcg_add_init_statement("ffmpeg::init" "ffmpeg") 57 | casparcg_add_uninit_statement("ffmpeg::uninit") 58 | casparcg_add_module_project("ffmpeg") 59 | -------------------------------------------------------------------------------- /src/modules/ffmpeg/producer/av_producer.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #include 10 | #include 11 | 12 | namespace caspar { namespace ffmpeg { 13 | 14 | class AVProducer 15 | { 16 | public: 17 | AVProducer(std::shared_ptr frame_factory, 18 | core::video_format_desc format_desc, 19 | std::string name, 20 | std::string path, 21 | boost::optional vfilter, 22 | boost::optional afilter, 23 | boost::optional start, 24 | boost::optional duration, 25 | boost::optional loop, 26 | int seekable); 27 | 28 | core::draw_frame prev_frame(); 29 | core::draw_frame next_frame(); 30 | 31 | AVProducer& seek(int64_t time); 32 | int64_t time() const; 33 | 34 | AVProducer& loop(bool loop); 35 | bool loop() const; 36 | 37 | AVProducer& start(int64_t start); 38 | int64_t start() const; 39 | 40 | AVProducer& duration(int64_t duration); 41 | int64_t duration() const; 42 | 43 | caspar::core::monitor::state state() const; 44 | 45 | private: 46 | struct Impl; 47 | std::shared_ptr impl_; 48 | }; 49 | 50 | }} // namespace caspar::ffmpeg 51 | -------------------------------------------------------------------------------- /src/modules/oal/consumer/oal_consumer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | #include 29 | 30 | #include 31 | 32 | namespace caspar { namespace oal { 33 | 34 | spl::shared_ptr 35 | create_consumer(const std::vector& params, 36 | const std::vector>& channels); 37 | spl::shared_ptr 38 | create_preconfigured_consumer(const boost::property_tree::/*ptree*/ wptree&, 39 | const std::vector>& channels); 40 | 41 | }} // namespace caspar::oal 42 | -------------------------------------------------------------------------------- /src/modules/screen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.6) 2 | project (screen) 3 | 4 | set(SOURCES 5 | consumer/screen_consumer.cpp 6 | 7 | screen.cpp 8 | ) 9 | set(HEADERS 10 | consumer/screen_consumer.h 11 | 12 | consumer_screen_vertex.h 13 | consumer_screen_fragment.h 14 | 15 | screen.h 16 | ) 17 | 18 | bin2c("consumer/screen.vert" "consumer_screen_vertex.h" "caspar::screen" "vertex_shader") 19 | bin2c("consumer/screen.frag" "consumer_screen_fragment.h" "caspar::screen" "fragment_shader") 20 | 21 | if (MSVC) 22 | else () 23 | set(OS_SPECIFIC_HEADERS 24 | util/x11_util.h 25 | ) 26 | set(OS_SPECIFIC_SOURCES 27 | util/x11_util.cpp 28 | ) 29 | endif () 30 | 31 | add_library(screen ${SOURCES} ${OS_SPECIFIC_SOURCES} ${HEADERS} ${OS_SPECIFIC_HEADERS}) 32 | configure_file("${PROJECT_SOURCE_DIR}/packages.config" "${CMAKE_CURRENT_BINARY_DIR}/packages.config") 33 | 34 | include_directories(..) 35 | include_directories(../..) 36 | include_directories(${CMAKE_CURRENT_BINARY_DIR}) 37 | include_directories(${BOOST_INCLUDE_PATH}) 38 | include_directories(${TBB_INCLUDE_PATH}) 39 | include_directories(${GLEW_INCLUDE_PATH}) 40 | include_directories(${SFML_INCLUDE_PATH}) 41 | include_directories(${FFMPEG_INCLUDE_PATH}) 42 | 43 | set_target_properties(screen PROPERTIES FOLDER modules) 44 | source_group(sources\\consumer consumer/*) 45 | source_group(sources ./*) 46 | 47 | target_link_libraries(screen common core accelerator ffmpeg) 48 | 49 | casparcg_add_include_statement("modules/screen/screen.h") 50 | casparcg_add_init_statement("screen::init" "screen") 51 | casparcg_add_module_project("screen") 52 | -------------------------------------------------------------------------------- /src/modules/html/html.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Sveriges Television AB http://casparcg.com/ 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | #include 29 | 30 | namespace caspar { namespace html { 31 | 32 | const std::string TICK_MESSAGE_NAME = "CasparCGTick"; 33 | const std::string REMOVE_MESSAGE_NAME = "CasparCGRemove"; 34 | const std::string LOG_MESSAGE_NAME = "CasparCGLog"; 35 | 36 | bool intercept_command_line(int argc, char** argv); 37 | void init(core::module_dependencies dependencies); 38 | void uninit(); 39 | void invoke(const std::function& func); 40 | std::future begin_invoke(const std::function& func); 41 | 42 | }} // namespace caspar::html 43 | -------------------------------------------------------------------------------- /src/core/producer/route/route_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | #include 28 | 29 | namespace caspar { namespace core { 30 | 31 | class route_control 32 | { 33 | public: 34 | virtual ~route_control() {} 35 | 36 | virtual int get_source_channel() const = 0; 37 | virtual int get_source_layer() const = 0; 38 | 39 | virtual void set_cross_channel(bool cross) = 0; 40 | }; 41 | 42 | spl::shared_ptr create_route_producer(const core::frame_producer_dependencies& dependencies, 43 | const std::vector& params); 44 | 45 | }} // namespace caspar::core 46 | -------------------------------------------------------------------------------- /src/modules/screen/consumer/screen_consumer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | #include 29 | #include 30 | 31 | namespace caspar { namespace screen { 32 | 33 | spl::shared_ptr 34 | create_consumer(const std::vector& params, 35 | const std::vector>& channels); 36 | spl::shared_ptr 37 | create_preconfigured_consumer(const boost::property_tree::wptree& ptree, 38 | const std::vector>& channels); 39 | 40 | }} // namespace caspar::screen 41 | -------------------------------------------------------------------------------- /src/packages/tbb/include/oneapi/tbb/detail/_aligned_space.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | #ifndef __TBB_aligned_space_H 17 | #define __TBB_aligned_space_H 18 | 19 | #include 20 | 21 | #include "_template_helpers.h" 22 | 23 | namespace tbb { 24 | namespace detail { 25 | inline namespace d0 { 26 | 27 | //! Block of space aligned sufficiently to construct an array T with N elements. 28 | /** The elements are not constructed or destroyed by this class. 29 | @ingroup memory_allocation */ 30 | template 31 | class aligned_space { 32 | alignas(alignof(T)) std::uint8_t aligned_array[N * sizeof(T)]; 33 | 34 | public: 35 | //! Pointer to beginning of array 36 | T* begin() const { return punned_cast(&aligned_array); } 37 | 38 | //! Pointer to one past last element in array. 39 | T* end() const { return begin() + N; } 40 | }; 41 | 42 | } // namespace d0 43 | } // namespace detail 44 | } // namespace tbb 45 | 46 | #endif /* __TBB_aligned_space_H */ 47 | -------------------------------------------------------------------------------- /src/modules/ffmpeg/producer/av_input.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include 16 | 17 | #include 18 | 19 | struct AVPacket; 20 | struct AVFormatContext; 21 | 22 | namespace caspar { namespace ffmpeg { 23 | 24 | class Input 25 | { 26 | public: 27 | Input(const std::string& filename, std::shared_ptr graph, boost::optional seekable); 28 | ~Input(); 29 | 30 | static int interrupt_cb(void* ctx); 31 | 32 | bool try_pop(std::shared_ptr& packet); 33 | 34 | AVFormatContext* operator->(); 35 | 36 | AVFormatContext* const operator->() const; 37 | 38 | void reset(); 39 | void abort(); 40 | bool eof() const; 41 | void seek(int64_t ts, bool flush = true); 42 | 43 | private: 44 | void internal_reset(); 45 | 46 | boost::optional seekable_; 47 | 48 | std::string filename_; 49 | std::shared_ptr graph_; 50 | 51 | mutable std::mutex ic_mutex_; 52 | std::shared_ptr ic_; 53 | std::condition_variable ic_cond_; 54 | 55 | tbb::concurrent_bounded_queue> buffer_; 56 | 57 | std::atomic eof_{false}; 58 | 59 | std::atomic abort_request_{false}; 60 | std::thread thread_; 61 | }; 62 | 63 | }} // namespace caspar::ffmpeg 64 | -------------------------------------------------------------------------------- /src/modules/flash/producer/flash_producer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | #include 29 | #include 30 | 31 | namespace caspar { namespace flash { 32 | 33 | spl::shared_ptr create_producer(const core::frame_producer_dependencies& dependencies, 34 | const std::vector& params); 35 | spl::shared_ptr create_swf_producer(const core::frame_producer_dependencies& dependencies, 36 | const std::vector& params); 37 | 38 | std::wstring find_template(const std::wstring& templateName); 39 | 40 | }} // namespace caspar::flash -------------------------------------------------------------------------------- /src/modules/newtek/consumer/newtek_ivga_consumer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 Sveriges Television AB http://casparcg.com/ 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | #include 29 | 30 | #include 31 | 32 | namespace caspar { namespace newtek { 33 | 34 | spl::shared_ptr create_ivga_consumer(const std::vector& params, 35 | std::vector> channels); 36 | spl::shared_ptr 37 | create_preconfigured_ivga_consumer(const boost::property_tree::wptree& ptree, 38 | std::vector> channels); 39 | }} // namespace caspar::newtek 40 | -------------------------------------------------------------------------------- /src/shell/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/modules/decklink/consumer/decklink_consumer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 Sveriges Television AB 3 | * 4 | * This file is part of CasparCG (www.casparcg.com). 5 | * 6 | * CasparCG is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * CasparCG is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with CasparCG. If not, see . 18 | * 19 | * Author: Robert Nagy, ronag89@gmail.com 20 | */ 21 | 22 | #pragma once 23 | 24 | #include 25 | 26 | #include 27 | 28 | #include 29 | 30 | #include 31 | #include 32 | 33 | namespace caspar { namespace decklink { 34 | 35 | spl::shared_ptr create_consumer(const std::vector& params, 36 | std::vector> channels); 37 | spl::shared_ptr 38 | create_preconfigured_consumer(const boost::property_tree::wptree& ptree, 39 | std::vector> channels); 40 | 41 | }} // namespace caspar::decklink 42 | --------------------------------------------------------------------------------