haiku/headers/os/codec/StreamerPlugin.h

57 lines
1010 B
C
Raw Normal View History

2018-11-22 11:32:02 +03:00
/*
* Copyright 2017, Dario Casalinuovo. All rights reserved.
* Distributed under the terms of the MIT License.
*/
2016-03-11 04:04:59 +03:00
#ifndef _STREAMER_PLUGIN_H
#define _STREAMER_PLUGIN_H
2016-03-26 00:44:56 +03:00
#include <MediaIO.h>
2016-03-11 04:04:59 +03:00
#include <Url.h>
#include "MediaPlugin.h"
2016-03-26 00:44:56 +03:00
2016-03-11 04:04:59 +03:00
namespace BPrivate { namespace media {
class PluginManager;
2016-03-11 04:04:59 +03:00
class Streamer {
public:
2018-11-22 11:32:02 +03:00
virtual status_t Sniff(const BUrl& url, BDataIO** source) = 0;
protected:
2016-03-11 04:04:59 +03:00
Streamer();
virtual ~Streamer();
private:
MediaPlugin* fMediaPlugin;
friend class PluginManager;
2018-11-22 11:32:02 +03:00
friend class MediaStreamer;
2016-03-11 04:04:59 +03:00
virtual void _ReservedStreamer1();
virtual void _ReservedStreamer2();
virtual void _ReservedStreamer3();
virtual void _ReservedStreamer4();
virtual void _ReservedStreamer5();
uint32 fReserved[5];
};
class StreamerPlugin : public virtual MediaPlugin {
public:
2018-11-17 20:38:01 +03:00
StreamerPlugin();
2016-03-11 04:04:59 +03:00
virtual Streamer* NewStreamer() = 0;
};
} } // namespace BPrivate::media
using namespace BPrivate::media;
2016-03-26 00:44:56 +03:00
2016-03-11 04:04:59 +03:00
#endif // _STREAMER_PLUGIN_H