[theora-dev] A/V sync in Theora

Ralph Giles giles at xiph.org
Fri Jun 13 07:35:02 PDT 2003

On Thursday, June 12, 2003, at 08:32 pm, Sam Leitch wrote:

> granule_position is not an absolute, which means timing information 
> must be stored and processed at a higher level.

Using absolute timestamps for the granulepos is certainly an option and 
was considered, but it was decided to go with a fixed framerate. There 
are tradeoffs in any design and in the end you have to pick some 
abstraction. In this case  Monty felt the extra complexity wasn't worth 

> That begs the question. Who is responsible for synchronization? Ogg, 
> Vorbis/Theora, or the player software.

The player software. The idea is for the bitstream to be the dumb part 
because it's the part that changes the least. So the vorbis codec 
provides blocks of audio intended to be played back at a fixed rate, 
and theora codec provides a series of frames intended to play at a 
fixed rate. It's the player's job to output that data in way that the 
relative rates match well enough to maintain sync.

Put another way, clock drift in the source video is the encoder's 
problem, and clock drift in the output devices is the playback 
software's problem

Hope that helps,

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'theora-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Theora-dev mailing list