Add new packages and build scripts for various libraries

- Added Nuklear GUI library with build script and configuration.
- Introduced OpenH264 encoder/decoder with build configuration.
- Added PortAudio library for audio I/O with custom build script.
- Included Python Execnet for multi-Python deployment.
- Added Pytest Xdist plugin for distributed testing.
- Introduced Shaderc for shader compilation tools.
- Added Snappy compression library with necessary patches and configuration.
- Included SoundTouch audio processing library with build configuration.
- Added SRT library for secure reliable transport.
- Introduced VapourSynth video processing framework with configuration.
- Added Vid.stab for video stabilization.
- Included WebRTC Audio Processing library with build configuration.
- Added X264 video encoding library with patches for POSIX compliance.
- Introduced X265 video encoder with build configuration.
- Added XKeyboard Config for X keyboard configuration files.
- Included Xorg XKBComp for keyboard description compilation.
- Added Xvidcore MPEG-4 video codec library with configuration.
- Introduced ZeroMQ messaging system with patches and build configuration.
- Added Zimg library for scaling and colorspace conversion.
This commit is contained in:
2026-03-25 05:32:53 -05:00
parent 49bf7bbb5d
commit 47993f6730
99 changed files with 3752 additions and 3 deletions
@@ -0,0 +1,316 @@
From d1a32d5229602f181574c95fa0db68bcf1762606 Mon Sep 17 00:00:00 2001
From: Stephen Hutchinson <qyot27@gmail.com>
Date: Sun, 27 Jul 2025 21:57:00 -0400
Subject: [PATCH] Cache: Avoid naming collision
---
avs_core/core/avisynth.cpp | 22 +++++++++----------
avs_core/core/cache.cpp | 42 ++++++++++++++++++-------------------
avs_core/core/cache.h | 6 +++---
avs_core/include/avisynth.h | 4 ++--
4 files changed, 37 insertions(+), 37 deletions(-)
diff --git a/avs_core/core/avisynth.cpp b/avs_core/core/avisynth.cpp
index 3f4064ebb..a49038f32 100644
--- a/avs_core/core/avisynth.cpp
+++ b/avs_core/core/avisynth.cpp
@@ -1070,7 +1070,7 @@ class ScriptEnvironment {
typedef std::vector<DebugTimestampedFrame> VideoFrameArrayType;
typedef std::map<VideoFrameBuffer *, VideoFrameArrayType> FrameBufferRegistryType;
typedef std::map<size_t, FrameBufferRegistryType> FrameRegistryType2; // post r1825 P.F.
- typedef mapped_list<Cache*> CacheRegistryType;
+ typedef mapped_list<AvsCache*> CacheRegistryType;
FrameRegistryType2 FrameRegistry2; // P.F.
@@ -1080,7 +1080,7 @@ class ScriptEnvironment {
std::unique_ptr<DeviceManager> Devices;
CacheRegistryType CacheRegistry;
- Cache* FrontCache;
+ AvsCache* FrontCache;
VideoFrame* GetNewFrame(size_t vfb_size, size_t margin, Device* device);
VideoFrame* GetFrameFromRegistry(size_t vfb_size, Device* device);
void ShrinkCache(Device* device);
@@ -3605,7 +3605,7 @@ VideoFrame* ScriptEnvironment::GetNewFrame(size_t vfb_size, size_t margin, Devic
for (auto &cit: CacheRegistry)
{
cache_counter++;
- Cache* cache = cit;
+ AvsCache* cache = cit;
int cache_size = cache->SetCacheHints(CACHE_GET_SIZE, 0);
_RPT4(0, " cache#%d cache_ptr=%p cache_size=%d \n", cache_counter, (void*)cache, cache_size); // let's see what's in the cache
}
@@ -3729,7 +3729,7 @@ void ScriptEnvironment::ShrinkCache(Device *device)
// We try to shrink least recently used caches first.
- Cache* cache = cit;
+ AvsCache* cache = cit;
if (cache->GetDevice() != device) {
continue;
}
@@ -4206,7 +4206,7 @@ void* ScriptEnvironment::ManageCache(int key, void* data) {
// Called by Cache instances upon creation
case MC_RegisterCache:
{
- Cache* cache = reinterpret_cast<Cache*>(data);
+ AvsCache* cache = reinterpret_cast<AvsCache*>(data);
if (FrontCache != NULL)
CacheRegistry.push_back(FrontCache);
FrontCache = cache;
@@ -4215,7 +4215,7 @@ void* ScriptEnvironment::ManageCache(int key, void* data) {
// Called by Cache instances upon destruction
case MC_UnRegisterCache:
{
- Cache* cache = reinterpret_cast<Cache*>(data);
+ AvsCache* cache = reinterpret_cast<AvsCache*>(data);
if (FrontCache == cache)
FrontCache = NULL;
else
@@ -4225,7 +4225,7 @@ void* ScriptEnvironment::ManageCache(int key, void* data) {
// Called by Cache instances when they want to expand their limit
case MC_NodAndExpandCache:
{
- Cache* cache = reinterpret_cast<Cache*>(data);
+ AvsCache* cache = reinterpret_cast<AvsCache*>(data);
// Nod
if (cache != FrontCache)
@@ -4249,7 +4249,7 @@ void* ScriptEnvironment::ManageCache(int key, void* data) {
// If we don't have enough free reserves, take away a cache slot from
// a cache instance that hasn't been used since long.
- for (Cache* old_cache : CacheRegistry)
+ for (AvsCache* old_cache : CacheRegistry)
{
if (old_cache->GetDevice() != device) {
continue;
@@ -4272,7 +4272,7 @@ void* ScriptEnvironment::ManageCache(int key, void* data) {
// Called by Cache instances when they are accessed
case MC_NodCache:
{
- Cache* cache = reinterpret_cast<Cache*>(data);
+ AvsCache* cache = reinterpret_cast<AvsCache*>(data);
if (cache == FrontCache) {
return 0;
}
@@ -5127,11 +5127,11 @@ bool ScriptEnvironment::Invoke_(AVSValue *result, const AVSValue& implicit_last,
#ifdef _DEBUG
if (PrevFrontCache != FrontCache && FrontCache != NULL) // cache registering swaps frontcache to the current
{
- _RPT2(0, "ScriptEnvironment::Invoke done Cache::Create %s cache_id=%p\r\n", name, (void*)FrontCache);
+ _RPT2(0, "ScriptEnvironment::Invoke done AvsCache::Create %s cache_id=%p\r\n", name, (void*)FrontCache);
FrontCache->FuncName = name; // helps debugging. See also in cache.cpp
}
else {
- _RPT1(0, "ScriptEnvironment::Invoke done Cache::Create %s\r\n", name);
+ _RPT1(0, "ScriptEnvironment::Invoke done AvsCache::Create %s\r\n", name);
}
#endif
}
diff --git a/avs_core/core/cache.cpp b/avs_core/core/cache.cpp
index f731caa19..f2e61a03a 100644
--- a/avs_core/core/cache.cpp
+++ b/avs_core/core/cache.cpp
@@ -117,7 +117,7 @@ struct CachePimpl
};
-Cache::Cache(const PClip& _child, Device* device, std::mutex& CacheGuardMutex, InternalEnvironment* env) :
+AvsCache::AvsCache(const PClip& _child, Device* device, std::mutex& CacheGuardMutex, InternalEnvironment* env) :
Env(env),
_pimpl(NULL),
device(device),
@@ -125,7 +125,7 @@ Cache::Cache(const PClip& _child, Device* device, std::mutex& CacheGuardMutex, I
{
_pimpl = new CachePimpl(_child, env->GetCacheMode());
env->ManageCache(MC_RegisterCache, reinterpret_cast<void*>(this));
- _RPT5(0, "Cache::Cache registered. cache_id=%p child=%p w=%d h=%d VideoCacheSize=%Iu\n", (void*)this, (void*)_child, _pimpl->vi.width, _pimpl->vi.height, _pimpl->VideoCache->size());
+ _RPT5(0, "AvsCache::AvsCache registered. cache_id=%p child=%p w=%d h=%d VideoCacheSize=%Iu\n", (void*)this, (void*)_child, _pimpl->vi.width, _pimpl->vi.height, _pimpl->VideoCache->size());
const int dummy = 0;
// child is usually MTGuard, which forwards this request to its child filter - the real one
@@ -150,14 +150,14 @@ Cache::Cache(const PClip& _child, Device* device, std::mutex& CacheGuardMutex, I
}
}
-Cache::~Cache()
+AvsCache::~AvsCache()
{
- _RPT5(0, "Cache::Cache unregister. cache_id=%p child=%p w=%d h=%d VideoCacheSize=%Iu\n", (void *)this, (void *)_pimpl->child, _pimpl->vi.width, _pimpl->vi.height, _pimpl->VideoCache->size()); // P.F.
+ _RPT5(0, "AvsCache::AvsCache unregister. cache_id=%p child=%p w=%d h=%d VideoCacheSize=%Iu\n", (void *)this, (void *)_pimpl->child, _pimpl->vi.width, _pimpl->vi.height, _pimpl->VideoCache->size()); // P.F.
Env->ManageCache(MC_UnRegisterCache, reinterpret_cast<void*>(this));
delete _pimpl;
}
-PVideoFrame __stdcall Cache::GetFrame(int n, IScriptEnvironment* env_)
+PVideoFrame __stdcall AvsCache::GetFrame(int n, IScriptEnvironment* env_)
{
#ifdef _DEBUG
constexpr auto BUFSIZE = 255;
@@ -186,10 +186,10 @@ PVideoFrame __stdcall Cache::GetFrame(int n, IScriptEnvironment* env_)
LruLookupResult LruLookupRes = _pimpl->VideoCache->lookup(n, &cache_handle, true, result, &env->GetSupressCaching());
/*
std::string name = FuncName;
- snprintf(buf.get(), BUFSIZE, "Cache::GetFrame lookup follows: [%s] n=%6d Thread=%zu", name.c_str(), n, env->GetEnvProperty(AEP_THREAD_ID));
+ snprintf(buf.get(), BUFSIZE, "AvsCache::GetFrame lookup follows: [%s] n=%6d Thread=%zu", name.c_str(), n, env->GetEnvProperty(AEP_THREAD_ID));
_RPT0(0, buf.get());
- snprintf(buf.get(), BUFSIZE, "Cache::GetFrame lookup ready: [%s] n=%6d Thread=%zu res=%d", name.c_str(), n, env->GetEnvProperty(AEP_THREAD_ID), (int)LruLookupRes);
+ snprintf(buf.get(), BUFSIZE, "AvsCache::GetFrame lookup ready: [%s] n=%6d Thread=%zu res=%d", name.c_str(), n, env->GetEnvProperty(AEP_THREAD_ID), (int)LruLookupRes);
_RPT0(0, buf.get());
*/
@@ -208,7 +208,7 @@ PVideoFrame __stdcall Cache::GetFrame(int n, IScriptEnvironment* env_)
try
{
#ifdef _DEBUG
- snprintf(buf.get(), BUFSIZE, "Cache::GetFrame LRU_LOOKUP_NOT_FOUND: [%s] n=%6d child=%p\n", name.c_str(), n, (void*)_pimpl->child); // P.F.
+ snprintf(buf.get(), BUFSIZE, "AvsCache::GetFrame LRU_LOOKUP_NOT_FOUND: [%s] n=%6d child=%p\n", name.c_str(), n, (void*)_pimpl->child); // P.F.
_RPT0(0, buf.get());
#endif
//cache_handle.first->value = _pimpl->child->GetFrame(n, env);
@@ -238,10 +238,10 @@ PVideoFrame __stdcall Cache::GetFrame(int n, IScriptEnvironment* env_)
std::chrono::duration<double> elapsed_seconds = t_end - t_start;
std::string name = FuncName;
if (NULL == cache_handle.first->value) {
- snprintf(buf.get(), BUFSIZE, "Cache::GetFrame LRU_LOOKUP_NOT_FOUND: HEY! got nulled! [%s] n=%6d child=%p frame=%p framebefore=%p SeekTimeWithGetFrame:%f\n", name.c_str(), n, (void *)_pimpl->child, (void *)cache_handle.first->value, (void *)result, elapsed_seconds.count()); // P.F.
+ snprintf(buf.get(), BUFSIZE, "AvsCache::GetFrame LRU_LOOKUP_NOT_FOUND: HEY! got nulled! [%s] n=%6d child=%p frame=%p framebefore=%p SeekTimeWithGetFrame:%f\n", name.c_str(), n, (void *)_pimpl->child, (void *)cache_handle.first->value, (void *)result, elapsed_seconds.count()); // P.F.
_RPT0(0, buf.get());
} else {
- snprintf(buf.get(), BUFSIZE, "Cache::GetFrame LRU_LOOKUP_NOT_FOUND: [%s] n=%6d child=%p frame=%p framebefore=%p videoCacheSize=%zu SeekTimeWithGetFrame:%f\n", name.c_str(), n, (void *)_pimpl->child, (void *)cache_handle.first->value, (void *)result, _pimpl->VideoCache->size(), elapsed_seconds.count()); // P.F.
+ snprintf(buf.get(), BUFSIZE, "AvsCache::GetFrame LRU_LOOKUP_NOT_FOUND: [%s] n=%6d child=%p frame=%p framebefore=%p videoCacheSize=%zu SeekTimeWithGetFrame:%f\n", name.c_str(), n, (void *)_pimpl->child, (void *)cache_handle.first->value, (void *)result, _pimpl->VideoCache->size(), elapsed_seconds.count()); // P.F.
_RPT0(0, buf.get());
}
#endif
@@ -261,7 +261,7 @@ PVideoFrame __stdcall Cache::GetFrame(int n, IScriptEnvironment* env_)
t_end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> elapsed_seconds = t_end - t_start;
std::string name = FuncName;
- snprintf(buf.get(), BUFSIZE, "Cache::GetFrame LRU_LOOKUP_FOUND_AND_READY: [%s] n=%6d child=%p frame=%p vfb=%p videoCacheSize=%zu SeekTime :%f\n", name.c_str(), n, (void *)_pimpl->child, (void *)result, (void *)result->GetFrameBuffer(), _pimpl->VideoCache->size(), elapsed_seconds.count());
+ snprintf(buf.get(), BUFSIZE, "AvsCache::GetFrame LRU_LOOKUP_FOUND_AND_READY: [%s] n=%6d child=%p frame=%p vfb=%p videoCacheSize=%zu SeekTime :%f\n", name.c_str(), n, (void *)_pimpl->child, (void *)result, (void *)result->GetFrameBuffer(), _pimpl->VideoCache->size(), elapsed_seconds.count());
_RPT0(0, buf.get());
assert(result != NULL);
#endif
@@ -270,14 +270,14 @@ PVideoFrame __stdcall Cache::GetFrame(int n, IScriptEnvironment* env_)
case LRU_LOOKUP_NO_CACHE:
{
#ifdef _DEBUG
- snprintf(buf.get(), BUFSIZE, "Cache::GetFrame <Before GetFrame> LRU_LOOKUP_NO_CACHE: [%s] n=%6d child=%p\n", name.c_str(), n, (void*)_pimpl->child); // P.F.
+ snprintf(buf.get(), BUFSIZE, "AvsCache::GetFrame <Before GetFrame> LRU_LOOKUP_NO_CACHE: [%s] n=%6d child=%p\n", name.c_str(), n, (void*)_pimpl->child); // P.F.
_RPT0(0, buf.get());
#endif
result = _pimpl->child->GetFrame(n, env);
#ifdef _DEBUG
t_end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> elapsed_seconds = t_end - t_start;
- snprintf(buf.get(), BUFSIZE, "Cache::GetFrame <After GetFrame> LRU_LOOKUP_NO_CACHE: [%s] n=%6d child=%p frame=%p vfb=%p videoCacheSize=%zu SeekTime :%f\n", name.c_str(), n, (void *)_pimpl->child, (void *)result, (void *)result->GetFrameBuffer(), _pimpl->VideoCache->size(), elapsed_seconds.count()); // P.F.
+ snprintf(buf.get(), BUFSIZE, "AvsCache::GetFrame <After GetFrame> LRU_LOOKUP_NO_CACHE: [%s] n=%6d child=%p frame=%p vfb=%p videoCacheSize=%zu SeekTime :%f\n", name.c_str(), n, (void *)_pimpl->child, (void *)result, (void *)result->GetFrameBuffer(), _pimpl->VideoCache->size(), elapsed_seconds.count()); // P.F.
_RPT0(0, buf.get());
#endif
break;
@@ -293,13 +293,13 @@ PVideoFrame __stdcall Cache::GetFrame(int n, IScriptEnvironment* env_)
return result;
}
-void Cache::FillAudioZeros(void* buf, size_t start_offset, size_t count) {
+void AvsCache::FillAudioZeros(void* buf, size_t start_offset, size_t count) {
const int bps = _pimpl->vi.BytesPerAudioSample();
unsigned char* byte_buf = (unsigned char*)buf;
memset(byte_buf + start_offset * bps, 0, count * bps);
}
-void __stdcall Cache::GetAudio(void* buf, int64_t start, int64_t count, IScriptEnvironment* env)
+void __stdcall AvsCache::GetAudio(void* buf, int64_t start, int64_t count, IScriptEnvironment* env)
{
if (count <= 0)
return;
@@ -439,19 +439,19 @@ void __stdcall Cache::GetAudio(void* buf, int64_t start, int64_t count, IScriptE
}
-const VideoInfo& __stdcall Cache::GetVideoInfo()
+const VideoInfo& __stdcall AvsCache::GetVideoInfo()
{
return _pimpl->vi;
}
-bool __stdcall Cache::GetParity(int n)
+bool __stdcall AvsCache::GetParity(int n)
{
return _pimpl->child->GetParity(n);
}
-int __stdcall Cache::SetCacheHints(int cachehints, int frame_range)
+int __stdcall AvsCache::SetCacheHints(int cachehints, int frame_range)
{
- // _RPT3(0, "Cache::SetCacheHints called. cache=%p hint=%d frame_range=%d\n", (void *)this, cachehints, frame_range);
+ // _RPT3(0, "AvsCache::SetCacheHints called. cache=%p hint=%d frame_range=%d\n", (void *)this, cachehints, frame_range);
switch(cachehints)
{
/*********************************************
@@ -490,7 +490,7 @@ int __stdcall Cache::SetCacheHints(int cachehints, int frame_range)
_pimpl->VideoCache->limits(&min, &max);
max = frame_range;
_pimpl->VideoCache->set_limits(min, max);
- _RPT3(0, "Cache::SetCacheHints CACHE_SET_MAX_CAPACITY cache=%p hint=%d frame_range=%d\n", (void *)this, cachehints, frame_range);
+ _RPT3(0, "AvsCache::SetCacheHints CACHE_SET_MAX_CAPACITY cache=%p hint=%d frame_range=%d\n", (void *)this, cachehints, frame_range);
break;
}
@@ -636,7 +636,7 @@ PClip CacheGuard::GetCache(IScriptEnvironment* env_)
}
// not found for current device, create it
- Cache* cache = new Cache(child, device, /*ref*/mutex, static_cast<InternalEnvironment*>(globalEnv));
+ AvsCache* cache = new AvsCache(child, device, /*ref*/mutex, static_cast<InternalEnvironment*>(globalEnv));
// apply cache hints if it is changed
if (hints.min != hints.default_min)
diff --git a/avs_core/core/cache.h b/avs_core/core/cache.h
index 640b653d6..1a453be6b 100644
--- a/avs_core/core/cache.h
+++ b/avs_core/core/cache.h
@@ -43,7 +43,7 @@
struct CachePimpl;
class InternalEnvironment;
-class Cache : public IClip
+class AvsCache : public IClip
{
private:
@@ -58,8 +58,8 @@ class Cache : public IClip
#ifdef _DEBUG
std::string FuncName = ""; // P.F. Invoked function's name whose queue owns the cache object
#endif
- Cache(const PClip& child, Device* device, std::mutex &CacheGuardMutex, InternalEnvironment* env);
- ~Cache();
+ AvsCache(const PClip& child, Device* device, std::mutex &CacheGuardMutex, InternalEnvironment* env);
+ ~AvsCache();
PVideoFrame __stdcall GetFrame(int n, IScriptEnvironment* env);
void __stdcall GetAudio(void* buf, int64_t start, int64_t count, IScriptEnvironment* env);
const VideoInfo& __stdcall GetVideoInfo();
diff --git a/avs_core/include/avisynth.h b/avs_core/include/avisynth.h
index 93fa0e57f..03a40c618 100644
--- a/avs_core/include/avisynth.h
+++ b/avs_core/include/avisynth.h
@@ -1007,7 +1007,7 @@ class VideoFrameBuffer {
volatile long sequence_number;
friend class VideoFrame;
- friend class Cache;
+ friend class AvsCache;
friend class ScriptEnvironment;
volatile long refcount;
@@ -1101,7 +1101,7 @@ class VideoFrame {
void Release();
friend class ScriptEnvironment;
- friend class Cache;
+ friend class AvsCache;
VideoFrame(VideoFrameBuffer* _vfb, AVSMap* avsmap, int _offset, int _pitch, int _row_size, int _height, int _pixel_type);
VideoFrame(VideoFrameBuffer* _vfb, AVSMap* avsmap, int _offset, int _pitch, int _row_size, int _height, int _offsetU, int _offsetV, int _pitchUV, int _row_sizeUV, int _heightUV, int _pixel_type);
+40
View File
@@ -0,0 +1,40 @@
[build]
type = "cmake"
[build.flags]
build_dir = "build"
configure = ["-Wno-dev", '-DCMAKE_CXX_FLAGS="-I/usr/include/soundtouch"']
post_install = [ "install -D -m644 ../avisynthplus.xml -t $DESTDIR/usr/share/mime/packages" ]
[dependencies]
build = [
"cmake",
"soundtouch",
"devil",
]
optional = [
"devil",
"soundtouch",
]
runtime = [
"glibc",
"hicolor-icon-theme",
"libunwind",
"libcxx",
]
[package]
description = "An improved version of the AviSynth frameserver"
homepage = "https://avs-plus.net/"
license = "GPL-2.0-or-later"
name = "avisynthplus"
version = "3.7.5"
[[source]]
extract_dir = "$name-$version"
url = "https://github.com/AviSynth/AviSynthPlus.git#v$version"
patches = [ "010-avisynthplus-fix-symbol-conflict-with-vmaf.patch" ]
post_extract = [ "rm avs_core/include/avisynth.h.orig" ]
[[manual_sources]]
files = [ "avisynthplus.xml", "010-avisynthplus-fix-symbol-conflict-with-vmaf.patch" ]
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/x-avs">
<glob pattern="*.avs"/>
<glob pattern="*.avsi"/>
<icon name="avisynthplus-script"/>
<comment>AviSynthPlus script</comment>
</mime-type>
</mime-info>