implement MediaDecoder using added ChunkProvider

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6136 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
shatty 2004-01-18 07:37:21 +00:00
parent 1e389a3a80
commit b4057dc9eb
2 changed files with 18 additions and 8 deletions

View File

@ -7,6 +7,12 @@
namespace BPrivate {
class Decoder;
}
namespace BPrivate {
namespace media {
class Decoder;
class DecoderPlugin;
}
}
class BMediaDecoder {
public:
@ -42,14 +48,16 @@ class BMediaDecoder {
static status_t next_chunk(void *classptr, void **chunkData, size_t *chunkLen, media_header *mh);
void ReleaseDecoder();
BPrivate::Decoder *fDecoder;
BPrivate::media::Decoder *fDecoder;
int32 fDecoderID;
BPrivate::media::DecoderPlugin *fDecoderPlugin;
int32 fDecoderPluginID;
status_t fInitStatus;
/* fbc data and virtuals */
uint32 _reserved_BMediaDecoder_[32];
uint32 _reserved_BMediaDecoder_[30];
virtual status_t _Reserved_BMediaDecoder_0(int32 arg, ...);
virtual status_t _Reserved_BMediaDecoder_1(int32 arg, ...);

View File

@ -4,12 +4,17 @@
#include <MediaTrack.h>
#include <MediaFormats.h>
#include "MediaPlugin.h"
#include "MediaExtractor.h"
class AddOnManager;
namespace BPrivate { namespace media {
class ChunkProvider {
public:
virtual status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
media_header *mediaHeader) = 0;
};
class Decoder
{
public:
@ -31,12 +36,9 @@ public:
status_t GetNextChunk(void **chunkBuffer, int32 *chunkSize,
media_header *mediaHeader);
void Setup(ChunkProvider *provider);
private:
friend class MediaExtractor;
void Setup(MediaExtractor *extractor, int32 stream);
MediaExtractor * fExtractor;
int32 fStream;
ChunkProvider * fChunkProvider;
};