cog/Plugins/MAD/MADDecoder.h

69 lines
1.1 KiB
C
Raw Normal View History

2006-06-19 00:39:41 +00:00
//
// MADFile.h
// Cog
//
// Created by Vincent Spader on 6/17/06.
// Copyright 2006 Vincent Spader. All rights reserved.
2006-06-19 00:39:41 +00:00
//
#import <Cocoa/Cocoa.h>
2006-06-19 00:39:41 +00:00
#import "MAD/mad.h"
#import "Plugin.h"
2006-06-19 00:39:41 +00:00
#define INPUT_BUFFER_SIZE 5*8192
struct audio_dither {
mad_fixed_t error[3];
mad_fixed_t random;
};
struct audio_stats {
unsigned long clipped_samples;
mad_fixed_t peak_clipping;
mad_fixed_t peak_sample;
};
@interface MADDecoder : NSObject <CogDecoder>
{
2006-06-19 00:39:41 +00:00
struct mad_stream _stream;
struct mad_frame _frame;
struct mad_synth _synth;
2007-10-18 02:33:12 +00:00
struct audio_dither channel_dither[2];
struct audio_stats stats;
2006-06-19 00:39:41 +00:00
unsigned char _inputBuffer[INPUT_BUFFER_SIZE+MAD_BUFFER_GUARD];
unsigned char *_outputBuffer;
int _outputFrames;
2008-02-17 19:59:01 +00:00
long _fileSize;
2006-06-19 00:39:41 +00:00
id<CogSource> _source;
2006-06-19 00:39:41 +00:00
2007-03-04 00:17:05 +00:00
BOOL _firstFrame;
2006-09-02 16:09:20 +00:00
//For gapless playback of mp3s
2007-10-18 02:33:12 +00:00
BOOL _foundXingHeader;
BOOL _foundLAMEHeader;
long _framesDecoded;
2007-10-18 02:33:12 +00:00
uint16_t _startPadding;
uint16_t _endPadding;
BOOL inputEOF;
int bytesPerFrame;
int channels;
int bitsPerSample;
float sampleRate;
int bitrate;
long totalFrames;
2006-06-19 00:39:41 +00:00
}
- (int)decodeMPEGFrame;
2006-06-19 00:39:41 +00:00
@end