Media Codec API just got a visit from the coding style police.

We now use "const" for the chunk buffer pointer returned by GetNextChunk,
because the buffer is not supposed to be modified by the codec.
size_t is used for the size where applicable. This matches BMediaDecoder.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13361 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Marcus Overhagen
2005-06-30 00:24:06 +00:00
parent 77a63c75c4
commit 0d1adad317
57 changed files with 211 additions and 208 deletions
+3 -3
View File
@@ -11,7 +11,7 @@ namespace BPrivate { namespace media {
class ChunkProvider {
public:
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader) = 0;
};
@@ -24,7 +24,7 @@ public:
virtual void GetCodecInfo(media_codec_info *codecInfo) = 0;
// Setup get's called with the info data from Reader::GetStreamInfo
virtual status_t Setup(media_format *ioEncodedFormat, const void *infoBuffer, int32 infoSize) = 0;
virtual status_t Setup(media_format *ioEncodedFormat, const void *infoBuffer, size_t infoSize) = 0;
virtual status_t NegotiateOutputFormat(media_format *ioDecodedFormat) = 0;
@@ -35,7 +35,7 @@ public:
virtual status_t Decode(void *buffer, int64 *frameCount,
media_header *mediaHeader, media_decode_info *info = 0) = 0;
status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
void Setup(ChunkProvider *provider);
+3 -3
View File
@@ -14,8 +14,8 @@ struct stream_info
status_t status;
void * cookie;
bool hasCookie;
void * infoBuffer;
int32 infoBufferSize;
const void * infoBuffer;
size_t infoBufferSize;
ChunkCache * chunkCache;
media_format encodedFormat;
};
@@ -40,7 +40,7 @@ public:
int64 *frame, bigtime_t *time);
status_t GetNextChunk(int32 stream,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
status_t CreateDecoder(int32 stream, Decoder **decoder, media_codec_info *mci);
+2 -2
View File
@@ -27,14 +27,14 @@ public:
virtual status_t FreeCookie(void *cookie) = 0;
virtual status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize) = 0;
media_format *format, const void **infoBuffer, size_t *infoSize) = 0;
virtual status_t Seek(void *cookie,
uint32 seekTo,
int64 *frame, bigtime_t *time) = 0;
virtual status_t GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader) = 0;
BDataIO * Source();
@@ -62,7 +62,7 @@ AC3Decoder::GetCodecInfo(media_codec_info *info)
status_t
AC3Decoder::Setup(media_format *ioEncodedFormat,
const void *infoBuffer, int32 infoSize)
const void *infoBuffer, size_t infoSize)
{
return B_OK;
}
@@ -34,7 +34,7 @@ public:
void GetCodecInfo(media_codec_info *info);
status_t Setup(media_format *ioEncodedFormat,
const void *infoBuffer, int32 infoSize);
const void *infoBuffer, size_t infoSize);
status_t NegotiateOutputFormat(media_format *ioDecodedFormat);
@@ -57,8 +57,8 @@ private:
void * fInputBuffer;
int fInputBufferSize;
void * fInputChunk;
int32 fInputChunkSize;
const void *fInputChunk;
size_t fInputChunkSize;
int fInputChunkOffset;
bigtime_t fStartTime;
@@ -319,7 +319,7 @@ aiffReader::FreeCookie(void *cookie)
status_t
aiffReader::GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize)
media_format *format, const void **infoBuffer, size_t *infoSize)
{
*frameCount = fFrameCount;
*duration = fDuration;
@@ -376,7 +376,7 @@ aiffReader::Seek(void *cookie,
status_t
aiffReader::GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
// XXX it might be much better to not return any start_time information for encoded formats here,
@@ -44,14 +44,14 @@ public:
status_t FreeCookie(void *cookie);
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie,
uint32 seekTo,
int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
private:
uint32 DecodeFrameRate(void *_80bit_float);
@@ -292,7 +292,7 @@ auReader::FreeCookie(void *cookie)
status_t
auReader::GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize)
media_format *format, const void **infoBuffer, size_t *infoSize)
{
*frameCount = fFrameCount;
*duration = fDuration;
@@ -349,7 +349,7 @@ auReader::Seek(void *cookie,
status_t
auReader::GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
// XXX it might be much better to not return any start_time information for encoded formats here,
@@ -44,14 +44,14 @@ public:
status_t FreeCookie(void *cookie);
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie,
uint32 seekTo,
int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
BPositionIO *Source() { return fSource; }
+15 -15
View File
@@ -97,23 +97,23 @@ avCodec::GetCodecInfo(media_codec_info *mci)
status_t
avCodec::Setup(media_format *input_format, const void *in_info, int32 in_size)
avCodec::Setup(media_format *ioEncodedFormat, const void *infoBuffer, size_t infoSize)
{
if (input_format->type != B_MEDIA_ENCODED_AUDIO && input_format->type != B_MEDIA_ENCODED_VIDEO)
if (ioEncodedFormat->type != B_MEDIA_ENCODED_AUDIO && ioEncodedFormat->type != B_MEDIA_ENCODED_VIDEO)
return B_ERROR;
isAudio = (input_format->type == B_MEDIA_ENCODED_AUDIO);
isAudio = (ioEncodedFormat->type == B_MEDIA_ENCODED_AUDIO);
if (isAudio && !fOutputBuffer)
fOutputBuffer = new char[100000];
#if DEBUG
char buffer[1024];
string_for_format(*input_format, buffer, sizeof(buffer));
string_for_format(*ioEncodedFormat, buffer, sizeof(buffer));
PRINT(("[%c] input_format=%s\n", isAudio?('a'):('v'), buffer));
PRINT(("[%c] in_info_size=%ld\n", isAudio?('a'):('v'), in_size));
PRINT(("[%c] user_data_type=%08lx\n", isAudio?('a'):('v'), input_format->user_data_type));
// PRINT(("[%c] meta_data_size=%ld\n", isAudio?('a'):('v'), input_format->meta_data_size));
PRINT(("[%c] user_data_type=%08lx\n", isAudio?('a'):('v'), ioEncodedFormat->user_data_type));
// PRINT(("[%c] meta_data_size=%ld\n", isAudio?('a'):('v'), ioEncodedFormat->meta_data_size));
#endif
media_format_description descr;
@@ -121,8 +121,8 @@ avCodec::Setup(media_format *input_format, const void *in_info, int32 in_size)
ffcodec_index_in_table = i;
uint64 cid;
if(BMediaFormats().GetCodeFor(*input_format,gCodecTable[i].family,&descr) == B_OK
&& gCodecTable[i].type == input_format->type)
if (BMediaFormats().GetCodeFor(*ioEncodedFormat, gCodecTable[i].family, &descr) == B_OK
&& gCodecTable[i].type == ioEncodedFormat->type)
{
PRINT((" codec id = \"%c%c%c%c\"\n", (descr.u.avi.codec >> 24) & 0xff,
(descr.u.avi.codec >> 16) & 0xff,
@@ -159,8 +159,8 @@ avCodec::Setup(media_format *input_format, const void *in_info, int32 in_size)
}
if (gCodecTable[i].family == B_WAV_FORMAT_FAMILY) {
const wave_format_ex *wfmt_data = (const wave_format_ex *)input_format->MetaData();
int wfmt_size = input_format->MetaDataSize();
const wave_format_ex *wfmt_data = (const wave_format_ex *)ioEncodedFormat->MetaData();
int wfmt_size = ioEncodedFormat->MetaDataSize();
if (wfmt_data && wfmt_size) {
fBlockAlign = wfmt_data->block_align;
fExtraDataSize = wfmt_data->extra_size;
@@ -171,7 +171,7 @@ avCodec::Setup(media_format *input_format, const void *in_info, int32 in_size)
}
}
fInputFormat = *input_format;
fInputFormat = *ioEncodedFormat;
return B_OK;
}
}
@@ -377,7 +377,7 @@ avCodec::Decode(void *out_buffer, int64 *out_frameCount,
if (fChunkBufferSize == 0) {
media_header chunk_mh;
status_t err;
err = GetNextChunk((void **)&fChunkBuffer, &fChunkBufferSize, &chunk_mh);
err = GetNextChunk(&fChunkBuffer, &fChunkBufferSize, &chunk_mh);
if (err != B_OK || fChunkBufferSize < 0) {
printf("GetNextChunk error\n");
fChunkBufferSize = 0;
@@ -391,7 +391,7 @@ avCodec::Decode(void *out_buffer, int64 *out_frameCount,
}
if (fOutputBufferSize == 0) {
int len, out_size;
len = avcodec_decode_audio(ffc, (short *)fOutputBuffer, &out_size, (uint8_t *)fChunkBuffer + fChunkBufferOffset, fChunkBufferSize);
len = avcodec_decode_audio(ffc, (short *)fOutputBuffer, &out_size, const_cast<uint8_t *>(static_cast<const uint8_t *>(fChunkBuffer)) + fChunkBufferOffset, fChunkBufferSize);
if (len < 0) {
printf("########### audio decode error, fChunkBufferSize %ld, fChunkBufferOffset %ld\n", fChunkBufferSize, fChunkBufferOffset);
out_size = 0;
@@ -411,8 +411,8 @@ avCodec::Decode(void *out_buffer, int64 *out_frameCount,
media_header chunk_mh;
status_t err;
void *data;
int32 size;
const void *data;
size_t size;
err = GetNextChunk(&data, &size, &chunk_mh);
if (err != B_OK) {
+4 -4
View File
@@ -37,8 +37,8 @@ class avCodec : public Decoder
virtual void GetCodecInfo(media_codec_info *mci);
virtual status_t Setup(media_format *input_format,
const void *in_info, int32 in_size);
virtual status_t Setup(media_format *ioEncodedFormat,
const void *infoBuffer, size_t infoSize);
virtual status_t NegotiateOutputFormat(media_format *output_format);
@@ -83,9 +83,9 @@ class avCodec : public Decoder
float fOutputFrameRate;
int fOutputFrameSize; // sample size * channel count
char * fChunkBuffer;
const void *fChunkBuffer;
int32 fChunkBufferOffset;
int32 fChunkBufferSize;
size_t fChunkBufferSize;
char * fOutputBuffer;
int32 fOutputBufferOffset;
@@ -346,7 +346,7 @@ aviReader::FreeCookie(void *_cookie)
status_t
aviReader::GetStreamInfo(void *_cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize)
media_format *format, const void **infoBuffer, size_t *infoSize)
{
avi_cookie *cookie = (avi_cookie *)_cookie;
@@ -377,7 +377,7 @@ aviReader::Seek(void *cookie,
status_t
aviReader::GetNextChunk(void *_cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
avi_cookie *cookie = (avi_cookie *)_cookie;
@@ -44,14 +44,14 @@ public:
status_t FreeCookie(void *cookie);
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie,
uint32 seekTo,
int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
private:
OpenDMLFile *fFile;
@@ -1904,7 +1904,7 @@ static int readMoreBlocks(MatroskaFile *mf) {
if (++retries > 3) // don't try too hard
goto ex;
for (;;cp) {
for (;;cp) { // <-- XXX TODO FIX THIS!
if (filepos(mf) >= mf->pSegmentTop) {
mf->readPosition = filepos(mf);
goto ex;
@@ -332,7 +332,7 @@ mkvReader::FreeCookie(void *_cookie)
status_t
mkvReader::GetStreamInfo(void *_cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize)
media_format *format, const void **infoBuffer, size_t *infoSize)
{
mkv_cookie *cookie = (mkv_cookie *)_cookie;
*frameCount = cookie->frame_count;
@@ -385,7 +385,7 @@ mkvReader::Seek(void *_cookie,
status_t
mkvReader::GetNextChunk(void *_cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
mkv_cookie *cookie = (mkv_cookie *)_cookie;
@@ -46,14 +46,14 @@ public:
status_t FreeCookie(void *cookie);
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie,
uint32 seekTo,
int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
private:
status_t SetupVideoCookie(mkv_cookie *cookie);
@@ -416,7 +416,7 @@ movReader::FreeCookie(void *_cookie)
status_t
movReader::GetStreamInfo(void *_cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize)
media_format *format, const void **infoBuffer, size_t *infoSize)
{
mov_cookie *cookie = (mov_cookie *)_cookie;
@@ -469,7 +469,7 @@ movReader::Seek(void *cookie,
status_t
movReader::GetNextChunk(void *_cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
mov_cookie *cookie = (mov_cookie *)_cookie;
@@ -44,14 +44,14 @@ public:
status_t FreeCookie(void *cookie);
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie,
uint32 seekTo,
int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
private:
MOVFileReader *theFileReader;
@@ -122,7 +122,7 @@ mp3Decoder::GetCodecInfo(media_codec_info *info)
status_t
mp3Decoder::Setup(media_format *ioEncodedFormat,
const void *infoBuffer, int32 infoSize)
const void *infoBuffer, size_t infoSize)
{
// decode first chunk to initialize mpeg library
if (B_OK != DecodeNextChunk()) {
@@ -237,8 +237,8 @@ mp3Decoder::Decode(void *buffer, int64 *frameCount,
status_t
mp3Decoder::DecodeNextChunk()
{
void *chunkBuffer;
int32 chunkSize;
const void *chunkBuffer;
size_t chunkSize;
media_header mh;
int outsize;
int result;
@@ -37,7 +37,7 @@ public:
void GetCodecInfo(media_codec_info *codecInfo);
status_t Setup(media_format *ioEncodedFormat,
const void *infoBuffer, int32 infoSize);
const void *infoBuffer, size_t infoSize);
status_t NegotiateOutputFormat(media_format *ioDecodedFormat);
@@ -301,7 +301,7 @@ mp3Reader::FreeCookie(void *cookie)
status_t
mp3Reader::GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize)
media_format *format, const void **infoBuffer, size_t *infoSize)
{
mp3data *data = reinterpret_cast<mp3data *>(cookie);
@@ -382,7 +382,7 @@ mp3Reader::Seek(void *cookie,
status_t
mp3Reader::GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
mp3data *data = reinterpret_cast<mp3data *>(cookie);
@@ -47,14 +47,14 @@ public:
status_t FreeCookie(void *cookie);
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie,
uint32 seekTo,
int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
BPositionIO *Source() { return fSeekableSource; }
@@ -30,7 +30,7 @@ MusePackDecoder::GetCodecInfo(media_codec_info *info)
status_t
MusePackDecoder::Setup(media_format *ioEncodedFormat, const void *infoBuffer, int32 infoSize)
MusePackDecoder::Setup(media_format *ioEncodedFormat, const void *infoBuffer, size_t infoSize)
{
if (infoBuffer == NULL || infoSize != sizeof(MPC_decoder))
return B_BAD_VALUE;
@@ -20,7 +20,7 @@ class MusePackDecoder : public Decoder {
void GetCodecInfo(media_codec_info *info);
status_t Setup(media_format *ioEncodedFormat,
const void *infoBuffer, int32 infoSize);
const void *infoBuffer, size_t infoSize);
status_t NegotiateOutputFormat(media_format *ioDecodedFormat);
@@ -116,7 +116,7 @@ MusePackReader::FreeCookie(void *cookie)
status_t
MusePackReader::GetStreamInfo(void *cookie, int64 *_frameCount, bigtime_t *_duration,
media_format *format, void **_infoBuffer, int32 *_infoSize)
media_format *format, const void **_infoBuffer, size_t *_infoSize)
{
if (cookie != NULL)
return B_BAD_VALUE;
@@ -145,7 +145,7 @@ MusePackReader::Seek(void *cookie, uint32 seekTo, int64 *frame, bigtime_t *time)
status_t
MusePackReader::GetNextChunk(void *cookie, void **chunkBuffer, int32 *chunkSize,
MusePackReader::GetNextChunk(void *cookie, const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
// this one will never be called by our decoder
@@ -28,12 +28,12 @@ class MusePackReader : public Reader {
status_t FreeCookie(void *cookie);
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie, uint32 seekTo,
int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie, void **chunkBuffer, int32 *chunkSize,
status_t GetNextChunk(void *cookie, const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
private:
@@ -290,7 +290,7 @@ OggReader::FreeCookie(void *cookie)
status_t
OggReader::GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize)
media_format *format, const void **infoBuffer, size_t *infoSize)
{
TRACE("OggReader::GetStreamInfo\n");
*infoBuffer = 0;
@@ -316,7 +316,7 @@ OggReader::Seek(void *cookie,
status_t
OggReader::GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
// TRACE("OggReader::GetNextChunk\n");
@@ -30,9 +30,9 @@ public:
// delegated to OggTrack
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie, uint32 seekTo, int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie, void **chunkBuffer, int32 *chunkSize,
status_t GetNextChunk(void *cookie, const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
private:
@@ -450,7 +450,7 @@ OggSeekable::Seek(uint32 seekTo, int64 *frame, bigtime_t *time)
}*/
status_t
OggSeekable::GetNextChunk(void **chunkBuffer, int32 *chunkSize,
OggSeekable::GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
ogg_packet packet;
+1 -1
View File
@@ -16,7 +16,7 @@ public:
virtual status_t GetStreamInfo(int64 *frameCount, bigtime_t *duration,
media_format *format);
virtual status_t Seek(uint32 seekTo, int64 *frame, bigtime_t *time);
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
protected:
@@ -147,7 +147,7 @@ OggSpeexStream::GetStreamInfo(int64 *frameCount, bigtime_t *duration,
status_t
OggSpeexStream::GetNextChunk(void **chunkBuffer, int32 *chunkSize,
OggSpeexStream::GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
status_t result = GetPacket(&fChunkPacket);
@@ -14,7 +14,7 @@ public:
virtual status_t GetStreamInfo(int64 *frameCount, bigtime_t *duration,
media_format *format);
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
};
+1 -1
View File
@@ -132,7 +132,7 @@ OggStream::GetStreamInfo(int64 *frameCount, bigtime_t *duration,
// the default chunk is an ogg packet
status_t
OggStream::GetNextChunk(void **chunkBuffer, int32 *chunkSize,
OggStream::GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
status_t result = GetPacket(&fChunkPacket);
+1 -1
View File
@@ -15,7 +15,7 @@ public:
// interface for OggReader
virtual status_t GetStreamInfo(int64 *frameCount, bigtime_t *duration,
media_format *format);
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
protected:
@@ -288,7 +288,7 @@ OggTobiasSeekable::GetStreamInfo(int64 *frameCount, bigtime_t *duration,
status_t
OggTobiasSeekable::GetNextChunk(void **chunkBuffer, int32 *chunkSize,
OggTobiasSeekable::GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
status_t result = inherited::GetNextChunk(chunkBuffer, chunkSize, mediaHeader);
@@ -16,7 +16,7 @@ public:
virtual status_t GetStreamInfo(int64 *frameCount, bigtime_t *duration,
media_format *format);
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
private:
@@ -225,7 +225,7 @@ OggTobiasStream::GetStreamInfo(int64 *frameCount, bigtime_t *duration,
status_t
OggTobiasStream::GetNextChunk(void **chunkBuffer, int32 *chunkSize,
OggTobiasStream::GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
status_t result = GetPacket(&fChunkPacket);
@@ -14,7 +14,7 @@ public:
virtual status_t GetStreamInfo(int64 *frameCount, bigtime_t *duration,
media_format *format);
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
// reader push input function
+1 -1
View File
@@ -66,7 +66,7 @@ OggTrack::Seek(uint32 seekTo, int64 *frame, bigtime_t *time)
status_t
OggTrack::GetNextChunk(void **chunkBuffer, int32 *chunkSize,
OggTrack::GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
*chunkBuffer = 0;
+1 -1
View File
@@ -24,7 +24,7 @@ public:
virtual status_t GetStreamInfo(int64 *frameCount, bigtime_t *duration,
media_format *format);
virtual status_t Seek(uint32 seekTo, int64 *frame, bigtime_t *time);
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
protected:
@@ -35,11 +35,11 @@ typedef double float64;
class uint8_sample
{
public:
inline operator uint8() { return data; }
inline operator int8() { return (int32)data - 128; }
inline operator int16() { return ((int32)data - 128) << 8; }
inline operator int32() { return ((int32)data - 128) << 24; }
inline operator float() { return ((int32)data - 128) * (1.0f / 127.0f); }
inline operator uint8() const { return data; }
inline operator int8() const { return (int32)data - 128; }
inline operator int16() const { return ((int32)data - 128) << 8; }
inline operator int32() const { return ((int32)data - 128) << 24; }
inline operator float() const { return ((int32)data - 128) * (1.0f / 127.0f); }
private:
uint8 data;
} _PACKED;
@@ -47,11 +47,11 @@ private:
class int8_sample
{
public:
inline operator uint8() { return (int32)data + 128; }
inline operator int8() { return data; }
inline operator int16() { return (int16)data << 8; }
inline operator int32() { return (int32)data << 24; }
inline operator float() { return (int32)data * (1.0f / 127.0f); }
inline operator uint8() const { return (int32)data + 128; }
inline operator int8() const { return data; }
inline operator int16() const { return (int16)data << 8; }
inline operator int32() const { return (int32)data << 24; }
inline operator float() const { return (int32)data * (1.0f / 127.0f); }
private:
int8 data;
} _PACKED;
@@ -59,11 +59,11 @@ private:
class int16_sample
{
public:
inline operator uint8() { return (uint8)((int8)(data >> 8) + 128); }
inline operator int8() { return (int8)(data >> 8); }
inline operator int16() { return data; }
inline operator int32() { return (int32)data << 16; }
inline operator float() { return data * (1.0f / 32767.0f); }
inline operator uint8() const { return (uint8)((int8)(data >> 8) + 128); }
inline operator int8() const { return (int8)(data >> 8); }
inline operator int16() const { return data; }
inline operator int32() const { return (int32)data << 16; }
inline operator float() const { return data * (1.0f / 32767.0f); }
private:
int16 data;
} _PACKED;
@@ -72,21 +72,21 @@ class int24_sample
{
public:
#if B_HOST_IS_LENDIAN
inline operator uint8() { return (int32)data[2] + 128; }
inline operator int8() { return (int8)data[2]; }
inline operator int16() { return (int16)((uint32)data[2] << 8 | (uint32)data[1]); }
inline operator int32() { return (int32)((uint32)data[2] << 24 | (uint32)data[1] << 16 | (uint32)data[0] << 8); }
inline operator float() { return (int32)((uint32)data[2] << 16 | (uint32)data[1] << 8 | (uint32)data[0]) * (1.0f / (2147483647.0f / 256)); }
inline operator uint8() const { return (int32)data[2] + 128; }
inline operator int8() const { return (int8)data[2]; }
inline operator int16() const { return (int16)((uint32)data[2] << 8 | (uint32)data[1]); }
inline operator int32() const { return (int32)((uint32)data[2] << 24 | (uint32)data[1] << 16 | (uint32)data[0] << 8); }
inline operator float() const { return (int32)((uint32)data[2] << 16 | (uint32)data[1] << 8 | (uint32)data[0]) * (1.0f / (2147483647.0f / 256)); }
// XXX is the line above correct? long version:
// inline operator float() { return (int32)((uint32)data[2] << 24 | (uint32)data[1] << 16 | (uint32)data[0] << 8) * (1.0f / 2147483647.0f); }
// inline operator float() const { return (int32)((uint32)data[2] << 24 | (uint32)data[1] << 16 | (uint32)data[0] << 8) * (1.0f / 2147483647.0f); }
#else
inline operator uint8() { return (int32)data[0] + 128; }
inline operator int8() { return (int8)data[0]; }
inline operator int16() { return (int16)((uint32)data[0] << 8 | (uint32)data[1]); }
inline operator int32() { return (int32)((uint32)data[0] << 24 | (uint32)data[1] << 16 | (uint32)data[2] << 8); }
inline operator float() { return (int32)((uint32)data[0] << 16 | (uint32)data[1] << 8 | (uint32)data[2]) * (1.0f / (2147483647.0f / 256)); }
inline operator uint8() const { return (int32)data[0] + 128; }
inline operator int8() const { return (int8)data[0]; }
inline operator int16() const { return (int16)((uint32)data[0] << 8 | (uint32)data[1]); }
inline operator int32() const { return (int32)((uint32)data[0] << 24 | (uint32)data[1] << 16 | (uint32)data[2] << 8); }
inline operator float() const { return (int32)((uint32)data[0] << 16 | (uint32)data[1] << 8 | (uint32)data[2]) * (1.0f / (2147483647.0f / 256)); }
// XXX is the line above correct? long version:
// inline operator float() { return (int32)((uint32)data[0] << 24 | (uint32)data[1] << 16 | (uint32)data[2] << 8) * (1.0f / 2147483647.0f); }
// inline operator float() const { return (int32)((uint32)data[0] << 24 | (uint32)data[1] << 16 | (uint32)data[2] << 8) * (1.0f / 2147483647.0f); }
#endif
private:
uint8 data[3];
@@ -95,11 +95,11 @@ private:
class int32_sample
{
public:
inline operator uint8() { return (int8)(data >> 24) + 128; }
inline operator int8() { return (int8)(data >> 24); }
inline operator int16() { return (int16)(data >> 16); }
inline operator int32() { return data; }
inline operator float() { return data * (1.0f / 2147483647.0f); }
inline operator uint8() const { return (int8)(data >> 24) + 128; }
inline operator int8() const { return (int8)(data >> 24); }
inline operator int16() const { return (int16)(data >> 16); }
inline operator int32() const { return data; }
inline operator float() const { return data * (1.0f / 2147483647.0f); }
private:
int32 data;
} _PACKED;
@@ -107,11 +107,11 @@ private:
class float32_sample
{
public:
inline operator uint8() { int32 v = (int32)(data * 127.0f) + 128; if (v > 255) v = 255; else if (v < 0) v = 0; return v; }
inline operator int8() { int32 v = (int32)(data * 127.0f); if (v > 127) v = 127; else if (v < -127) v = -127; return v; }
inline operator int16() { int32 v = (int32)(data * 32767.0f); if (v > 32767) v = 32767; else if (v < -32767) v = -32767; return v; }
inline operator int32() { float32 v; if (data < -1.0f) v = -1.0f; else if (data > 1.0f) v = 1.0f; else v = data; return (int32)(v * 2147483647.0f); }
inline operator float() { return data; }
inline operator uint8() const { int32 v = (int32)(data * 127.0f) + 128; if (v > 255) v = 255; else if (v < 0) v = 0; return v; }
inline operator int8() const { int32 v = (int32)(data * 127.0f); if (v > 127) v = 127; else if (v < -127) v = -127; return v; }
inline operator int16() const { int32 v = (int32)(data * 32767.0f); if (v > 32767) v = 32767; else if (v < -32767) v = -32767; return v; }
inline operator int32() const { float32 v; if (data < -1.0f) v = -1.0f; else if (data > 1.0f) v = 1.0f; else v = data; return (int32)(v * 2147483647.0f); }
inline operator float() const { return data; }
private:
float32 data;
} _PACKED;
@@ -119,19 +119,19 @@ private:
class float64_sample
{
public:
inline operator uint8() { int32 v = (int32)(data * 127.0f) + 128; if (v > 255) v = 255; else if (v < 0) v = 0; return v; }
inline operator int8() { int32 v = (int32)(data * 127.0f); if (v > 127) v = 127; else if (v < -127) v = -127; return v; }
inline operator int16() { int32 v = (int32)(data * 32767.0f); if (v > 32767) v = 32767; else if (v < -32767) v = -32767; return v; }
inline operator int32() { float64 v; if (data < -1.0) v = -1.0; else if (data > 1.0) v = 1.0; else v = data; return (int32)(v * 2147483647.0f); }
inline operator float() { return data; }
inline operator uint8() const { int32 v = (int32)(data * 127.0f) + 128; if (v > 255) v = 255; else if (v < 0) v = 0; return v; }
inline operator int8() const { int32 v = (int32)(data * 127.0f); if (v > 127) v = 127; else if (v < -127) v = -127; return v; }
inline operator int16() const { int32 v = (int32)(data * 32767.0f); if (v > 32767) v = 32767; else if (v < -32767) v = -32767; return v; }
inline operator int32() const { float64 v; if (data < -1.0) v = -1.0; else if (data > 1.0) v = 1.0; else v = data; return (int32)(v * 2147483647.0f); }
inline operator float() const { return data; }
private:
float64 data;
} _PACKED;
#define CONVERT(src_type, dst_type) \
void src_type##_to_##dst_type (void *dst, void *src, int32 count) \
void src_type##_to_##dst_type (void *dst, const void *src, int32 count) \
{ \
register src_type##_sample *s = (src_type##_sample *) src; \
register const src_type##_sample *s = (const src_type##_sample *) src; \
register dst_type *d = (dst_type *) dst; \
register int32 c = count >> 4; \
if (!c) goto fin1; \
@@ -27,47 +27,47 @@
#include <SupportDefs.h>
void uint8_to_uint8(void *dst, void *src, int32 count);
void uint8_to_int8(void *dst, void *src, int32 count);
void uint8_to_int16(void *dst, void *src, int32 count);
void uint8_to_int32(void *dst, void *src, int32 count);
void uint8_to_float32(void *dst, void *src, int32 count);
void uint8_to_uint8(void *dst, const void *src, int32 count);
void uint8_to_int8(void *dst, const void *src, int32 count);
void uint8_to_int16(void *dst, const void *src, int32 count);
void uint8_to_int32(void *dst, const void *src, int32 count);
void uint8_to_float32(void *dst, const void *src, int32 count);
void int8_to_uint8(void *dst, void *src, int32 count);
void int8_to_int8(void *dst, void *src, int32 count);
void int8_to_int16(void *dst, void *src, int32 count);
void int8_to_int32(void *dst, void *src, int32 count);
void int8_to_float32(void *dst, void *src, int32 count);
void int8_to_uint8(void *dst, const void *src, int32 count);
void int8_to_int8(void *dst, const void *src, int32 count);
void int8_to_int16(void *dst, const void *src, int32 count);
void int8_to_int32(void *dst, const void *src, int32 count);
void int8_to_float32(void *dst, const void *src, int32 count);
void int16_to_uint8(void *dst, void *src, int32 count);
void int16_to_int8(void *dst, void *src, int32 count);
void int16_to_int16(void *dst, void *src, int32 count);
void int16_to_int32(void *dst, void *src, int32 count);
void int16_to_float32(void *dst, void *src, int32 count);
void int16_to_uint8(void *dst, const void *src, int32 count);
void int16_to_int8(void *dst, const void *src, int32 count);
void int16_to_int16(void *dst, const void *src, int32 count);
void int16_to_int32(void *dst, const void *src, int32 count);
void int16_to_float32(void *dst, const void *src, int32 count);
void int24_to_uint8(void *dst, void *src, int32 count);
void int24_to_int8(void *dst, void *src, int32 count);
void int24_to_int16(void *dst, void *src, int32 count);
void int24_to_int32(void *dst, void *src, int32 count);
void int24_to_float32(void *dst, void *src, int32 count);
void int24_to_uint8(void *dst, const void *src, int32 count);
void int24_to_int8(void *dst, const void *src, int32 count);
void int24_to_int16(void *dst, const void *src, int32 count);
void int24_to_int32(void *dst, const void *src, int32 count);
void int24_to_float32(void *dst, const void *src, int32 count);
void int32_to_uint8(void *dst, void *src, int32 count);
void int32_to_int8(void *dst, void *src, int32 count);
void int32_to_int16(void *dst, void *src, int32 count);
void int32_to_int32(void *dst, void *src, int32 count);
void int32_to_float32(void *dst, void *src, int32 count);
void int32_to_uint8(void *dst, const void *src, int32 count);
void int32_to_int8(void *dst, const void *src, int32 count);
void int32_to_int16(void *dst, const void *src, int32 count);
void int32_to_int32(void *dst, const void *src, int32 count);
void int32_to_float32(void *dst, const void *src, int32 count);
void float32_to_uint8(void *dst, void *src, int32 count);
void float32_to_int8(void *dst, void *src, int32 count);
void float32_to_int16(void *dst, void *src, int32 count);
void float32_to_int32(void *dst, void *src, int32 count);
void float32_to_float32(void *dst, void *src, int32 count);
void float32_to_uint8(void *dst, const void *src, int32 count);
void float32_to_int8(void *dst, const void *src, int32 count);
void float32_to_int16(void *dst, const void *src, int32 count);
void float32_to_int32(void *dst, const void *src, int32 count);
void float32_to_float32(void *dst, const void *src, int32 count);
void float64_to_uint8(void *dst, void *src, int32 count);
void float64_to_int8(void *dst, void *src, int32 count);
void float64_to_int16(void *dst, void *src, int32 count);
void float64_to_int32(void *dst, void *src, int32 count);
void float64_to_float32(void *dst, void *src, int32 count);
void float64_to_uint8(void *dst, const void *src, int32 count);
void float64_to_int8(void *dst, const void *src, int32 count);
void float64_to_int16(void *dst, const void *src, int32 count);
void float64_to_int32(void *dst, const void *src, int32 count);
void float64_to_float32(void *dst, const void *src, int32 count);
void swap_int16(void *data, int32 count);
void swap_int24(void *data, int32 count);
@@ -59,7 +59,7 @@ RawDecoder::GetCodecInfo(media_codec_info *info)
status_t
RawDecoder::Setup(media_format *ioEncodedFormat,
const void *infoBuffer, int32 infoSize)
const void *infoBuffer, size_t infoSize)
{
char s[200];
string_for_format(*ioEncodedFormat, s, sizeof(s));
@@ -478,20 +478,20 @@ RawDecoder::Decode(void *buffer, int64 *frameCount,
if (fChunkSize == 0) {
media_header mh;
status_t err;
err = GetNextChunk((void **)&fChunkBuffer, &fChunkSize, &mh);
err = GetNextChunk(&fChunkBuffer, &fChunkSize, &mh);
if (err != B_OK || fChunkSize < fInputFrameSize) {
fChunkSize = 0;
break;
}
if (fSwapInput)
fSwapInput(fChunkBuffer, fChunkSize / fInputSampleSize);
fSwapInput(const_cast<void *>(fChunkBuffer), fChunkSize / fInputSampleSize); // XXX TODO! FIX THIS, we write to a const buffer!!!
fStartTime = mh.start_time;
continue;
}
int32 frames = min_c(fOutputBufferFrameCount - *frameCount, fChunkSize / fInputFrameSize);
int32 samples = frames * fInputFormat.u.raw_audio.channel_count;
fConvert(output_buffer, fChunkBuffer, samples);
fChunkBuffer += frames * fInputFrameSize;
fChunkBuffer = (const char *)fChunkBuffer + frames * fInputFrameSize;
fChunkSize -= frames * fInputFrameSize;
output_buffer += frames * fOutputFrameSize;
*frameCount += frames;
@@ -33,7 +33,7 @@ public:
void GetCodecInfo(media_codec_info *info);
status_t Setup(media_format *ioEncodedFormat,
const void *infoBuffer, int32 infoSize);
const void *infoBuffer, size_t infoSize);
status_t NegotiateOutputFormat(media_format *ioDecodedFormat);
@@ -56,11 +56,11 @@ private:
int32 fOutputSampleSize;
int32 fOutputBufferFrameCount;
void (*fSwapInput)(void *data, int32 count);
void (*fConvert)(void *dst, void *src, int32 count);
void (*fConvert)(void *dst, const void *src, int32 count);
void (*fSwapOutput)(void *data, int32 count);
char * fChunkBuffer;
int32 fChunkSize;
const void * fChunkBuffer;
size_t fChunkSize;
bigtime_t fStartTime;
@@ -81,7 +81,7 @@ SpeexDecoder::GetCodecInfo(media_codec_info *info)
status_t
SpeexDecoder::Setup(media_format *inputFormat,
const void *infoBuffer, int32 infoSize)
const void *infoBuffer, size_t infoSize)
{
TRACE("SpeexDecoder::Setup\n");
if (!format_is_compatible(speex_encoded_media_format(),*inputFormat)) {
@@ -254,8 +254,8 @@ SpeexDecoder::Decode(void *buffer, int64 *frameCount,
int total_samples = 0;
while (out_bytes_needed >= fSpeexOutputLength) {
// get a new packet
void *chunkBuffer;
int32 chunkSize;
const void *chunkBuffer;
size_t chunkSize;
media_header mh;
status_t status = GetNextChunk(&chunkBuffer, &chunkSize, &mh);
if (status == B_LAST_BUFFER_ERROR) {
@@ -12,7 +12,7 @@ public:
void GetCodecInfo(media_codec_info *info);
status_t Setup(media_format *inputFormat,
const void *infoBuffer, int32 infoSize);
const void *infoBuffer, size_t infoSize);
status_t NegotiateOutputFormat(media_format *ioDecodedFormat);
@@ -13,7 +13,7 @@ public:
void GetCodecInfo(media_codec_info *info);
status_t Setup(media_format *inputFormat,
const void *infoBuffer, int32 infoSize);
const void *infoBuffer, size_t infoSize);
status_t NegotiateOutputFormat(media_format *ioDecodedFormat);
@@ -74,7 +74,7 @@ VorbisDecoder::GetCodecInfo(media_codec_info *info)
status_t
VorbisDecoder::Setup(media_format *inputFormat,
const void *infoBuffer, int32 infoSize)
const void *infoBuffer, size_t infoSize)
{
TRACE("VorbisDecoder::Setup\n");
if (!format_is_compatible(vorbis_encoded_media_format(),*inputFormat)) {
@@ -178,8 +178,8 @@ VorbisDecoder::Decode(void *buffer, int64 *frameCount,
float **pcm;
while ((samples = vorbis_synthesis_pcmout(&fDspState,&pcm)) == 0) {
// get a new packet
void *chunkBuffer;
int32 chunkSize;
const void *chunkBuffer;
size_t chunkSize;
media_header mh;
status_t status = GetNextChunk(&chunkBuffer, &chunkSize, &mh);
if (status == B_LAST_BUFFER_ERROR) {
@@ -13,7 +13,7 @@ public:
void GetCodecInfo(media_codec_info *info);
status_t Setup(media_format *inputFormat,
const void *infoBuffer, int32 infoSize);
const void *infoBuffer, size_t infoSize);
status_t NegotiateOutputFormat(media_format *ioDecodedFormat);
@@ -336,7 +336,7 @@ WavReader::FreeCookie(void *cookie)
status_t
WavReader::GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize)
media_format *format, const void **infoBuffer, size_t *infoSize)
{
wavdata *data = reinterpret_cast<wavdata *>(cookie);
@@ -396,7 +396,7 @@ WavReader::Seek(void *cookie,
status_t
WavReader::GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
wavdata *data = reinterpret_cast<wavdata *>(cookie);
@@ -44,14 +44,14 @@ public:
status_t FreeCookie(void *cookie);
status_t GetStreamInfo(void *cookie, int64 *frameCount, bigtime_t *duration,
media_format *format, void **infoBuffer, int32 *infoSize);
media_format *format, const void **infoBuffer, size_t *infoSize);
status_t Seek(void *cookie,
uint32 seekTo,
int64 *frame, bigtime_t *time);
status_t GetNextChunk(void *cookie,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader);
BPositionIO *Source() { return fSource; }
+2 -2
View File
@@ -85,7 +85,7 @@ ChunkCache::NeedsRefill()
status_t
ChunkCache::GetNextChunk(void **chunkBuffer, int32 *chunkSize, media_header *mediaHeader)
ChunkCache::GetNextChunk(const void **chunkBuffer, size_t *chunkSize, media_header *mediaHeader)
{
// printf("ChunkCache::GetNextChunk: %p fEmptyChunkCount %ld, fReadyChunkCount %ld\n", fNextGet, fEmptyChunkCount, fReadyChunkCount);
retry:
@@ -113,7 +113,7 @@ retry:
void
ChunkCache::PutNextChunk(void *chunkBuffer, int32 chunkSize, const media_header &mediaHeader, status_t err)
ChunkCache::PutNextChunk(const void *chunkBuffer, size_t chunkSize, const media_header &mediaHeader, status_t err)
{
// printf("ChunkCache::PutNextChunk: %p fEmptyChunkCount %ld, fReadyChunkCount %ld\n", fNextPut, fEmptyChunkCount, fReadyChunkCount);
+4 -4
View File
@@ -35,8 +35,8 @@ struct chunk_info
{
chunk_info * next;
void * buffer;
int32 sizeUsed;
int32 sizeMax;
size_t sizeUsed;
size_t sizeMax;
media_header mediaHeader;
status_t err;
};
@@ -51,8 +51,8 @@ public:
void MakeEmpty();
bool NeedsRefill();
status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize, media_header *mediaHeader);
void PutNextChunk(void *chunkBuffer, int32 chunkSize, const media_header &mediaHeader, status_t err);
status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize, media_header *mediaHeader);
void PutNextChunk(const void *chunkBuffer, size_t chunkSize, const media_header &mediaHeader, status_t err);
private:
enum { CHUNK_COUNT = 5 };
+1 -1
View File
@@ -24,7 +24,7 @@ Decoder::~Decoder()
status_t
Decoder::GetNextChunk(void **chunkBuffer, int32 *chunkSize,
Decoder::GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
return fChunkProvider->GetNextChunk(chunkBuffer, chunkSize, mediaHeader);
+2 -4
View File
@@ -275,11 +275,9 @@ BMediaDecoder::AttachToDecoder()
MediaDecoderChunkProvider(BMediaDecoder * decoder) {
fDecoder = decoder;
}
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader) {
const void ** buffer = const_cast<const void**>(chunkBuffer);
size_t * size = reinterpret_cast<size_t*>(chunkSize);
return fDecoder->GetNextChunk(buffer,size,mediaHeader);
return fDecoder->GetNextChunk(chunkBuffer, chunkSize, mediaHeader);
}
} * provider = new MediaDecoderChunkProvider(this);
if (provider == NULL) {
+8 -8
View File
@@ -139,8 +139,8 @@ MediaExtractor::CountFrames(int32 stream) const
int64 frameCount;
bigtime_t duration;
media_format format;
void *infoBuffer;
int32 infoSize;
const void *infoBuffer;
size_t infoSize;
fReader->GetStreamInfo(fStreamInfo[stream].cookie, &frameCount, &duration, &format, &infoBuffer, &infoSize);
@@ -155,8 +155,8 @@ MediaExtractor::Duration(int32 stream) const
int64 frameCount;
bigtime_t duration;
media_format format;
void *infoBuffer;
int32 infoSize;
const void *infoBuffer;
size_t infoSize;
fReader->GetStreamInfo(fStreamInfo[stream].cookie, &frameCount, &duration, &format, &infoBuffer, &infoSize);
@@ -187,7 +187,7 @@ MediaExtractor::Seek(int32 stream, uint32 seekTo,
status_t
MediaExtractor::GetNextChunk(int32 stream,
void **chunkBuffer, int32 *chunkSize,
const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
if (fStreamInfo[stream].status != B_OK)
@@ -218,7 +218,7 @@ public:
fStream = stream;
}
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
virtual status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
return fExtractor->GetNextChunk(fStream, chunkBuffer, chunkSize, mediaHeader);
@@ -283,8 +283,8 @@ MediaExtractor::ExtractorThread()
continue;
if (fStreamInfo[stream].chunkCache->NeedsRefill()) {
media_header mediaHeader;
void *chunkBuffer;
int32 chunkSize;
const void *chunkBuffer;
size_t chunkSize;
status_t err;
err = fReader->GetNextChunk(fStreamInfo[stream].cookie, &chunkBuffer, &chunkSize, &mediaHeader);
fStreamInfo[stream].chunkCache->PutNextChunk(chunkBuffer, chunkSize, mediaHeader, err);
+12 -7
View File
@@ -54,7 +54,7 @@ public:
RawDecoderChunkProvider(Decoder *decoder, int buffer_size, int frame_size);
virtual ~RawDecoderChunkProvider();
status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize, media_header *mediaHeader);
status_t GetNextChunk(const void **chunkBuffer, size_t *chunkSize, media_header *mediaHeader);
private:
Decoder *fDecoder;
@@ -446,14 +446,19 @@ BMediaTrack::ReadChunk(char **out_buffer,
status_t result;
media_header header;
const void *buffer;
size_t size;
memset(&header, 0, sizeof(header)); // always clear it first, as the reader doesn't set all fields
result = fExtractor->GetNextChunk(fStream, (void **)out_buffer, out_size, &header);
fCurTime = header.start_time;
if (mh)
*mh = header;
result = fExtractor->GetNextChunk(fStream, &buffer, &size, &header);
if (result == B_OK) {
*out_buffer = const_cast<char *>(static_cast<const char *>(buffer)); // yes this *is* ugly
*out_size = size;
fCurTime = header.start_time;
if (mh)
*mh = header;
}
return result;
}
@@ -822,7 +827,7 @@ RawDecoderChunkProvider::~RawDecoderChunkProvider()
}
status_t
RawDecoderChunkProvider::GetNextChunk(void **chunkBuffer, int32 *chunkSize,
RawDecoderChunkProvider::GetNextChunk(const void **chunkBuffer, size_t *chunkSize,
media_header *mediaHeader)
{
int64 frames;