xref: /haiku/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.h (revision 218a8c03cbadd95d8888b218930f514fa0b4fac4)
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 
21 class FFmpegPlugin : public ReaderPlugin, public DecoderPlugin,
22 	public WriterPlugin, public EncoderPlugin {
23 public:
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