53 lines
1.7 KiB
C
53 lines
1.7 KiB
C
![]() |
//
|
||
|
// tools/audwaveencoder/waveencoder_psn.h
|
||
|
//
|
||
|
// Copyright (C) 1999-2006 Rockstar Games. All Rights Reserved.
|
||
|
//
|
||
|
|
||
|
#ifndef WAVE_ENCODER_PSN_H
|
||
|
#define WAVE_ENCODER_PSN_H
|
||
|
|
||
|
#include "waveencoder.h"
|
||
|
|
||
|
using namespace System;
|
||
|
|
||
|
namespace audWaveEncoding
|
||
|
{
|
||
|
//
|
||
|
// PURPOSE
|
||
|
// The PS3 Wave Encoder.
|
||
|
// SEE ALSO
|
||
|
// audWaveEncoder
|
||
|
public __gc class audWaveEncoderPSN : public audWaveEncoder
|
||
|
{
|
||
|
public:
|
||
|
audWaveEncoderPSN(String *fileFullLocalPath);
|
||
|
|
||
|
virtual bool Encode(
|
||
|
audWaveMetadataBaseWrapper *waveMetadataIn,
|
||
|
unsigned int waveSampleDataOffsetBytes,
|
||
|
void **waveMetadataOut,
|
||
|
unsigned int &waveMetadataOutLengthBytes,
|
||
|
void **waveSampleDataOut,
|
||
|
unsigned int &waveSampleDataOutLengthBytes,
|
||
|
int compression,
|
||
|
int &preloopPadding,
|
||
|
unsigned int &outBitsInLastPacket);
|
||
|
|
||
|
private:
|
||
|
bool PreProcessLoop(audWaveMetadataBase *waveMetadata, int &preloopPadding);
|
||
|
bool EncodeMp3(audWaveMetadataBase *waveMetadata, void **waveSampleDataOut,
|
||
|
unsigned int &waveSampleDataOutLengthBytes, int compression, int sampleRate,
|
||
|
unsigned int &samplesPerFrame);
|
||
|
bool GenerateSeekTable(unsigned char *waveSampleDataOut, unsigned int waveSampleDataOutLengthBytes,
|
||
|
unsigned int samplesPerFrame, unsigned short **seekTable, unsigned int &numFrames);
|
||
|
void PostProcessMp3Frames(audWaveMetadataBase *waveMetadata, void **waveSampleDataOut,
|
||
|
unsigned int &waveSampleDataOutLengthBytes, unsigned int samplesPerFrame,
|
||
|
unsigned short *seekTable, unsigned int &numFrames, unsigned short **trimmedSeekTable);
|
||
|
void WriteMp3File(audWaveMetadataBase *waveMetadata, void *waveSampleDataOut,
|
||
|
unsigned int waveSampleDataOutLengthBytes);
|
||
|
};
|
||
|
}
|
||
|
|
||
|
#endif // WAVE_ENCODER_PSN_H
|