From 0d1adad317d12e39380ee4876ca4b36fd7814901 Mon Sep 17 00:00:00 2001 From: Marcus Overhagen Date: Thu, 30 Jun 2005 00:24:06 +0000 Subject: [PATCH] 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 --- headers/private/media/DecoderPlugin.h | 6 +- headers/private/media/MediaExtractor.h | 6 +- headers/private/media/ReaderPlugin.h | 4 +- .../media/plugins/ac3_decoder/ac3_decoder.cpp | 2 +- .../media/plugins/ac3_decoder/ac3_decoder.h | 6 +- .../media/plugins/aiff_reader/aiff_reader.cpp | 4 +- .../media/plugins/aiff_reader/aiff_reader.h | 4 +- .../media/plugins/au_reader/au_reader.cpp | 4 +- .../media/plugins/au_reader/au_reader.h | 4 +- src/add-ons/media/plugins/avcodec/avcodec.cpp | 30 +++---- src/add-ons/media/plugins/avcodec/avcodec.h | 8 +- .../media/plugins/avi_reader/avi_reader.cpp | 4 +- .../media/plugins/avi_reader/avi_reader.h | 4 +- .../libMatroskaParser/MatroskaParser.c | 2 +- .../plugins/matroska/matroska_reader.cpp | 4 +- .../media/plugins/matroska/matroska_reader.h | 4 +- .../media/plugins/mov_reader/mov_reader.cpp | 4 +- .../media/plugins/mov_reader/mov_reader.h | 4 +- .../plugins/mp3_decoder/mp3DecoderPlugin.cpp | 6 +- .../plugins/mp3_decoder/mp3DecoderPlugin.h | 2 +- .../plugins/mp3_reader/MP3ReaderPlugin.cpp | 4 +- .../plugins/mp3_reader/MP3ReaderPlugin.h | 4 +- .../plugins/musepack/MusePackDecoder.cpp | 2 +- .../media/plugins/musepack/MusePackDecoder.h | 2 +- .../media/plugins/musepack/MusePackReader.cpp | 4 +- .../media/plugins/musepack/MusePackReader.h | 4 +- .../media/plugins/ogg/OggReaderPlugin.cpp | 4 +- .../media/plugins/ogg/OggReaderPlugin.h | 4 +- src/add-ons/media/plugins/ogg/OggSeekable.cpp | 2 +- src/add-ons/media/plugins/ogg/OggSeekable.h | 2 +- .../media/plugins/ogg/OggSpeexStream.cpp | 2 +- .../media/plugins/ogg/OggSpeexStream.h | 2 +- src/add-ons/media/plugins/ogg/OggStream.cpp | 2 +- src/add-ons/media/plugins/ogg/OggStream.h | 2 +- .../media/plugins/ogg/OggTobiasSeekable.cpp | 2 +- .../media/plugins/ogg/OggTobiasSeekable.h | 2 +- .../media/plugins/ogg/OggTobiasStream.cpp | 2 +- .../media/plugins/ogg/OggTobiasStream.h | 2 +- src/add-ons/media/plugins/ogg/OggTrack.cpp | 2 +- src/add-ons/media/plugins/ogg/OggTrack.h | 2 +- .../plugins/raw_decoder/AudioConversion.cpp | 88 +++++++++---------- .../plugins/raw_decoder/AudioConversion.h | 70 +++++++-------- .../plugins/raw_decoder/RawDecoderPlugin.cpp | 8 +- .../plugins/raw_decoder/RawDecoderPlugin.h | 8 +- .../media/plugins/speex/speexCodecPlugin.cpp | 6 +- .../media/plugins/speex/speexCodecPlugin.h | 2 +- .../media/plugins/theora/theoraCodecPlugin.h | 2 +- .../plugins/vorbis/vorbisCodecPlugin.cpp | 6 +- .../media/plugins/vorbis/vorbisCodecPlugin.h | 2 +- .../plugins/wav_reader/WavReaderPlugin.cpp | 4 +- .../plugins/wav_reader/WavReaderPlugin.h | 4 +- src/kits/media/ChunkCache.cpp | 4 +- src/kits/media/ChunkCache.h | 8 +- src/kits/media/DecoderPlugin.cpp | 2 +- src/kits/media/MediaDecoder.cpp | 6 +- src/kits/media/MediaExtractor.cpp | 16 ++-- src/kits/media/MediaTrack.cpp | 19 ++-- 57 files changed, 211 insertions(+), 208 deletions(-) diff --git a/headers/private/media/DecoderPlugin.h b/headers/private/media/DecoderPlugin.h index e9f46c55e3..6aed9b1079 100644 --- a/headers/private/media/DecoderPlugin.h +++ b/headers/private/media/DecoderPlugin.h @@ -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); diff --git a/headers/private/media/MediaExtractor.h b/headers/private/media/MediaExtractor.h index 7070f6c0c9..c4959cccb9 100644 --- a/headers/private/media/MediaExtractor.h +++ b/headers/private/media/MediaExtractor.h @@ -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); diff --git a/headers/private/media/ReaderPlugin.h b/headers/private/media/ReaderPlugin.h index bd81a4f912..e383a63307 100644 --- a/headers/private/media/ReaderPlugin.h +++ b/headers/private/media/ReaderPlugin.h @@ -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(); diff --git a/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.cpp b/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.cpp index 5232f1fc42..498592f060 100644 --- a/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.cpp +++ b/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.cpp @@ -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; } diff --git a/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.h b/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.h index 37fc9f84c5..55b45c9b14 100644 --- a/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.h +++ b/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.h @@ -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; diff --git a/src/add-ons/media/plugins/aiff_reader/aiff_reader.cpp b/src/add-ons/media/plugins/aiff_reader/aiff_reader.cpp index 830d5ff528..310afcd0a7 100644 --- a/src/add-ons/media/plugins/aiff_reader/aiff_reader.cpp +++ b/src/add-ons/media/plugins/aiff_reader/aiff_reader.cpp @@ -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, diff --git a/src/add-ons/media/plugins/aiff_reader/aiff_reader.h b/src/add-ons/media/plugins/aiff_reader/aiff_reader.h index ffd25d29bc..6f1aeae565 100644 --- a/src/add-ons/media/plugins/aiff_reader/aiff_reader.h +++ b/src/add-ons/media/plugins/aiff_reader/aiff_reader.h @@ -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); diff --git a/src/add-ons/media/plugins/au_reader/au_reader.cpp b/src/add-ons/media/plugins/au_reader/au_reader.cpp index 6101eadee1..92e5aa780a 100644 --- a/src/add-ons/media/plugins/au_reader/au_reader.cpp +++ b/src/add-ons/media/plugins/au_reader/au_reader.cpp @@ -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, diff --git a/src/add-ons/media/plugins/au_reader/au_reader.h b/src/add-ons/media/plugins/au_reader/au_reader.h index 04c647da76..d7a68a3a82 100644 --- a/src/add-ons/media/plugins/au_reader/au_reader.h +++ b/src/add-ons/media/plugins/au_reader/au_reader.h @@ -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; } diff --git a/src/add-ons/media/plugins/avcodec/avcodec.cpp b/src/add-ons/media/plugins/avcodec/avcodec.cpp index ae33b1aad8..c2f56087c0 100644 --- a/src/add-ons/media/plugins/avcodec/avcodec.cpp +++ b/src/add-ons/media/plugins/avcodec/avcodec.cpp @@ -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(static_cast(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) { diff --git a/src/add-ons/media/plugins/avcodec/avcodec.h b/src/add-ons/media/plugins/avcodec/avcodec.h index e3b7cd7d41..cb6bf0d976 100644 --- a/src/add-ons/media/plugins/avcodec/avcodec.h +++ b/src/add-ons/media/plugins/avcodec/avcodec.h @@ -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; diff --git a/src/add-ons/media/plugins/avi_reader/avi_reader.cpp b/src/add-ons/media/plugins/avi_reader/avi_reader.cpp index c0b772d6b7..fbd1fb45d9 100644 --- a/src/add-ons/media/plugins/avi_reader/avi_reader.cpp +++ b/src/add-ons/media/plugins/avi_reader/avi_reader.cpp @@ -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; diff --git a/src/add-ons/media/plugins/avi_reader/avi_reader.h b/src/add-ons/media/plugins/avi_reader/avi_reader.h index 4e7db457f0..db817cb521 100644 --- a/src/add-ons/media/plugins/avi_reader/avi_reader.h +++ b/src/add-ons/media/plugins/avi_reader/avi_reader.h @@ -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; diff --git a/src/add-ons/media/plugins/matroska/libMatroskaParser/MatroskaParser.c b/src/add-ons/media/plugins/matroska/libMatroskaParser/MatroskaParser.c index e5c61402e9..0406d9e20a 100644 --- a/src/add-ons/media/plugins/matroska/libMatroskaParser/MatroskaParser.c +++ b/src/add-ons/media/plugins/matroska/libMatroskaParser/MatroskaParser.c @@ -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; diff --git a/src/add-ons/media/plugins/matroska/matroska_reader.cpp b/src/add-ons/media/plugins/matroska/matroska_reader.cpp index 7c75c517a7..8339482649 100644 --- a/src/add-ons/media/plugins/matroska/matroska_reader.cpp +++ b/src/add-ons/media/plugins/matroska/matroska_reader.cpp @@ -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; diff --git a/src/add-ons/media/plugins/matroska/matroska_reader.h b/src/add-ons/media/plugins/matroska/matroska_reader.h index 4e8d5c092a..2409498e52 100644 --- a/src/add-ons/media/plugins/matroska/matroska_reader.h +++ b/src/add-ons/media/plugins/matroska/matroska_reader.h @@ -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); diff --git a/src/add-ons/media/plugins/mov_reader/mov_reader.cpp b/src/add-ons/media/plugins/mov_reader/mov_reader.cpp index 8416f18313..3c3e63e932 100644 --- a/src/add-ons/media/plugins/mov_reader/mov_reader.cpp +++ b/src/add-ons/media/plugins/mov_reader/mov_reader.cpp @@ -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; diff --git a/src/add-ons/media/plugins/mov_reader/mov_reader.h b/src/add-ons/media/plugins/mov_reader/mov_reader.h index 32574647d1..98ca5411e6 100644 --- a/src/add-ons/media/plugins/mov_reader/mov_reader.h +++ b/src/add-ons/media/plugins/mov_reader/mov_reader.h @@ -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; diff --git a/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp b/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp index 52594bfe7d..bb640fd4b8 100644 --- a/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp +++ b/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp @@ -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; diff --git a/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.h b/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.h index 59bdd74d52..5f7200d139 100644 --- a/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.h +++ b/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.h @@ -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); diff --git a/src/add-ons/media/plugins/mp3_reader/MP3ReaderPlugin.cpp b/src/add-ons/media/plugins/mp3_reader/MP3ReaderPlugin.cpp index 63267b8f26..8382a14048 100644 --- a/src/add-ons/media/plugins/mp3_reader/MP3ReaderPlugin.cpp +++ b/src/add-ons/media/plugins/mp3_reader/MP3ReaderPlugin.cpp @@ -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(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(cookie); diff --git a/src/add-ons/media/plugins/mp3_reader/MP3ReaderPlugin.h b/src/add-ons/media/plugins/mp3_reader/MP3ReaderPlugin.h index 4658e40582..e4e5c072cc 100644 --- a/src/add-ons/media/plugins/mp3_reader/MP3ReaderPlugin.h +++ b/src/add-ons/media/plugins/mp3_reader/MP3ReaderPlugin.h @@ -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; } diff --git a/src/add-ons/media/plugins/musepack/MusePackDecoder.cpp b/src/add-ons/media/plugins/musepack/MusePackDecoder.cpp index 886a730061..483e318a73 100644 --- a/src/add-ons/media/plugins/musepack/MusePackDecoder.cpp +++ b/src/add-ons/media/plugins/musepack/MusePackDecoder.cpp @@ -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; diff --git a/src/add-ons/media/plugins/musepack/MusePackDecoder.h b/src/add-ons/media/plugins/musepack/MusePackDecoder.h index b6a5cbd337..06e9029dc4 100644 --- a/src/add-ons/media/plugins/musepack/MusePackDecoder.h +++ b/src/add-ons/media/plugins/musepack/MusePackDecoder.h @@ -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); diff --git a/src/add-ons/media/plugins/musepack/MusePackReader.cpp b/src/add-ons/media/plugins/musepack/MusePackReader.cpp index 473e01f666..232e6ef538 100644 --- a/src/add-ons/media/plugins/musepack/MusePackReader.cpp +++ b/src/add-ons/media/plugins/musepack/MusePackReader.cpp @@ -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 diff --git a/src/add-ons/media/plugins/musepack/MusePackReader.h b/src/add-ons/media/plugins/musepack/MusePackReader.h index 96fc5ec584..191517f912 100644 --- a/src/add-ons/media/plugins/musepack/MusePackReader.h +++ b/src/add-ons/media/plugins/musepack/MusePackReader.h @@ -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: diff --git a/src/add-ons/media/plugins/ogg/OggReaderPlugin.cpp b/src/add-ons/media/plugins/ogg/OggReaderPlugin.cpp index a5f4581efe..3cf93c7f9e 100644 --- a/src/add-ons/media/plugins/ogg/OggReaderPlugin.cpp +++ b/src/add-ons/media/plugins/ogg/OggReaderPlugin.cpp @@ -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"); diff --git a/src/add-ons/media/plugins/ogg/OggReaderPlugin.h b/src/add-ons/media/plugins/ogg/OggReaderPlugin.h index de87f5c3ce..92ab9bafd6 100644 --- a/src/add-ons/media/plugins/ogg/OggReaderPlugin.h +++ b/src/add-ons/media/plugins/ogg/OggReaderPlugin.h @@ -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: diff --git a/src/add-ons/media/plugins/ogg/OggSeekable.cpp b/src/add-ons/media/plugins/ogg/OggSeekable.cpp index a13dbe8318..e624fdc31b 100644 --- a/src/add-ons/media/plugins/ogg/OggSeekable.cpp +++ b/src/add-ons/media/plugins/ogg/OggSeekable.cpp @@ -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; diff --git a/src/add-ons/media/plugins/ogg/OggSeekable.h b/src/add-ons/media/plugins/ogg/OggSeekable.h index b3cc1cca7a..6df8de3945 100644 --- a/src/add-ons/media/plugins/ogg/OggSeekable.h +++ b/src/add-ons/media/plugins/ogg/OggSeekable.h @@ -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: diff --git a/src/add-ons/media/plugins/ogg/OggSpeexStream.cpp b/src/add-ons/media/plugins/ogg/OggSpeexStream.cpp index 1d7d97aa86..002b85224c 100644 --- a/src/add-ons/media/plugins/ogg/OggSpeexStream.cpp +++ b/src/add-ons/media/plugins/ogg/OggSpeexStream.cpp @@ -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); diff --git a/src/add-ons/media/plugins/ogg/OggSpeexStream.h b/src/add-ons/media/plugins/ogg/OggSpeexStream.h index e50ccf399d..c74ab2a70d 100644 --- a/src/add-ons/media/plugins/ogg/OggSpeexStream.h +++ b/src/add-ons/media/plugins/ogg/OggSpeexStream.h @@ -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); }; diff --git a/src/add-ons/media/plugins/ogg/OggStream.cpp b/src/add-ons/media/plugins/ogg/OggStream.cpp index 1456051d6b..b2a0549638 100644 --- a/src/add-ons/media/plugins/ogg/OggStream.cpp +++ b/src/add-ons/media/plugins/ogg/OggStream.cpp @@ -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); diff --git a/src/add-ons/media/plugins/ogg/OggStream.h b/src/add-ons/media/plugins/ogg/OggStream.h index cf241bc420..69f8c7956a 100644 --- a/src/add-ons/media/plugins/ogg/OggStream.h +++ b/src/add-ons/media/plugins/ogg/OggStream.h @@ -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: diff --git a/src/add-ons/media/plugins/ogg/OggTobiasSeekable.cpp b/src/add-ons/media/plugins/ogg/OggTobiasSeekable.cpp index e87cab7359..d3b3e34014 100644 --- a/src/add-ons/media/plugins/ogg/OggTobiasSeekable.cpp +++ b/src/add-ons/media/plugins/ogg/OggTobiasSeekable.cpp @@ -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); diff --git a/src/add-ons/media/plugins/ogg/OggTobiasSeekable.h b/src/add-ons/media/plugins/ogg/OggTobiasSeekable.h index e7d2a83e7a..d7688d5e09 100644 --- a/src/add-ons/media/plugins/ogg/OggTobiasSeekable.h +++ b/src/add-ons/media/plugins/ogg/OggTobiasSeekable.h @@ -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: diff --git a/src/add-ons/media/plugins/ogg/OggTobiasStream.cpp b/src/add-ons/media/plugins/ogg/OggTobiasStream.cpp index 9175c91f0d..fc6cc3c090 100644 --- a/src/add-ons/media/plugins/ogg/OggTobiasStream.cpp +++ b/src/add-ons/media/plugins/ogg/OggTobiasStream.cpp @@ -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); diff --git a/src/add-ons/media/plugins/ogg/OggTobiasStream.h b/src/add-ons/media/plugins/ogg/OggTobiasStream.h index c9e27d531e..e3ed0b7504 100644 --- a/src/add-ons/media/plugins/ogg/OggTobiasStream.h +++ b/src/add-ons/media/plugins/ogg/OggTobiasStream.h @@ -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 diff --git a/src/add-ons/media/plugins/ogg/OggTrack.cpp b/src/add-ons/media/plugins/ogg/OggTrack.cpp index a2bb6be012..ec8844456a 100644 --- a/src/add-ons/media/plugins/ogg/OggTrack.cpp +++ b/src/add-ons/media/plugins/ogg/OggTrack.cpp @@ -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; diff --git a/src/add-ons/media/plugins/ogg/OggTrack.h b/src/add-ons/media/plugins/ogg/OggTrack.h index 81c7de53b3..aa53a33ab5 100644 --- a/src/add-ons/media/plugins/ogg/OggTrack.h +++ b/src/add-ons/media/plugins/ogg/OggTrack.h @@ -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: diff --git a/src/add-ons/media/plugins/raw_decoder/AudioConversion.cpp b/src/add-ons/media/plugins/raw_decoder/AudioConversion.cpp index 61a5f2a159..329d169cbe 100644 --- a/src/add-ons/media/plugins/raw_decoder/AudioConversion.cpp +++ b/src/add-ons/media/plugins/raw_decoder/AudioConversion.cpp @@ -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; \ diff --git a/src/add-ons/media/plugins/raw_decoder/AudioConversion.h b/src/add-ons/media/plugins/raw_decoder/AudioConversion.h index 8669782fff..c3af647285 100644 --- a/src/add-ons/media/plugins/raw_decoder/AudioConversion.h +++ b/src/add-ons/media/plugins/raw_decoder/AudioConversion.h @@ -27,47 +27,47 @@ #include -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); diff --git a/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.cpp b/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.cpp index 2a0a8c5bde..0973f73a20 100644 --- a/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.cpp +++ b/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.cpp @@ -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(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; diff --git a/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.h b/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.h index 79a7f57bba..a1dbf0daa6 100644 --- a/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.h +++ b/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.h @@ -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; diff --git a/src/add-ons/media/plugins/speex/speexCodecPlugin.cpp b/src/add-ons/media/plugins/speex/speexCodecPlugin.cpp index 2da5573d94..2f622de5ab 100644 --- a/src/add-ons/media/plugins/speex/speexCodecPlugin.cpp +++ b/src/add-ons/media/plugins/speex/speexCodecPlugin.cpp @@ -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) { diff --git a/src/add-ons/media/plugins/speex/speexCodecPlugin.h b/src/add-ons/media/plugins/speex/speexCodecPlugin.h index 1827a1abd4..289babb5c5 100644 --- a/src/add-ons/media/plugins/speex/speexCodecPlugin.h +++ b/src/add-ons/media/plugins/speex/speexCodecPlugin.h @@ -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); diff --git a/src/add-ons/media/plugins/theora/theoraCodecPlugin.h b/src/add-ons/media/plugins/theora/theoraCodecPlugin.h index fce6b64c74..d884ba6abf 100644 --- a/src/add-ons/media/plugins/theora/theoraCodecPlugin.h +++ b/src/add-ons/media/plugins/theora/theoraCodecPlugin.h @@ -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); diff --git a/src/add-ons/media/plugins/vorbis/vorbisCodecPlugin.cpp b/src/add-ons/media/plugins/vorbis/vorbisCodecPlugin.cpp index a476e828b9..82225d77f8 100644 --- a/src/add-ons/media/plugins/vorbis/vorbisCodecPlugin.cpp +++ b/src/add-ons/media/plugins/vorbis/vorbisCodecPlugin.cpp @@ -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) { diff --git a/src/add-ons/media/plugins/vorbis/vorbisCodecPlugin.h b/src/add-ons/media/plugins/vorbis/vorbisCodecPlugin.h index 40e61d7da7..d918cc862f 100644 --- a/src/add-ons/media/plugins/vorbis/vorbisCodecPlugin.h +++ b/src/add-ons/media/plugins/vorbis/vorbisCodecPlugin.h @@ -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); diff --git a/src/add-ons/media/plugins/wav_reader/WavReaderPlugin.cpp b/src/add-ons/media/plugins/wav_reader/WavReaderPlugin.cpp index b7faa80a71..859beb26b3 100644 --- a/src/add-ons/media/plugins/wav_reader/WavReaderPlugin.cpp +++ b/src/add-ons/media/plugins/wav_reader/WavReaderPlugin.cpp @@ -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(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(cookie); diff --git a/src/add-ons/media/plugins/wav_reader/WavReaderPlugin.h b/src/add-ons/media/plugins/wav_reader/WavReaderPlugin.h index 54e5de09a9..648a2d0a3a 100644 --- a/src/add-ons/media/plugins/wav_reader/WavReaderPlugin.h +++ b/src/add-ons/media/plugins/wav_reader/WavReaderPlugin.h @@ -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; } diff --git a/src/kits/media/ChunkCache.cpp b/src/kits/media/ChunkCache.cpp index e07f8c9a24..0d123adb54 100644 --- a/src/kits/media/ChunkCache.cpp +++ b/src/kits/media/ChunkCache.cpp @@ -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); diff --git a/src/kits/media/ChunkCache.h b/src/kits/media/ChunkCache.h index 286b3931ab..5a8282afa4 100644 --- a/src/kits/media/ChunkCache.h +++ b/src/kits/media/ChunkCache.h @@ -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 }; diff --git a/src/kits/media/DecoderPlugin.cpp b/src/kits/media/DecoderPlugin.cpp index 093ab25bcb..3f60655886 100644 --- a/src/kits/media/DecoderPlugin.cpp +++ b/src/kits/media/DecoderPlugin.cpp @@ -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); diff --git a/src/kits/media/MediaDecoder.cpp b/src/kits/media/MediaDecoder.cpp index acaa54780a..b281a20c61 100644 --- a/src/kits/media/MediaDecoder.cpp +++ b/src/kits/media/MediaDecoder.cpp @@ -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(chunkBuffer); - size_t * size = reinterpret_cast(chunkSize); - return fDecoder->GetNextChunk(buffer,size,mediaHeader); + return fDecoder->GetNextChunk(chunkBuffer, chunkSize, mediaHeader); } } * provider = new MediaDecoderChunkProvider(this); if (provider == NULL) { diff --git a/src/kits/media/MediaExtractor.cpp b/src/kits/media/MediaExtractor.cpp index ea2a765555..cb5c2ade25 100644 --- a/src/kits/media/MediaExtractor.cpp +++ b/src/kits/media/MediaExtractor.cpp @@ -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); diff --git a/src/kits/media/MediaTrack.cpp b/src/kits/media/MediaTrack.cpp index 95a4e3492f..b0f3e57242 100644 --- a/src/kits/media/MediaTrack.cpp +++ b/src/kits/media/MediaTrack.cpp @@ -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(static_cast(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;