[PD-cvs] externals/pdogg/oggwrite~ codec.h,1.2,1.3 help-oggwrite~.pd,1.2,1.3 oggwrite~.c,1.3,1.4 readme,1.2,1.3 vorbisenc.h,1.2,1.3
x75 at users.sourceforge.net
x75 at users.sourceforge.net
Sun Jan 4 13:16:10 CET 2004
- Previous message: [PD-cvs] externals/pdogg/oggread~ codec.h,1.2,1.3 help-oggread~.pd,1.2,1.3 oggread~.c,1.4,1.5 readme,1.2,1.3
- Next message: [PD-cvs] externals/grill/pool readme.txt,1.14,1.15
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/pure-data/externals/pdogg/oggwrite~
In directory sc8-pr-cvs1:/tmp/cvs-serv17605/oggwrite~
Modified Files:
codec.h help-oggwrite~.pd oggwrite~.c readme vorbisenc.h
Log Message:
recommitting olaf's sources from 0.25
Index: codec.h
===================================================================
RCS file: /cvsroot/pure-data/externals/pdogg/oggwrite~/codec.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** codec.h 23 Apr 2003 10:36:25 -0000 1.2
--- codec.h 4 Jan 2004 12:16:08 -0000 1.3
***************
*** 1,233 ****
! /********************************************************************
! * *
! * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
! * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
! * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
! * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
! * *
! * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
! * by the XIPHOPHORUS Company http://www.xiph.org/ *
!
! ********************************************************************
!
! function: libvorbis codec headers
! last mod: $Id$
!
! ********************************************************************/
!
! #ifndef _vorbis_codec_h_
! #define _vorbis_codec_h_
!
! #ifdef __cplusplus
! extern "C"
! {
! #endif /* __cplusplus */
!
! #include <ogg/ogg.h>
!
! typedef struct vorbis_info{
! int version;
! int channels;
! long rate;
!
! /* The below bitrate declarations are *hints*.
! Combinations of the three values carry the following implications:
!
! all three set to the same value:
! implies a fixed rate bitstream
! only nominal set:
! implies a VBR stream that averages the nominal bitrate. No hard
! upper/lower limit
! upper and or lower set:
! implies a VBR bitstream that obeys the bitrate limits. nominal
! may also be set to give a nominal rate.
! none set:
! the coder does not care to speculate.
! */
!
! long bitrate_upper;
! long bitrate_nominal;
! long bitrate_lower;
! long bitrate_window;
!
! void *codec_setup;
! } vorbis_info;
!
! /* vorbis_dsp_state buffers the current vorbis audio
! analysis/synthesis state. The DSP state belongs to a specific
! logical bitstream ****************************************************/
! typedef struct vorbis_dsp_state{
! int analysisp;
! vorbis_info *vi;
!
! float **pcm;
! float **pcmret;
! int pcm_storage;
! int pcm_current;
! int pcm_returned;
!
! int preextrapolate;
! int eofflag;
!
! long lW;
! long W;
! long nW;
! long centerW;
!
! ogg_int64_t granulepos;
! ogg_int64_t sequence;
!
! ogg_int64_t glue_bits;
! ogg_int64_t time_bits;
! ogg_int64_t floor_bits;
! ogg_int64_t res_bits;
!
! void *backend_state;
! } vorbis_dsp_state;
!
! typedef struct vorbis_block{
! /* necessary stream state for linking to the framing abstraction */
! float **pcm; /* this is a pointer into local storage */
! oggpack_buffer opb;
!
! long lW;
! long W;
! long nW;
! int pcmend;
! int mode;
!
! int eofflag;
! ogg_int64_t granulepos;
! ogg_int64_t sequence;
! vorbis_dsp_state *vd; /* For read-only access of configuration */
!
! /* local storage to avoid remallocing; it's up to the mapping to
! structure it */
! void *localstore;
! long localtop;
! long localalloc;
! long totaluse;
! struct alloc_chain *reap;
!
! /* bitmetrics for the frame */
! long glue_bits;
! long time_bits;
! long floor_bits;
! long res_bits;
!
! void *internal;
!
! } vorbis_block;
!
! /* vorbis_block is a single block of data to be processed as part of
! the analysis/synthesis stream; it belongs to a specific logical
! bitstream, but is independant from other vorbis_blocks belonging to
! that logical bitstream. *************************************************/
!
! struct alloc_chain{
! void *ptr;
! struct alloc_chain *next;
! };
!
! /* vorbis_info contains all the setup information specific to the
! specific compression/decompression mode in progress (eg,
! psychoacoustic settings, channel setup, options, codebook
! etc). vorbis_info and substructures are in backends.h.
! *********************************************************************/
!
! /* the comments are not part of vorbis_info so that vorbis_info can be
! static storage */
! typedef struct vorbis_comment{
! /* unlimited user comment fields. libvorbis writes 'libvorbis'
! whatever vendor is set to in encode */
! char **user_comments;
! int *comment_lengths;
! int comments;
! char *vendor;
!
! } vorbis_comment;
!
!
! /* libvorbis encodes in two abstraction layers; first we perform DSP
! and produce a packet (see docs/analysis.txt). The packet is then
! coded into a framed OggSquish bitstream by the second layer (see
! docs/framing.txt). Decode is the reverse process; we sync/frame
! the bitstream and extract individual packets, then decode the
! packet back into PCM audio.
!
! The extra framing/packetizing is used in streaming formats, such as
! files. Over the net (such as with UDP), the framing and
! packetization aren't necessary as they're provided by the transport
! and the streaming layer is not used */
!
! /* Vorbis PRIMITIVES: general ***************************************/
!
! extern void vorbis_info_init(vorbis_info *vi);
! extern void vorbis_info_clear(vorbis_info *vi);
! extern int vorbis_info_blocksize(vorbis_info *vi,int zo);
! extern void vorbis_comment_init(vorbis_comment *vc);
! extern void vorbis_comment_add(vorbis_comment *vc, char *comment);
! extern void vorbis_comment_add_tag(vorbis_comment *vc,
! char *tag, char *contents);
! extern char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count);
! extern int vorbis_comment_query_count(vorbis_comment *vc, char *tag);
! extern void vorbis_comment_clear(vorbis_comment *vc);
!
! extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
! extern int vorbis_block_clear(vorbis_block *vb);
! extern void vorbis_dsp_clear(vorbis_dsp_state *v);
!
! /* Vorbis PRIMITIVES: analysis/DSP layer ****************************/
!
! extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi);
! extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op);
! extern int vorbis_analysis_headerout(vorbis_dsp_state *v,
! vorbis_comment *vc,
! ogg_packet *op,
! ogg_packet *op_comm,
! ogg_packet *op_code);
! extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals);
! extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals);
! extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb);
! extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op);
!
! extern int vorbis_bitrate_addblock(vorbis_block *vb);
! extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,
! ogg_packet *op);
!
! /* Vorbis PRIMITIVES: synthesis layer *******************************/
! extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
! ogg_packet *op);
!
! extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi);
! extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op);
! extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op);
! extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb);
! extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm);
! extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples);
! extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op);
!
! /* Vorbis ERRORS and return codes ***********************************/
!
! #define OV_FALSE -1
! #define OV_EOF -2
! #define OV_HOLE -3
!
! #define OV_EREAD -128
! #define OV_EFAULT -129
! #define OV_EIMPL -130
! #define OV_EINVAL -131
! #define OV_ENOTVORBIS -132
! #define OV_EBADHEADER -133
! #define OV_EVERSION -134
! #define OV_ENOTAUDIO -135
! #define OV_EBADPACKET -136
! #define OV_EBADLINK -137
! #define OV_ENOSEEK -138
!
! #ifdef __cplusplus
! }
! #endif /* __cplusplus */
!
! #endif
!
--- 1,233 ----
! /********************************************************************
! * *
! * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
! * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
! * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
! * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
! * *
! * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
! * by the XIPHOPHORUS Company http://www.xiph.org/ *
!
! ********************************************************************
!
! function: libvorbis codec headers
! last mod: $Id$
!
! ********************************************************************/
!
! #ifndef _vorbis_codec_h_
! #define _vorbis_codec_h_
!
! #ifdef __cplusplus
! extern "C"
! {
! #endif /* __cplusplus */
!
! #include <ogg/ogg.h>
!
! typedef struct vorbis_info{
! int version;
! int channels;
! long rate;
!
! /* The below bitrate declarations are *hints*.
! Combinations of the three values carry the following implications:
!
! all three set to the same value:
! implies a fixed rate bitstream
! only nominal set:
! implies a VBR stream that averages the nominal bitrate. No hard
! upper/lower limit
! upper and or lower set:
! implies a VBR bitstream that obeys the bitrate limits. nominal
! may also be set to give a nominal rate.
! none set:
! the coder does not care to speculate.
! */
!
! long bitrate_upper;
! long bitrate_nominal;
! long bitrate_lower;
! long bitrate_window;
!
! void *codec_setup;
! } vorbis_info;
!
! /* vorbis_dsp_state buffers the current vorbis audio
! analysis/synthesis state. The DSP state belongs to a specific
! logical bitstream ****************************************************/
! typedef struct vorbis_dsp_state{
! int analysisp;
! vorbis_info *vi;
!
! float **pcm;
! float **pcmret;
! int pcm_storage;
! int pcm_current;
! int pcm_returned;
!
! int preextrapolate;
! int eofflag;
!
! long lW;
! long W;
! long nW;
! long centerW;
!
! ogg_int64_t granulepos;
! ogg_int64_t sequence;
!
! ogg_int64_t glue_bits;
! ogg_int64_t time_bits;
! ogg_int64_t floor_bits;
! ogg_int64_t res_bits;
!
! void *backend_state;
! } vorbis_dsp_state;
!
! typedef struct vorbis_block{
! /* necessary stream state for linking to the framing abstraction */
! float **pcm; /* this is a pointer into local storage */
! oggpack_buffer opb;
!
! long lW;
! long W;
! long nW;
! int pcmend;
! int mode;
!
! int eofflag;
! ogg_int64_t granulepos;
! ogg_int64_t sequence;
! vorbis_dsp_state *vd; /* For read-only access of configuration */
!
! /* local storage to avoid remallocing; it's up to the mapping to
! structure it */
! void *localstore;
! long localtop;
! long localalloc;
! long totaluse;
! struct alloc_chain *reap;
!
! /* bitmetrics for the frame */
! long glue_bits;
! long time_bits;
! long floor_bits;
! long res_bits;
!
! void *internal;
!
! } vorbis_block;
!
! /* vorbis_block is a single block of data to be processed as part of
! the analysis/synthesis stream; it belongs to a specific logical
! bitstream, but is independant from other vorbis_blocks belonging to
! that logical bitstream. *************************************************/
!
! struct alloc_chain{
! void *ptr;
! struct alloc_chain *next;
! };
!
! /* vorbis_info contains all the setup information specific to the
! specific compression/decompression mode in progress (eg,
! psychoacoustic settings, channel setup, options, codebook
! etc). vorbis_info and substructures are in backends.h.
! *********************************************************************/
!
! /* the comments are not part of vorbis_info so that vorbis_info can be
! static storage */
! typedef struct vorbis_comment{
! /* unlimited user comment fields. libvorbis writes 'libvorbis'
! whatever vendor is set to in encode */
! char **user_comments;
! int *comment_lengths;
! int comments;
! char *vendor;
!
! } vorbis_comment;
!
!
! /* libvorbis encodes in two abstraction layers; first we perform DSP
! and produce a packet (see docs/analysis.txt). The packet is then
! coded into a framed OggSquish bitstream by the second layer (see
! docs/framing.txt). Decode is the reverse process; we sync/frame
! the bitstream and extract individual packets, then decode the
! packet back into PCM audio.
!
! The extra framing/packetizing is used in streaming formats, such as
! files. Over the net (such as with UDP), the framing and
! packetization aren't necessary as they're provided by the transport
! and the streaming layer is not used */
!
! /* Vorbis PRIMITIVES: general ***************************************/
!
! extern void vorbis_info_init(vorbis_info *vi);
! extern void vorbis_info_clear(vorbis_info *vi);
! extern int vorbis_info_blocksize(vorbis_info *vi,int zo);
! extern void vorbis_comment_init(vorbis_comment *vc);
! extern void vorbis_comment_add(vorbis_comment *vc, char *comment);
! extern void vorbis_comment_add_tag(vorbis_comment *vc,
! char *tag, char *contents);
! extern char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count);
! extern int vorbis_comment_query_count(vorbis_comment *vc, char *tag);
! extern void vorbis_comment_clear(vorbis_comment *vc);
!
! extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
! extern int vorbis_block_clear(vorbis_block *vb);
! extern void vorbis_dsp_clear(vorbis_dsp_state *v);
!
! /* Vorbis PRIMITIVES: analysis/DSP layer ****************************/
!
! extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi);
! extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op);
! extern int vorbis_analysis_headerout(vorbis_dsp_state *v,
! vorbis_comment *vc,
! ogg_packet *op,
! ogg_packet *op_comm,
! ogg_packet *op_code);
! extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals);
! extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals);
! extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb);
! extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op);
!
! extern int vorbis_bitrate_addblock(vorbis_block *vb);
! extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,
! ogg_packet *op);
!
! /* Vorbis PRIMITIVES: synthesis layer *******************************/
! extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
! ogg_packet *op);
!
! extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi);
! extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op);
! extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op);
! extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb);
! extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm);
! extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples);
! extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op);
!
! /* Vorbis ERRORS and return codes ***********************************/
!
! #define OV_FALSE -1
! #define OV_EOF -2
! #define OV_HOLE -3
!
! #define OV_EREAD -128
! #define OV_EFAULT -129
! #define OV_EIMPL -130
! #define OV_EINVAL -131
! #define OV_ENOTVORBIS -132
! #define OV_EBADHEADER -133
! #define OV_EVERSION -134
! #define OV_ENOTAUDIO -135
! #define OV_EBADPACKET -136
! #define OV_EBADLINK -137
! #define OV_ENOSEEK -138
!
! #ifdef __cplusplus
! }
! #endif /* __cplusplus */
!
! #endif
!
Index: help-oggwrite~.pd
===================================================================
RCS file: /cvsroot/pure-data/externals/pdogg/oggwrite~/help-oggwrite~.pd,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** help-oggwrite~.pd 23 Apr 2003 10:36:25 -0000 1.2
--- help-oggwrite~.pd 4 Jan 2004 12:16:08 -0000 1.3
***************
*** 1,59 ****
! #N canvas 286 47 631 513 10;
! #X obj 40 415 oggwrite~;
! #X obj 40 64 osc~ 440;
! #X floatatom 40 33 5 0 0;
! #X msg 120 52 open myfile.ogg;
! #X msg 175 125 start;
! #X msg 185 148 stop;
! #X msg 155 78 append;
! #X msg 166 99 truncate;
! #X floatatom 89 441 5 0 0;
! #X floatatom 40 470 5 0 0;
! #X msg 204 259 print;
! #X text 189 180 vorbis <samplerate> <channles> <max.br> <nom.br> <min.br>
! ;
! #X text 373 251 channels: 1 or 2 (default);
! #X text 204 216 vbr <samplerate> <channels> <quality>;
! #X msg 203 232 vbr 44100 2 0.4;
! #X text 324 238 quality settings: 0 - 1 (low - hi);
! #X text 325 267 resampling currently not supported!;
! #X text 202 290 comment <tag> <content>;
! #X text 204 329 possible tags: TITLE \, ARTIST \, PERFORMER \, DESCRIPTION
! \,;
! #X text 293 342 GENRE \, LOCATION \, COPYRIGHT \, CONTACT \, DATE;
! #X msg 202 307 ARTIST your=name;
! #X msg 189 197 vorbis 44100 2 144 128 96;
! #X text 136 441 ogg pages written to file;
! #X msg 481 455 \; pd dsp 1;
! #X msg 547 455 \; pd dsp 0;
! #X obj 481 429 loadbang;
! #X text 354 9 written by Olaf Matthes (olaf.matthes at gmx.de);
! #X text 353 21 get latest version at;
! #X text 354 34 http://www.akustische-kunst.de/puredata/;
! #X text 209 76 append data at end of file;
! #X text 226 97 overwrite previously recorded data;
! #X text 221 145 stop recording;
! #X text 225 50 open a file first!;
! #X text 240 407 might result in audible dropouts!;
! #X text 202 395 note: changing settings while recording;
! #X text 85 470 file state (1 = open \; 0 = closed);
! #X text 5 9 oggwrite~ version 0.1 - write Ogg Vorbis stream to file
! ;
! #X msg 204 361 COPYRIGHT (c)=2002=Olaf=Matthes;
! #X text 220 123 start recording;
! #X connect 0 0 9 0;
! #X connect 0 1 8 0;
! #X connect 1 0 0 0;
! #X connect 1 0 0 1;
! #X connect 2 0 1 0;
! #X connect 3 0 0 0;
! #X connect 4 0 0 0;
! #X connect 5 0 0 0;
! #X connect 6 0 0 0;
! #X connect 7 0 0 0;
! #X connect 10 0 0 0;
! #X connect 14 0 0 0;
! #X connect 20 0 0 0;
! #X connect 21 0 0 0;
! #X connect 25 0 23 0;
! #X connect 37 0 0 0;
--- 1,59 ----
! #N canvas 286 47 631 513 10;
! #X obj 40 415 oggwrite~;
! #X obj 40 64 osc~ 440;
! #X floatatom 40 33 5 0 0;
! #X msg 120 52 open myfile.ogg;
! #X msg 175 125 start;
! #X msg 185 148 stop;
! #X msg 155 78 append;
! #X msg 166 99 truncate;
! #X floatatom 89 441 5 0 0;
! #X floatatom 40 470 5 0 0;
! #X msg 204 259 print;
! #X text 189 180 vorbis <samplerate> <channles> <max.br> <nom.br> <min.br>
! ;
! #X text 373 251 channels: 1 or 2 (default);
! #X text 204 216 vbr <samplerate> <channels> <quality>;
! #X msg 203 232 vbr 44100 2 0.4;
! #X text 324 238 quality settings: 0 - 1 (low - hi);
! #X text 325 267 resampling currently not supported!;
! #X text 202 290 comment <tag> <content>;
! #X text 204 329 possible tags: TITLE \, ARTIST \, PERFORMER \, DESCRIPTION
! \,;
! #X text 293 342 GENRE \, LOCATION \, COPYRIGHT \, CONTACT \, DATE;
! #X msg 202 307 ARTIST your=name;
! #X msg 189 197 vorbis 44100 2 144 128 96;
! #X text 136 441 ogg pages written to file;
! #X msg 481 455 \; pd dsp 1;
! #X msg 547 455 \; pd dsp 0;
! #X obj 481 429 loadbang;
! #X text 354 9 written by Olaf Matthes (olaf.matthes at gmx.de);
! #X text 353 21 get latest version at;
! #X text 354 34 http://www.akustische-kunst.de/puredata/;
! #X text 209 76 append data at end of file;
! #X text 226 97 overwrite previously recorded data;
! #X text 221 145 stop recording;
! #X text 225 50 open a file first!;
! #X text 240 407 might result in audible dropouts!;
! #X text 202 395 note: changing settings while recording;
! #X text 85 470 file state (1 = open \; 0 = closed);
! #X text 5 9 oggwrite~ version 0.1 - write Ogg Vorbis stream to file
! ;
! #X msg 204 361 COPYRIGHT (c)=2002=Olaf=Matthes;
! #X text 220 123 start recording;
! #X connect 0 0 9 0;
! #X connect 0 1 8 0;
! #X connect 1 0 0 0;
! #X connect 1 0 0 1;
! #X connect 2 0 1 0;
! #X connect 3 0 0 0;
! #X connect 4 0 0 0;
! #X connect 5 0 0 0;
! #X connect 6 0 0 0;
! #X connect 7 0 0 0;
! #X connect 10 0 0 0;
! #X connect 14 0 0 0;
! #X connect 20 0 0 0;
! #X connect 21 0 0 0;
! #X connect 25 0 23 0;
! #X connect 37 0 0 0;
Index: oggwrite~.c
===================================================================
RCS file: /cvsroot/pure-data/externals/pdogg/oggwrite~/oggwrite~.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** oggwrite~.c 23 Apr 2003 10:36:25 -0000 1.3
--- oggwrite~.c 4 Jan 2004 12:16:08 -0000 1.4
***************
*** 1,751 ****
! /* -------------------------- oggwrite~ ---------------------------------------- */
! /* */
! /* Tilde object to send ogg/vorbis encoded stream to icecast2 server. */
! /* Written by Olaf Matthes (olaf.matthes at gmx.de). */
! /* Get source at http://www.akustische-kunst.de/puredata/ */
! /* */
! /* This library is free software; you can redistribute it and/or */
! /* modify it under the terms of the GNU Lesser General Public */
! /* License as published by the Free Software Foundation; either */
! /* version 2 of the License, or (at your option) any later version. */
[...1473 lines suppressed...]
! return(x);
! }
!
! void oggwrite_tilde_setup(void)
! {
! oggwrite_class = class_new(gensym("oggwrite~"), (t_newmethod)oggwrite_new, (t_method)oggwrite_free,
! sizeof(t_oggwrite), 0, 0);
! CLASS_MAINSIGNALIN(oggwrite_class, t_oggwrite, x_f );
! class_sethelpsymbol(oggwrite_class, gensym("help-oggwrite~.pd"));
! class_addmethod(oggwrite_class, (t_method)oggwrite_dsp, gensym("dsp"), 0);
! class_addmethod(oggwrite_class, (t_method)oggwrite_open, gensym("open"), A_SYMBOL, 0);
! class_addmethod(oggwrite_class, (t_method)oggwrite_start, gensym("start"), 0);
! class_addmethod(oggwrite_class, (t_method)oggwrite_stop, gensym("stop"), 0);
! class_addmethod(oggwrite_class, (t_method)oggwrite_append, gensym("append"), 0);
! class_addmethod(oggwrite_class, (t_method)oggwrite_truncate, gensym("truncate"), 0);
! class_addmethod(oggwrite_class, (t_method)oggwrite_vorbis, gensym("vorbis"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);
! class_addmethod(oggwrite_class, (t_method)oggwrite_vbr, gensym("vbr"), A_FLOAT, A_FLOAT, A_FLOAT, 0);
! class_addmethod(oggwrite_class, (t_method)oggwrite_print, gensym("print"), 0);
! class_addanything(oggwrite_class, oggwrite_comment);
! }
Index: readme
===================================================================
RCS file: /cvsroot/pure-data/externals/pdogg/oggwrite~/readme,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** readme 23 Apr 2003 10:36:25 -0000 1.2
--- readme 4 Jan 2004 12:16:08 -0000 1.3
***************
*** 1,110 ****
! oggwrite~ version 0.1b
! copyright (c) 2002 by Olaf Matthes
!
! oggwrite~ is an ogg/vorbis file writing external for pd (by Miller
! Puckette).
!
!
! To run oggwrite~ place the file oggwrite~.dll for win or oggwrite~.pd_linux
! in the directory of our patch or start pd with '-lib oggwrite~' flag.
!
! To compile oggwrite~ on Linux get the ogg/vorbice library from
! http://www.vorbis.com/.
! You have to modify the makefile to make it point to the place where the
! ogg/vorbis library is.
!
!
! This software is published under LGPL terms.
!
! This is software with ABSOLUTELY NO WARRANTY.
! Use it at your OWN RISK. It's possible to damage e.g. hardware or your hearing
! due to a bug or for other reasons.
!
! *****************************************************************************
!
! oggwrite~ uses the ogg/vorbice library to encode audio data.
! The latest version of ogg/vorbis can be found at http://www.vorbice.com/
!
! Below is the original copyright information taken from the ogg/vorbis library:
!
!
! Copyright (c) 2001, Xiphophorus
!
! Redistribution and use in source and binary forms, with or without
! modification, are permitted provided that the following conditions
! are met:
!
! - Redistributions of source code must retain the above copyright
! notice, this list of conditions and the following disclaimer.
!
! - Redistributions in binary form must reproduce the above copyright
! notice, this list of conditions and the following disclaimer in the
! documentation and/or other materials provided with the distribution.
!
! - Neither the name of the Xiphophorus nor the names of its contributors
! may be used to endorse or promote products derived from this software
! without specific prior written permission.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
! A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
! *****************************************************************************
!
! Usage:
!
! Use message "vbr <samplerate> <channels> <quality>" to set the vorbis
! encoding parameters. Resampling is currently not supported, so 'samplerate'
! should be the one pd is running at. 'channels' specyfies the number of channels
! to stream. This can be set to 2 (default) or 1 which means mono stream taking
! the leftmost audio input only. 'quality' can be a value between 0.0 and 1.0
! giving the quality of the stream. 0.4 (default) results in a stream that's
! about 128kbps.
!
! Since Vorbis uses VBR encoding, bitrates vary depending on the type of audio
! signal to be encoded. A pure sine [osc~] results in the smalest stream, com-
! plex audio signals will increase this value significantly. To test the maximum
! bitrate that might occur for a quality setting use noise~ as signal input.
!
! Use message "vorbis <samplerate> <channels> <maximum bitrate> <nominal bit-
! rate> <minimal bitrate>" to set encoding quality on the basis of bitrates.
! When setting all three bitrate parameters to the same value one gets a
! constant bitrate stream. Values are in kbps!
!
! Message "open <filename>" opens an existing file. In case the file does not
! exist oggwrite~ will create it. Previously opened files will be closed. To
! determine how data should be written to the file choose "append" (default)
! or "truncate" (in case you want to overwrite data in your file).
!
! To set the comment tags in the ogg/vorbis header (which can be displayed by
! the receiving client) use message "<NAMEOFTAG> <comment>". Supported tags are:
! TITLE, ARTIST, GENRE, PERFORMER, LOCATION, COPYRIGHT, CONTACT, DESCRIPTION and
! DATE (which is automatically set to the date/time the broadcast started). To
! get spaces use '=' instead.
!
! Note that changing encoding parameters or header comments while oggwrite~ is
! recording to file might result in audible dropouts.
!
!
! Listening to it:
!
! To listen to ogg/vorbis encoded audio files many player need an extra plug-in.
! Have a look at http://www.vorbis.com/ to find the appropiate plug-in for your
! player.
!
!
!
!
!
! Latest version can be found at:
! http://www.akustische-kunst.de/puredata/
!
Please report any bugs to olaf.matthes at gmx.de!
--- 1,110 ----
! oggwrite~ version 0.1b
! copyright (c) 2002 by Olaf Matthes
!
! oggwrite~ is an ogg/vorbis file writing external for pd (by Miller
! Puckette).
!
!
! To run oggwrite~ place the file oggwrite~.dll for win or oggwrite~.pd_linux
! in the directory of our patch or start pd with '-lib oggwrite~' flag.
!
! To compile oggwrite~ on Linux get the ogg/vorbice library from
! http://www.vorbis.com/.
! You have to modify the makefile to make it point to the place where the
! ogg/vorbis library is.
!
!
! This software is published under LGPL terms.
!
! This is software with ABSOLUTELY NO WARRANTY.
! Use it at your OWN RISK. It's possible to damage e.g. hardware or your hearing
! due to a bug or for other reasons.
!
! *****************************************************************************
!
! oggwrite~ uses the ogg/vorbice library to encode audio data.
! The latest version of ogg/vorbis can be found at http://www.vorbice.com/
!
! Below is the original copyright information taken from the ogg/vorbis library:
!
!
! Copyright (c) 2001, Xiphophorus
!
! Redistribution and use in source and binary forms, with or without
! modification, are permitted provided that the following conditions
! are met:
!
! - Redistributions of source code must retain the above copyright
! notice, this list of conditions and the following disclaimer.
!
! - Redistributions in binary form must reproduce the above copyright
! notice, this list of conditions and the following disclaimer in the
! documentation and/or other materials provided with the distribution.
!
! - Neither the name of the Xiphophorus nor the names of its contributors
! may be used to endorse or promote products derived from this software
! without specific prior written permission.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
! A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
! *****************************************************************************
!
! Usage:
!
! Use message "vbr <samplerate> <channels> <quality>" to set the vorbis
! encoding parameters. Resampling is currently not supported, so 'samplerate'
! should be the one pd is running at. 'channels' specyfies the number of channels
! to stream. This can be set to 2 (default) or 1 which means mono stream taking
! the leftmost audio input only. 'quality' can be a value between 0.0 and 1.0
! giving the quality of the stream. 0.4 (default) results in a stream that's
! about 128kbps.
!
! Since Vorbis uses VBR encoding, bitrates vary depending on the type of audio
! signal to be encoded. A pure sine [osc~] results in the smalest stream, com-
! plex audio signals will increase this value significantly. To test the maximum
! bitrate that might occur for a quality setting use noise~ as signal input.
!
! Use message "vorbis <samplerate> <channels> <maximum bitrate> <nominal bit-
! rate> <minimal bitrate>" to set encoding quality on the basis of bitrates.
! When setting all three bitrate parameters to the same value one gets a
! constant bitrate stream. Values are in kbps!
!
! Message "open <filename>" opens an existing file. In case the file does not
! exist oggwrite~ will create it. Previously opened files will be closed. To
! determine how data should be written to the file choose "append" (default)
! or "truncate" (in case you want to overwrite data in your file).
!
! To set the comment tags in the ogg/vorbis header (which can be displayed by
! the receiving client) use message "<NAMEOFTAG> <comment>". Supported tags are:
! TITLE, ARTIST, GENRE, PERFORMER, LOCATION, COPYRIGHT, CONTACT, DESCRIPTION and
! DATE (which is automatically set to the date/time the broadcast started). To
! get spaces use '=' instead.
!
! Note that changing encoding parameters or header comments while oggwrite~ is
! recording to file might result in audible dropouts.
!
!
! Listening to it:
!
! To listen to ogg/vorbis encoded audio files many player need an extra plug-in.
! Have a look at http://www.vorbis.com/ to find the appropiate plug-in for your
! player.
!
!
!
!
!
! Latest version can be found at:
! http://www.akustische-kunst.de/puredata/
!
Please report any bugs to olaf.matthes at gmx.de!
Index: vorbisenc.h
===================================================================
RCS file: /cvsroot/pure-data/externals/pdogg/oggwrite~/vorbisenc.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** vorbisenc.h 23 Apr 2003 10:36:25 -0000 1.2
--- vorbisenc.h 4 Jan 2004 12:16:08 -0000 1.3
***************
*** 1,93 ****
! /********************************************************************
! * *
! * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
! * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
! * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
! * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
! * *
! * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
! * by the XIPHOPHORUS Company http://www.xiph.org/ *
! * *
! ********************************************************************
!
! function: vorbis encode-engine setup
! last mod: $Id$
!
! ********************************************************************/
!
! #ifndef _OV_ENC_H_
! #define _OV_ENC_H_
!
! #ifdef __cplusplus
! extern "C"
! {
! #endif /* __cplusplus */
!
! #include "codec.h"
!
! extern int vorbis_encode_init(vorbis_info *vi,
! long channels,
! long rate,
!
! long max_bitrate,
! long nominal_bitrate,
! long min_bitrate);
!
! extern int vorbis_encode_setup_managed(vorbis_info *vi,
! long channels,
! long rate,
!
! long max_bitrate,
! long nominal_bitrate,
! long min_bitrate);
!
! extern int vorbis_encode_setup_vbr(vorbis_info *vi,
! long channels,
! long rate,
!
! float /* quality level from 0. (lo) to 1. (hi) */
! );
!
! extern int vorbis_encode_init_vbr(vorbis_info *vi,
! long channels,
! long rate,
!
! float base_quality /* quality level from 0. (lo) to 1. (hi) */
! );
!
! extern int vorbis_encode_setup_init(vorbis_info *vi);
!
! extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
!
! #define OV_ECTL_RATEMANAGE_GET 0x10
!
! #define OV_ECTL_RATEMANAGE_SET 0x11
! #define OV_ECTL_RATEMANAGE_AVG 0x12
! #define OV_ECTL_RATEMANAGE_HARD 0x13
!
! #define OV_ECTL_LOWPASS_GET 0x20
! #define OV_ECTL_LOWPASS_SET 0x21
!
! #define OV_ECTL_IBLOCK_GET 0x30
! #define OV_ECTL_IBLOCK_SET 0x31
!
! struct ovectl_ratemanage_arg {
! int management_active;
!
! long bitrate_hard_min;
! long bitrate_hard_max;
! double bitrate_hard_window;
!
! long bitrate_av_lo;
! long bitrate_av_hi;
! double bitrate_av_window;
! double bitrate_av_window_center;
! };
!
! #ifdef __cplusplus
! }
! #endif /* __cplusplus */
!
! #endif
!
!
--- 1,93 ----
! /********************************************************************
! * *
! * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
! * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
! * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
! * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
! * *
! * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
! * by the XIPHOPHORUS Company http://www.xiph.org/ *
! * *
! ********************************************************************
!
! function: vorbis encode-engine setup
! last mod: $Id$
!
! ********************************************************************/
!
! #ifndef _OV_ENC_H_
! #define _OV_ENC_H_
!
! #ifdef __cplusplus
! extern "C"
! {
! #endif /* __cplusplus */
!
! #include "codec.h"
!
! extern int vorbis_encode_init(vorbis_info *vi,
! long channels,
! long rate,
!
! long max_bitrate,
! long nominal_bitrate,
! long min_bitrate);
!
! extern int vorbis_encode_setup_managed(vorbis_info *vi,
! long channels,
! long rate,
!
! long max_bitrate,
! long nominal_bitrate,
! long min_bitrate);
!
! extern int vorbis_encode_setup_vbr(vorbis_info *vi,
! long channels,
! long rate,
!
! float /* quality level from 0. (lo) to 1. (hi) */
! );
!
! extern int vorbis_encode_init_vbr(vorbis_info *vi,
! long channels,
! long rate,
!
! float base_quality /* quality level from 0. (lo) to 1. (hi) */
! );
!
! extern int vorbis_encode_setup_init(vorbis_info *vi);
!
! extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
!
! #define OV_ECTL_RATEMANAGE_GET 0x10
!
! #define OV_ECTL_RATEMANAGE_SET 0x11
! #define OV_ECTL_RATEMANAGE_AVG 0x12
! #define OV_ECTL_RATEMANAGE_HARD 0x13
!
! #define OV_ECTL_LOWPASS_GET 0x20
! #define OV_ECTL_LOWPASS_SET 0x21
!
! #define OV_ECTL_IBLOCK_GET 0x30
! #define OV_ECTL_IBLOCK_SET 0x31
!
! struct ovectl_ratemanage_arg {
! int management_active;
!
! long bitrate_hard_min;
! long bitrate_hard_max;
! double bitrate_hard_window;
!
! long bitrate_av_lo;
! long bitrate_av_hi;
! double bitrate_av_window;
! double bitrate_av_window_center;
! };
!
! #ifdef __cplusplus
! }
! #endif /* __cplusplus */
!
! #endif
!
!
- Previous message: [PD-cvs] externals/pdogg/oggread~ codec.h,1.2,1.3 help-oggread~.pd,1.2,1.3 oggread~.c,1.4,1.5 readme,1.2,1.3
- Next message: [PD-cvs] externals/grill/pool readme.txt,1.14,1.15
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Pd-cvs
mailing list