1 /********************************************************************
3 * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. *
4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
5 * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. *
6 * PLEASE READ THESE TERMS DISTRIBUTING. *
8 * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000 *
9 * by Monty <monty@xiph.org> and The XIPHOPHORUS Company *
10 * http://www.xiph.org/ *
12 ********************************************************************
14 function: pack/unpack/dup/clear the various residue backend setups
15 last mod: $Id: infores.c,v 1.1 2000/01/19 08:57:56 xiphmont Exp $
17 ********************************************************************/
21 #include "vorbis/codec.h"
23 #include "bookinternal.h"
25 /* handlers for residue backend 0 ***********************************/
27 /* unfinished as of 20000118 */
28 static void *_vorbis_res0_dup(void *source){
29 vorbis_info_res0 *d=malloc(sizeof(vorbis_info_res0));
30 memcpy(d,source,sizeof(vorbis_info_res0));
31 d->books=malloc(sizeof(int)*d->stages);
32 memcpy(d->books,((vorbis_info_res0 *)source)->books,
33 sizeof(int)*d->stages);
37 static void _vorbis_res0_free(void *i){
38 vorbis_info_res0 *d=(vorbis_info_res0 *)i;
40 if(d->books)free(d->books);
41 memset(d,0,sizeof(vorbis_info_res0));
47 static void _vorbis_res0_pack(oggpack_buffer *opb, void *vi){
50 static void *_vorbis_res0_unpack(oggpack_buffer *opb){
52 memset(&d,0,sizeof(d));
53 return(_vorbis_res0_dup(&d));
56 /* stuff em into arrays ************************************************/
59 static void *(*vorbis_res_dup_P[])(void *)={
63 static void (*vorbis_res_free_P[])(void *)={
67 static void (*vorbis_res_pack_P[])(oggpack_buffer *,void *)={
71 static void *(*vorbis_res_unpack_P[])(oggpack_buffer *)={