mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-04 20:01:02 -05:00
45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
|
#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;
|
||
|
};
|