svc_mp4decoder.h 923 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include "foundation/dispatch.h"
  3. #include "ifc_mp4file.h"
  4. class ifc_mp4audiodecoder;
  5. class ifc_mp4videodecoder;
  6. // {39A53910-CCFE-465D-A46C-F0B95C7DD257}
  7. static const GUID mp4_decoder_service_type_guid =
  8. { 0x39a53910, 0xccfe, 0x465d, { 0xa4, 0x6c, 0xf0, 0xb9, 0x5c, 0x7d, 0xd2, 0x57 } };
  9. class svc_mp4decoder : public Wasabi2::Dispatchable
  10. {
  11. protected:
  12. svc_mp4decoder() : Dispatchable(DISPATCHABLE_VERSION) {}
  13. ~svc_mp4decoder() {}
  14. public:
  15. static GUID GetServiceType() { return mp4_decoder_service_type_guid; }
  16. int CreateAudioDecoder(ifc_mp4file *mp4_file, ifc_mp4file::TrackID mp4_track, ifc_mp4audiodecoder **decoder) { return MP4DecoderService_CreateAudioDecoder(mp4_file, mp4_track, decoder); }
  17. enum
  18. {
  19. DISPATCHABLE_VERSION=0,
  20. };
  21. private:
  22. virtual int WASABICALL MP4DecoderService_CreateAudioDecoder(ifc_mp4file *mp4_file, ifc_mp4file::TrackID mp4_track, ifc_mp4audiodecoder **decoder)=0;
  23. };