TGViewer
Telegram github commits and releases Telegram github commits and releases @tgappsupdates · 4.49K subscribers
Post #20716 26
UnigramDev/Unigram/develop • 4daed16 • 2 files, +19/-6
Fix layout cycle

UnigramDev/Unigram/develop • a380fa4 • 1 files, +0/-7
Remove dead method

UnigramDev/Unigram/develop • fd5f90c • 6 files, +929/-141
Encode voice messages while they are recorded

A voice message was captured twice and encoded three times: a MediaFrameReader
already held every sample in memory to drive the blob, while LowLagMediaRecording
wrote the same audio to a WAV that was read back and re-encoded to Opus when the
message was sent.

OpusOutput.WriteFrame has been there the whole time and had no caller. The reader
now feeds it directly, so the file that lands on disk is already the file that
gets uploaded, and the duration is counted from the samples rather than taken
from MediaCaptureStopResult and truncated to a whole second.

The encoder is 48kHz mono and a frame source hands over whatever the endpoint
runs at, so this only applies when the format fits, or can be set to fit. It
falls back to the old path otherwise, because playing back at the wrong speed is
worse than transcoding.

Waveforms are sent now. They were computed and then dropped for Array.Empty,
which hid a bug in the accumulator: the bucket peak was never reset, so every
bucket held the running maximum of the whole recording and the waveform could
only climb.

The reader also had to stop dropping frames. Realtime acquisition and a 64ms
gate that returned before touching the buffer were fine for a blob and would
have cut holes in a recording, so it is Buffered now and only the level
notification is rate-limited.

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

UnigramDev/Unigram/develop • dba8a19 • 1 files, +11/-6
Never renegotiate the capture format for a video message

The blob is animated for voice and video alike, so the frame reader runs in both
modes, and the format negotiation added with the sink was running in both too.

A video message records through MediaCapture. Changing the format of the audio
source it is about to record from, to suit an encoder that isn't involved, would
change what lands in the mp4 for the sake of a level meter.

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

#unigram
  • 🫡 1
More from @tgappsupdates
  1. Oct 10, 2026Assets for release v7.3.1 of telegramdesktop/tdesktop: • Windows on ARM: Portable • Window…
  2. Oct 10, 2026telegramdesktop/tdesktop/dev • 4b529b9 • 2 files, +63/-34 Added grouping of webpage photo…
  3. Oct 10, 2026New telegramdesktop/tdesktop release: v7.3.1 (stable) - Fix wallet encryption with Windows…
  4. Oct 10, 2026UnigramDev/Unigram/develop • bab9f3c • 3 files, +52/-17 Use sticky headers in folder setti…
  5. Oct 10, 2026UnigramDev/Unigram/develop • b39b5d1 • 1 files, +18/-0 vcpkg fix UnigramDev/Unigram/develo…
  6. Oct 10, 2026UnigramDev/Unigram/develop • 4365e0b • 1 files, +9/-9 Show "sending" as a replacement for…
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 →