Files
Herwig Birke f09e2d611a .
2018-02-27 17:26:29 +01:00

147 lines
2.9 KiB
C

/*
* mpg123 defines
* used source: musicout.h from mpegaudio package
*/
#ifndef __MPG123_H__
#define __MPG123_H__
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
//#include <gtk/gtk.h>
#include "dxhead.h"
#define real float
/* #define MAX_NAME_SIZE 81 */
#define SBLIMIT 32
#define SCALE_BLOCK 12
#define SSLIMIT 18
#define MPG_MD_STEREO 0
#define MPG_MD_JOINT_STEREO 1
#define MPG_MD_DUAL_CHANNEL 2
#define MPG_MD_MONO 3
struct al_table
{
short bits;
short d;
};
struct frame
{
struct al_table *alloc;
int (*synth) (real *, int, unsigned char *, int *);
int (*synth_mono) (real *, unsigned char *, int *);
int stereo;
int jsbound;
int single;
int II_sblimit;
int down_sample_sblimit;
int lsf;
int mpeg25;
int down_sample;
int header_change;
int lay;
int (*do_layer) (struct frame * fr);
int error_protection;
int bitrate_index;
int sampling_frequency;
int padding;
int extension;
int mode;
int mode_ext;
int copyright;
int original;
int emphasis;
int framesize; /* computed framesize */
};
struct bitstream_info
{
int bitindex;
unsigned char *wordpointer;
};
extern struct bitstream_info bsi;
/* ------ Declarations from "common.c" ------ */
extern unsigned int mpg123_get1bit(void);
extern unsigned int mpg123_getbits(int);
extern unsigned int mpg123_getbits_fast(int);
extern int mpg123_head_check(unsigned long);
extern void mpg123_set_pointer(long);
extern unsigned char *mpg123_pcm_sample;
extern int mpg123_pcm_point;
struct gr_info_s
{
int scfsi;
unsigned part2_3_length;
unsigned big_values;
unsigned scalefac_compress;
unsigned block_type;
unsigned mixed_block_flag;
unsigned table_select[3];
unsigned subblock_gain[3];
unsigned maxband[3];
unsigned maxbandl;
unsigned maxb;
unsigned region1start;
unsigned region2start;
unsigned preflag;
unsigned scalefac_scale;
unsigned count1table_select;
real *full_gain[3];
real *pow2gain;
};
struct III_sideinfo
{
unsigned main_data_begin;
unsigned private_bits;
struct
{
struct gr_info_s gr[2];
}
ch[2];
};
int mpg123_stream_check_for_xing_header(struct frame *fr, XHEADDATA * xhead);
extern int mpg123_do_layer3(struct frame *fr);
extern int mpg123_do_layer2(struct frame *fr);
extern int mpg123_do_layer1(struct frame *fr);
extern void mpg123_init_layer3(int);
extern void mpg123_init_layer2(void);
int mpg123_decode_header(struct frame *fr, unsigned long newhead);
double mpg123_compute_bpf(struct frame *fr);
double mpg123_compute_tpf(struct frame *fr);
extern unsigned char *mpg123_conv16to8;
extern long mpg123_freqs[9];
extern real mpg123_muls[27][64];
extern real mpg123_decwin[512 + 32];
extern real *mpg123_pnts[5];
extern int tabsel_123[2][3][16];
unsigned int mpg123_get_song_time(FILE * file);
#endif