1 /**
2  * MltProfile.h - MLT Wrapper
3  * Copyright (C) 2008-2020 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_PROFILE_H
21 #define MLTPP_PROFILE_H
22 
23 #include "MltConfig.h"
24 
25 #ifdef SWIG
26 #define MLTPP_DECLSPEC
27 #endif
28 
29 #include <framework/mlt.h>
30 
31 namespace Mlt
32 {
33 	class Properties;
34 	class Producer;
35 
36 	class MLTPP_DECLSPEC Profile
37 	{
38 		private:
39 			mlt_profile instance;
40 		public:
41 			Profile( );
42 			Profile( const char* name );
43 			Profile( Properties& properties );
44 			Profile( mlt_profile profile );
45 			~Profile();
46 
47 			bool is_valid( ) const;
48 			mlt_profile get_profile( ) const;
49 			char* description() const;
50 			int frame_rate_num() const;
51 			int frame_rate_den() const;
52 			double fps() const;
53 			int width() const;
54 			int height() const;
55 			bool progressive() const;
56 			int sample_aspect_num() const;
57 			int sample_aspect_den() const;
58 			double sar() const;
59 			int display_aspect_num() const;
60 			int display_aspect_den() const;
61 			double dar() const;
62 			int is_explicit() const;
63 			int colorspace() const;
64 			static Properties* list();
65 			void from_producer( Producer &producer );
66 			void set_width( int width );
67 			void set_height( int height );
68 			void set_sample_aspect( int numerator, int denominator );
69 			void set_display_aspect( int numerator, int denominator );
70 			void set_progressive( int progressive );
71 			void set_colorspace( int colorspace );
72 			void set_frame_rate( int numerator, int denominator );
73 			void set_explicit( int boolean );
74 			double scale_width( int width );
75 			double scale_height( int height );
76 	};
77 }
78 
79 #endif
80