[vorbis-dev] Monty on holiday

Kenneth C. Arnold kcarnold at yahoo.com
Mon Jun 5 16:58:36 PDT 2000



On Mon, Jun 05, 2000 at 01:07:31PM -0400, Willmore, David (VS Central) wrote:
> OBOTC:  I'm monitoring the development of vorbis for possible use in the
> amateur radio community.  The low bandwidth vocoder stuff is of particular
> interest to me.  Keep up the good work!

I was also thinking about other possible uses, and digital television came
up quite quickly. What could be more attractive to a broadcaster than a
good compression format for which they don't have to pay anything to stream
variable quality music and other audio over the newly available digital
spectrum? Add encryption to the stream (e.g., ssh), some sort of authentication
mechanism, and build the Vorbis audio stream into the rest of the digital
signal (very easy), and there 'ya go. Now wouldn't that be cool? All we
need is to implement the compressor in a stand-alone hardware box.

btw, I've never posted here before. I am the author of [the modifications
that make] Vorbis Tools (including Vorbize). These are just additions to
Monty's sample code that add nice stuff like real WAV header detection,
command line options, read/write to/from a file, etc. to the encoder,
and command line stuff and play to the soundcard for the decoder, and a little
shell script that converts MP3s to Vorbis streams. The little things that
make it easier for Joe Music Ripper to work with a format, the easier it can
be accepted. If any of you want a tarball, bug me via email. Yeah, I know
this would better be posted to vorbis at xiph.org, but I have one issue.

I had to modify the Vorbis CVS slightly to quiet down the encoder. The
culprit in this case was res0.c spewing out who-knows-what, ruining the
possibility of on-screen progress reporting. I suggest an #ifdef DEBUG
around the noisy lines in res0.c, but in general, if the library is going
to have useful information to report to the app, we need a standard
messaging system. Perhaps

truct
{
        void (*msg_to_lib) (void *data, int size);
        void (*msg_to_app) (void *data, int size);
} ov_msg;

hared between app and library? The app and lib would both register appropriate
functions for the other to call, and the app would call ov_msg.msg_to_lib when
it wanted to send a message to the library, and the library could call
ov_msg.msg_to_app when it wanted to send a message to the app. I was initially
considering general information reporting, but maybe they could throw raw
data at one another this way also? Maybe they should really throw structs
around instead of straight void*'s?

Kenneth Arnold

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/



More information about the Vorbis-dev mailing list