annotate src/libmad-0.15.1b/huffman.h @ 8:c29fa680fb5a

Add sord, serd
author Chris Cannam
date Wed, 20 Mar 2013 15:23:43 +0000
parents c7265573341e
children
rev   line source
Chris@0 1 /*
Chris@0 2 * libmad - MPEG audio decoder library
Chris@0 3 * Copyright (C) 2000-2004 Underbit Technologies, Inc.
Chris@0 4 *
Chris@0 5 * This program is free software; you can redistribute it and/or modify
Chris@0 6 * it under the terms of the GNU General Public License as published by
Chris@0 7 * the Free Software Foundation; either version 2 of the License, or
Chris@0 8 * (at your option) any later version.
Chris@0 9 *
Chris@0 10 * This program is distributed in the hope that it will be useful,
Chris@0 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@0 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@0 13 * GNU General Public License for more details.
Chris@0 14 *
Chris@0 15 * You should have received a copy of the GNU General Public License
Chris@0 16 * along with this program; if not, write to the Free Software
Chris@0 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Chris@0 18 *
Chris@0 19 * $Id: huffman.h,v 1.11 2004/01/23 09:41:32 rob Exp $
Chris@0 20 */
Chris@0 21
Chris@0 22 # ifndef LIBMAD_HUFFMAN_H
Chris@0 23 # define LIBMAD_HUFFMAN_H
Chris@0 24
Chris@0 25 union huffquad {
Chris@0 26 struct {
Chris@0 27 unsigned short final : 1;
Chris@0 28 unsigned short bits : 3;
Chris@0 29 unsigned short offset : 12;
Chris@0 30 } ptr;
Chris@0 31 struct {
Chris@0 32 unsigned short final : 1;
Chris@0 33 unsigned short hlen : 3;
Chris@0 34 unsigned short v : 1;
Chris@0 35 unsigned short w : 1;
Chris@0 36 unsigned short x : 1;
Chris@0 37 unsigned short y : 1;
Chris@0 38 } value;
Chris@0 39 unsigned short final : 1;
Chris@0 40 };
Chris@0 41
Chris@0 42 union huffpair {
Chris@0 43 struct {
Chris@0 44 unsigned short final : 1;
Chris@0 45 unsigned short bits : 3;
Chris@0 46 unsigned short offset : 12;
Chris@0 47 } ptr;
Chris@0 48 struct {
Chris@0 49 unsigned short final : 1;
Chris@0 50 unsigned short hlen : 3;
Chris@0 51 unsigned short x : 4;
Chris@0 52 unsigned short y : 4;
Chris@0 53 } value;
Chris@0 54 unsigned short final : 1;
Chris@0 55 };
Chris@0 56
Chris@0 57 struct hufftable {
Chris@0 58 union huffpair const *table;
Chris@0 59 unsigned short linbits;
Chris@0 60 unsigned short startbits;
Chris@0 61 };
Chris@0 62
Chris@0 63 extern union huffquad const *const mad_huff_quad_table[2];
Chris@0 64 extern struct hufftable const mad_huff_pair_table[32];
Chris@0 65
Chris@0 66 # endif