[theora-dev] More Q's about theora...
Timothy B. Terriberry
tterribe at vt.edu
Tue Apr 6 07:06:09 PDT 2004
>>Firstly in the header there is width and height parameters.
>>Are these fixed for the entire file ?
>>Is it possible for say halfway through the dimensions of the video to be changed ie two different size videos are spliced together ?
>>If it is... does the header represent the first size or the maximum size ?
These are fixed for the entire logical stream. In a chained file, this
can change from time to time, in which case there will be a new set of
header packets in each link in the chain, because there will be a new
logical stream. The values in the first header are just the first
values, not the maximum.
For more about chaining and multiplexing, see:
Note that in a chained file one does not have to have the same number of
logical streams in each link, or even the same types of streams. For
example, you could chain a pure video stream, followed by a pure audio
stream, followed by a video stream and two different audio streams
multiplexed together. How much of this the DirectShow architecture can
actually support may limit your filter's capabilities, though.
>>Secondly what are the interleaving requirements...
>>Obviously it's much easier for the player if pages from the audio and video are interleaved relatively in sync... but is it legal to say have the entire video bitstream of the video, followed by the entire audio bitstream ?
>>Not that you probably want to go to that extreme... but is there a maximum defined amount that the video and audio can't be out of sync by ? ie can you go 10 seconds worth of video... 10 seconds worth of audio etc. Is the general consensus that it should be more than one page out of sync... ie a page of video which ends after the granule pos of the last page of audio... must be foloowed by pages of audio until the time of the audio exceeds the time of the last page of video etc.
Pages are sorted in the file by mapping the granule position of each to
an absolute time value, and arranging them by that time value. There is
currently some discussion over how to select a granule position for a
page: current software uses a granule position corresponding to the end
time of the last complete packet in the page, but switching to the start
time of the first packet provides slightly more efficient buffering in
some cases. For a video packet the start and end time are the same, but
in an audio packet they depend on the number of samples available after
the packet is decoded. Note, however, that because there can be multiple
packets in a page, the start and end time of a page can still differ for
--- >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