1/*
2 * Copyright (C) 2001 Carlos Hasan. All Rights Reserved.
3 * Copyright (C) 2001 Fran��ois Revol. All Rights Reserved.
4 * Copyright (C) 2001 Axel D��rfler. All Rights Reserved.
5 * Copyright (C) 2004 Marcus Overhagen. All Rights Reserved.
6 *
7 * Distributed under the terms of the MIT License.
8 */
9#ifndef FFMPEG_PLUGIN_H
10#define FFMPEG_PLUGIN_H
11
12
13#include <MediaFormats.h>
14
15#include "DecoderPlugin.h"
16#include "EncoderPlugin.h"
17#include "ReaderPlugin.h"
18#include "WriterPlugin.h"
19
20
21class FFmpegPlugin : public ReaderPlugin, public DecoderPlugin,
22	public WriterPlugin, public EncoderPlugin {
23public:
24	virtual	Reader*				NewReader();
25
26	virtual	Decoder*			NewDecoder(uint index);
27	virtual	status_t			GetSupportedFormats(media_format** _formats,
28									size_t* _count);
29
30	virtual	Writer*				NewWriter();
31	virtual	status_t			GetSupportedFileFormats(
32									const media_file_format** _fileFormats,
33									size_t* _count);
34
35	virtual	Encoder*			NewEncoder(
36									const media_codec_info& codecInfo);
37
38	virtual	Encoder*			NewEncoder(const media_format& format);
39
40	virtual	status_t			RegisterNextEncoder(int32* cookie,
41									media_codec_info* codecInfo,
42									media_format_family* formatFamily,
43									media_format* inputFormat,
44									media_format* outputFormat);
45};
46
47
48#endif // FFMPEG_PLUGIN_H
49