diff options
Diffstat (limited to 'Src/replicant/mp4/MP4HTTP.h')
-rw-r--r-- | Src/replicant/mp4/MP4HTTP.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Src/replicant/mp4/MP4HTTP.h b/Src/replicant/mp4/MP4HTTP.h new file mode 100644 index 00000000..5580d3f4 --- /dev/null +++ b/Src/replicant/mp4/MP4HTTP.h @@ -0,0 +1,44 @@ +#pragma once +#include "http/svc_http_demuxer.h" +#include "http/ifc_http_demuxer.h" +#include "nx/nxstring.h" +#include "nswasabi/ServiceName.h" +#include "MP4FileObject.h" +#include "ifc_mp4audiodecoder.h" + +// {C67A19EF-CBDB-4BD9-9B4F-EEC5D6B05093} +static const GUID mp4_demuxer_guid = +{ 0xc67a19ef, 0xcbdb, 0x4bd9, { 0x9b, 0x4f, 0xee, 0xc5, 0xd6, 0xb0, 0x50, 0x93 } }; + + +class MP4HTTPService : public svc_http_demuxer +{ +public: + WASABI_SERVICE_NAME("MP4 HTTP Demuxer"); + static GUID GetServiceGUID() { return mp4_demuxer_guid; } + + const char *WASABICALL HTTPDemuxerService_EnumerateAcceptedTypes(size_t i); + const char *WASABICALL HTTPDemuxerService_GetUserAgent(); + void WASABICALL HTTPDemuxerService_CustomizeHTTP(jnl_http_t http); + NError WASABICALL HTTPDemuxerService_CreateDemuxer(nx_uri_t uri, jnl_http_t http, ifc_http_demuxer **demuxer, int pass); +}; + +class MP4HTTP : public ifc_http_demuxer +{ +public: + MP4HTTP(); + ~MP4HTTP(); + + int Initialize(nx_uri_t uri, jnl_http_t http); +private: + /* ifc_http_demuxer implementation */ + int WASABICALL HTTPDemuxer_Run(ifc_http *http_parent, ifc_player *player, ifc_playback_parameters *secondary_parameters); + + /* member data */ + jnl_http_t http; + nx_uri_t uri; + nx_file_t file; + MP4FileObject *mp4_file_object; + ifc_audioout::Parameters audio_parameters; + ifc_mp4audiodecoder *audio_decoder; +}; |