Discussion:
[xiph-rtp] Updated revision vorbis-rtp
Luca Barbato
2007-05-03 21:14:33 UTC
Permalink
Please give it a read, it will be committed to ietf soon and hopefully
it will be ready for the last steps.

http://svn.xiph.org/trunk/vorbis/doc/draft-ietf-avt-rtp-vorbis-04.txt

lu
--
Luca Barbato

Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero
Ralph Giles
2007-05-05 12:27:34 UTC
Permalink
Luca,

Thanks for preparing a new draft.

After various discussions, particularly the surrounding the oggless[1]
proposal from the ffmpeg/nut/mplayer people, I've reversed my opinion
on the value of a general packed headers format, instead of the current
codec-specific versions, so I'd like to ask that we redefine that.

Requirements:

* general mechanism for framing bitstream headers in a single blob
(this means we have to include the metadata header)
* support arbitrary number of headers
* support for arbitrary length (maybe)

The simplest extension would be to ammend the packed header definition
so:

[24 bit] id
[8 bit] count
for each header in count:
[16 bit] length
[...] length bytes of header

That would probablly work for most codecs (but we'll need to include
text about truncating or rejecting the stream if any of the packets are
too big)

More flexible would be to define a variable-length encoding scheme, for
example, uft-style high-bit-marks-continuation, or jpeg2k-style where
the length includes the size of the length marker, which reserves
lengths of 2 to mean 'read 4 more bytes as the length' in which a value
of 3 means 'read 8 more bytes as the length'.

I prefer the utf-style because it can be used for the count field as
well, and saves a few bytes in the current common cases.

Comments?

-r

[1] http://svn.mplayerhq.hu/nut.merged/docs/oggless-xiph-codecs.txt?view=markup
Luca Barbato
2007-05-05 12:43:51 UTC
Permalink
Post by Ralph Giles
Comments?
I'd like to have vorbis-rtp out asap and this modify would take some
time. I can just change the configuration packet definition even if I'm
unhappy about the information duplication.

The current mechanism in place in ffmpeg/nut and mkv should be flexible
enough to fit your requests and probably makes the life of implementors
easier since they'd have just to pass the decoded blob to their routines
w/out having to parse and reformat.

lu
--
Luca Barbato

Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero
Silvia Pfeiffer
2007-05-06 11:02:16 UTC
Permalink
Luca,

A few minor typos that I noticed:
* section 2, last sentence: lacks a "a" before "time".
* section 2.3: duplication of "the" in the paragraph's second last row
* section 3.1.1, last sentence: should start with "It"
* section 9.1, 5th paragraph: "as soon as" is missing its second "as"

Looking good!

Cheers,
Silvia.
Post by Luca Barbato
Post by Ralph Giles
Comments?
I'd like to have vorbis-rtp out asap and this modify would take some
time. I can just change the configuration packet definition even if I'm
unhappy about the information duplication.
The current mechanism in place in ffmpeg/nut and mkv should be flexible
enough to fit your requests and probably makes the life of implementors
easier since they'd have just to pass the decoded blob to their routines
w/out having to parse and reformat.
lu
--
Luca Barbato
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero
_______________________________________________
xiph-rtp mailing list
http://lists.xiph.org/mailman/listinfo/xiph-rtp
Luca Barbato
2007-05-06 12:18:40 UTC
Permalink
Post by Silvia Pfeiffer
Luca,
* section 2, last sentence: lacks a "a" before "time".
* section 2.3: duplication of "the" in the paragraph's second last row
* section 3.1.1, last sentence: should start with "It"
* section 9.1, 5th paragraph: "as soon as" is missing its second "as"
Updated accordingly, thank you.

Anybody has some input about the proposal change to the configuration
payload?

lu
--
Luca Barbato

Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero
Ralph Giles
2007-05-07 19:45:42 UTC
Permalink
Post by Luca Barbato
The current mechanism in place in ffmpeg/nut and mkv should be flexible
enough to fit your requests and probably makes the life of implementors
easier since they'd have just to pass the decoded blob to their routines
w/out having to parse and reformat.
I guess I don't like using the lacing method (quasi-unary encoding of
the length). It has its place in Ogg, but it's quite inefficient in
something like a length field. I prefer the old fixed-width 16-bit field
to that .

What I was proposing was:

a = readbyte(stream);
length = a & 0x7f;
bytes = 1;
while ((a & 0x80) && (bytes < 8)) {
a = readbyte(stream)
length = (length << 7) | (a & 0x7f);
bytes += 1;
}

examples:
0 -> 00
1 -> 01
...
127 -> 7f
128 -> 81 00
129 -> 81 01
...
4100 -> 90 04

and so on.

-r

Loading...