aboutsummaryrefslogtreecommitdiff
path: root/Src/replicant/mp4/svc_mp4decoder.h
blob: d8e242add6eb4315a9aefeebb88d05a21b0decef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once
#include "foundation/dispatch.h"
#include "ifc_mp4file.h"

class ifc_mp4audiodecoder;
class ifc_mp4videodecoder;

// {39A53910-CCFE-465D-A46C-F0B95C7DD257}
static const GUID mp4_decoder_service_type_guid = 
{ 0x39a53910, 0xccfe, 0x465d, { 0xa4, 0x6c, 0xf0, 0xb9, 0x5c, 0x7d, 0xd2, 0x57 } };

class svc_mp4decoder : public Wasabi2::Dispatchable
{
protected:
	svc_mp4decoder() : Dispatchable(DISPATCHABLE_VERSION) {}
	~svc_mp4decoder() {}
public:
		static GUID GetServiceType() { return mp4_decoder_service_type_guid; }
		int CreateAudioDecoder(ifc_mp4file *mp4_file, ifc_mp4file::TrackID mp4_track, ifc_mp4audiodecoder **decoder) { return MP4DecoderService_CreateAudioDecoder(mp4_file, mp4_track, decoder); }

	enum
	{
		DISPATCHABLE_VERSION=0,
	};
private:
	virtual int WASABICALL MP4DecoderService_CreateAudioDecoder(ifc_mp4file *mp4_file, ifc_mp4file::TrackID mp4_track, ifc_mp4audiodecoder **decoder)=0;
};