[theora-dev] question about ogg mapping

Mauricio Piacentini mauricio at tabuleiro.com
Thu Jun 12 10:04:49 PDT 2003



Are you sure about this, Dan? Because I got from ogg.h

typedef struct {
  unsigned char *packet;
  long  bytes;
  long  b_o_s;
  long  e_o_s;

  ogg_int64_t  granulepos;

  ogg_int64_t  packetno;     /* sequence number for decode; the framing
    knows where there's a hole in the data,
    but we need coupling so that the codec
    (which is in a seperate abstraction
    layer) also knows about the gap */
} ogg_packet;

And in theora_decode_packetin there is:

int theora_decode_packetin(theora_state *th,ogg_packet *op){
..stuff deleted..
    if(op->granulepos>-1)
      th->granulepos=op->granulepos;
...

So at least it looks like theora_decode is setting the current theora_state
granulepos from information encoded in the ogg_packet structure. However as
I said I am not sure this is set correctly by the current encoder.

Regards,
Mauricio

----- Original Message ----- 
From: "Dan Miller" <dan at on2.com>
To: <theora-dev at xiph.org>
Sent: Thursday, June 12, 2003 1:49 PM
Subject: RE: [theora-dev] question about ogg mapping

<p>> > From: Mauricio Piacentini [mailto:mauricio at tabuleiro.com]
>
> > Answering my own question: by walking through the code I can
> > see that each
> > packet has its own granulepos, so it should not be a big
> > issue , provided
>
> Incorrect -- each *page* has a granulepos.  The data packet itself starts
with a zero (one == header packet), then there's a 'predicted' bit
(0=keyframe), etc -- no granulepos at all, that's an Ogg thing.
>
> It occurs to me that as it stands, there is actually no way to even get to
the second frame in a page without parsing through the whole first frame and
so on.  There isn't even a bytecount or anything to skip frames -- that info
is buried deep within the bitstream structure.
>
>
> > those are being set correctly. Not sure however if there are
> > implications
> > for seeking, we have to try and see what happens. I suspect
> > we can simply
> > stuff more packets in a page, up to the optimal 4-8k number.
> >
> > Regards,
> > Mauricio

--- >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