TGViewer
Telegram github commits and releases Telegram github commits and releases @tgappsupdates · 4.55K subscribers
Post #20664 41
UnigramDev/Unigram/develop • 6df8bf5 • 38 files, +269/-1546
Consume libvlc and webrtc as prebuilt binaries

Both were built from source as part of setting up a checkout. libvlc meant an 8.8 GB submodule,
Docker and the VideoLAN contrib toolchain; webrtc meant depot_tools, a ~1.5 hour sync, ~20 GB of
disk and a multi-hour build, ending in absolute paths to C:\webrtc hardcoded in two project
files. Both change about once a year.

They are vcpkg overlay ports now, downloading an archive for the architecture being built and
verifying it against a recorded SHA512. The sources, the scripts that produce the archives and
the patches they need moved to UnigramDev/deps, and the archives are published as releases there,
each naming the fork commit it was built from.

The libvlc port also has to place the plugin tree, which cannot be flattened: the plugins' paths
are recorded in the generated plugins.dat cache, so they reach the package as
plugins\<category>\<name>.dll through Content items rather than the flat copy the other
dependencies use.

VcpkgAutoLink is off. It put every .lib in the installed tree on every link line, which since
webrtc arrived meant Telegram.Native scanning a 339 MB static library it has no reference into.
Each project now names what it links, derived from what the binaries actually import.

tgcalls and Telegram.Native.Calls include libyuv by its full path. webrtc carries a patched copy
whose ConvertToI420 takes three extra parameters, and vcpkg's libyuv port supplies the stock one,
so a plain <libyuv.h> resolved to whichever include directory came first -- which was decided by
a hardcoded path that no longer exists. The three compiled files that used the ambiguous form now
say which library they mean.

Libraries/vlc and Libraries/webrtc are gone, submodule included. The VLC checkout the former held
is an ordinary clone of the fork now, kept outside the repository.

The instructions for building without WebRTC go too. Removing the project reference and the
ENABLE_CALLS directive still compiles, but webrtc is listed in vcpkg.json, so the restore installs
it for the triplet either way -- the download that section existed to avoid is spent before any
project is built. Making it work again means a manifest feature, not a set of manual edits.

duplicated-libraries.md records what the app now carries more than one copy of -- two ffmpeg
builds, and opus and libyuv both as DLLs and inside webrtc.lib -- with the measurements behind it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

UnigramDev/Unigram/develop • 51f817c • 4 files, +40/-20
Merge remote-tracking branch 'origin/develop' into develop

#unigram
More from @tgappsupdates
  1. Oct 12, 2026TGX-Android/Telegram-X/main • 012c76b • 2 files, +3/-3 Always use `c++_shared` now TGX-And…
  2. Oct 11, 2026morethanwords/tweb/master • 94bbdf4 • 2 files, +98/-2 Folder tags: leave the rows without…
  3. Oct 11, 2026UnigramDev/Unigram/accessibility-keyboard • 7db678f • 3 files, +76/-1 Wire the call microp…
  4. Oct 11, 2026UnigramDev/Unigram/accessibility-keyboard • 202b2ad • 3 files, +76/-1 Wire the call microp…
  5. Oct 11, 2026UnigramDev/Unigram/accessibility-keyboard • a995f8e • 1 files, +80/-0 Add keyboard actions…
  6. Oct 11, 2026UnigramDev/Unigram/develop • 04a9e11 • 1 files, +23/-5 Try to preserve managed exception U…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →