#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; };