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