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;
|
|
|
|
|
2018-10-28 17:45:44 +03:00
|
|
|
|
2018-11-25 14:40:49 +03:00
|
|
|
class BStreamer {
|
2016-03-11 04:04:59 +03:00
|
|
|
public:
|
2018-11-22 11:32:02 +03:00
|
|
|
virtual status_t Sniff(const BUrl& url, BDataIO** source) = 0;
|
|
|
|
|
|
|
|
protected:
|
2018-11-25 14:40:49 +03:00
|
|
|
BStreamer();
|
|
|
|
virtual ~BStreamer();
|
2016-03-11 04:04:59 +03:00
|
|
|
|
|
|
|
private:
|
2018-11-25 14:40:49 +03:00
|
|
|
BMediaPlugin* fMediaPlugin;
|
2018-10-28 17:45:44 +03:00
|
|
|
|
2018-10-29 11:41:21 +03:00
|
|
|
friend class PluginManager;
|
2018-11-22 11:32:02 +03:00
|
|
|
friend class MediaStreamer;
|
2018-10-29 11:41:21 +03:00
|
|
|
|
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];
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2018-11-25 14:40:49 +03:00
|
|
|
class BStreamerPlugin : public virtual BMediaPlugin {
|
2016-03-11 04:04:59 +03:00
|
|
|
public:
|
2018-11-25 14:40:49 +03:00
|
|
|
BStreamerPlugin();
|
2018-11-17 20:38:01 +03:00
|
|
|
|
2018-11-25 14:40:49 +03:00
|
|
|
virtual BStreamer* NewStreamer() = 0;
|
2016-03-11 04:04:59 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
} } // 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
|