Wednesday, January 24, 2024

QuickTime As a Tape Archival Format

Chris Hanson (Hacker News):

A lot of people think QuickTime is a “video format,” but that’s not really accurate. Video and audio playback are applications atop the QuickTime container format; the container format itself is a means of representing multiple typed tracks of time-based media, each of which may have their own representation in the form of samples interpreted according to their own CODECs.


Once you realize that the tracks themselves can be arbitrary, it starts to become clear how this format maps nicely to tape content: Since tapes themselves are linear, they’re fundamentally time-based.


The format can also be leveraged to support random access including writes, since the intelligence for that can be in the “CODEC” for the “tape” track media, combined with the QuickTime format’s existing support for non-destructive edits. New data can be overlaid based on its “temporal” position, which should more or less accurately simulate how a rewritten tape would actually work, while still preserving the data that was just overwritten.


Darwin Streaming Server as a whole and its QTFileLib component are written in quite straightforward “C with Classes”-style C++, and QTFileLib has an API surface representing all of the major low-level and application-level concepts of the file format.

3 Comments RSS · Twitter · Mastodon

I still miss QuickTime Player 7. It's never had an equal.

Dude. QTSS was written in Perl.

> Dude. QTSS was written in Perl.

Here, it's DSS and according to the git repository you get to when following the links, it's ~7% perl, ~80% C/C++.

I would not call that "written in Perl". YMMV.

Leave a Comment