1 /**
2  * MltFilter.h - MLT Wrapper
3  * Copyright (C) 2004-2019 Meltytech, LLC
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18  */
19 
20 #ifndef MLTPP_FILTER_H
21 #define MLTPP_FILTER_H
22 
23 #include "MltConfig.h"
24 
25 #include <framework/mlt.h>
26 
27 #include "MltService.h"
28 
29 namespace Mlt
30 {
31 	class Service;
32 	class Profile;
33 	class Frame;
34 
35 	class MLTPP_DECLSPEC Filter : public Service
36 	{
37 		private:
38 			mlt_filter instance;
39 		public:
40 			Filter();
41 			Filter( Profile& profile, const char *id, const char *service = NULL );
42 			Filter( mlt_profile profile, const char *id, const char *service = NULL );
43 			Filter( Service &filter );
44 			Filter( Filter &filter );
45 			Filter( const Filter &filter );
46 			Filter( mlt_filter filter );
47 			virtual ~Filter( );
48 			Filter& operator=( const Filter &filter );
49 			virtual mlt_filter get_filter( );
50 			mlt_service get_service( );
51 			int connect( Service &service, int index = 0 );
52 			void set_in_and_out( int in, int out );
53 			int get_in( );
54 			int get_out( );
55 			int get_length( );
56 			int get_length2( Frame &frame );
57 			int get_track( );
58 			int get_position( Frame &frame );
59 			double get_progress( Frame &frame );
60 			void process( Frame &frame );
61 	};
62 }
63 
64 #endif
65