haiku/headers/os/codec/Streamer.h

56 lines
975 B
C
Raw Normal View History

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