cog/Plugins/MAD/MADDecoder.h

61 lines
1004 B
Objective-C

//
// MADFile.h
// Cog
//
// Created by Vincent Spader on 6/17/06.
// Copyright 2006 Vincent Spader. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "MAD/mad.h"
#import "Plugin.h"
#define INPUT_BUFFER_SIZE 5 * 8192
@interface MADDecoder : NSObject <CogDecoder> {
struct mad_stream _stream;
struct mad_frame _frame;
struct mad_synth _synth;
unsigned char _inputBuffer[INPUT_BUFFER_SIZE + MAD_BUFFER_GUARD];
float *_outputBuffer;
long _outputFrames;
long _currentOutputFrames;
long _fileSize;
id<CogSource> _source;
BOOL _firstFrame;
// For gapless playback of mp3s
BOOL _foundXingHeader;
BOOL _foundLAMEHeader;
BOOL _foundVBRIHeader;
BOOL _foundID3v2;
BOOL _foundiTunSMPB;
long _framesDecoded;
uint16_t _startPadding;
uint16_t _endPadding;
BOOL inputEOF;
int channels;
float sampleRate;
int bitrate;
long totalFrames;
long framesToSkip;
int layer;
NSString *genre;
NSString *album;
NSString *artist;
NSString *title;
}
- (int)decodeMPEGFrame;
@end