52a3801208
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
|
|
// this header is similar to functions found in libmedia.so
|
|
// and the media_kit extractor add-ons
|
|
// we will use it as basic information, but are not trying to
|
|
// create a binary compatible interface
|
|
// this API will totally change, as we are creating our own API
|
|
|
|
namespace media_kit_private {
|
|
|
|
class Extractor
|
|
{
|
|
public:
|
|
Extractor(void);
|
|
virtual ~Extractor(void);
|
|
|
|
virtual status_t Copyright(void);
|
|
virtual status_t Extractor(void);
|
|
virtual status_t Perform(long, void *);
|
|
virtual status_t SniffFormat(media_format const *, long *, long *);
|
|
virtual status_t Source(void) const;
|
|
|
|
virtual status_t find_stream_extractor(long *, media_format *, BPrivate::Extractor *, long, long *, long *);
|
|
|
|
virtual status_t Sniff(long *, long *) = 0;
|
|
virtual status_t GetDuration(long, long long *) = 0;
|
|
virtual status_t SplitNext(long, void *, long long *, char *, long *, char **, long *, media_header *) = 0;
|
|
virtual status_t Seek(long, void *, long, long, long long *, long long *, long long *, char *, long *, bool *) = 0;
|
|
virtual status_t FreeCookie(long, void *) = 0;
|
|
virtual status_t AllocateCookie(long, void **) = 0;
|
|
virtual status_t CountFrames(long, long long *) = 0;
|
|
virtual status_t TrackInfo(long, media_format *, void **, long *) = 0;
|
|
virtual status_t GetFileFormatInfo(media_file_format *) = 0;
|
|
|
|
private:
|
|
virtual status_t Perform(long, void *);
|
|
//virtual function and data stuffing will be done later
|
|
};
|
|
|
|
}; // namespace media_kit_private
|
|
|
|
extern "C" {
|
|
status_t instantiate_extractor();
|
|
}
|
|
|
|
|