You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdemultimedia/mpeglib/lib/splay/mpegAudioHeader.h

102 lines
2.3 KiB

/*
stores information after we found a header.
Copyright (C) 2000 Martin Vogt
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Library General Public License as published by
the Free Software Foundation.
For more information look at the file COPYRIGHT in this package
*/
#ifndef __MPEGHEADERINFO_H
#define __MPEGHEADERINFO_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define _FREQUENCY_44100 0
#define _FREQUENCY_48000 1
#define _FREQUENCY_32000 2
#define _MODE_FULLSTEREO 0
#define _MODE_JOINT 1
#define _MODE_DUAL 2
#define _MODE_SINGLE 3
#define _VERSION_1 0
#define _VERSION_2 1
#define MAXSUBBAND 32
#define SCALEBLOCK 12
class MpegAudioHeader {
int protection;
int layer;
int version;
int padding;
int frequency;
int frequencyHz;
int bitrateindex;
int extendedmode;
int mode;
int inputstereo;
int channelbitrate;
int tableindex;
int subbandnumber;
int stereobound;
int framesize;
int layer3slots;
int lmpeg25;
unsigned char header[4];
public:
MpegAudioHeader();
~MpegAudioHeader();
int parseHeader(unsigned char* buf);
inline int getProtection() { return protection; }
inline int getLayer() { return layer; }
inline int getVersion() { return version; }
inline int getPadding() { return padding; }
inline int getFrequency() { return frequency; }
inline int getFrequencyHz() { return frequencyHz; }
inline int getBitrateindex() { return bitrateindex; }
inline int getExtendedmode() { return extendedmode; }
inline int getMode() { return mode; }
inline int getInputstereo() { return inputstereo; }
inline int getFramesize() { return framesize; }
inline int getLayer25() { return lmpeg25; }
// MPEG layer 2
inline int getTableindex() { return tableindex; }
// MPEG layer 1/2
inline int getSubbandnumber() { return subbandnumber; }
inline int getStereobound() { return stereobound; }
// MPEG layer 3
inline int getLayer3slots() { return layer3slots; }
int getChannelbitrate();
inline unsigned char* getHeader() { return header; }
int getpcmperframe();
void copyTo(MpegAudioHeader* dest);
void print(const char* name);
void printStates(const char* name);
};
#endif