@@ -16,64 +16,79 @@ extern "C" {
16
16
}
17
17
18
18
#include < cstring>
19
- #include < algorithm> // sort, unique
19
+ #include < sstream>
20
+ #include < algorithm>
20
21
21
22
namespace avtranscoder
22
23
{
23
24
24
- std::map< std::string, std::vector<size_t > > getVersion ()
25
+ Library::Library ( const std::string& name, const std::string& licence, const size_t major, const size_t minor, const size_t release )
26
+ : _name( name )
27
+ , _licence( licence )
28
+ , _major( major )
29
+ , _minor( minor )
30
+ , _release( release )
25
31
{
26
- std::map< std::string, std::vector< size_t > > version;
32
+ }
27
33
28
- std::vector< size_t > avutilVersion;
29
- avutilVersion. push_back ( LIBAVUTIL_VERSION_MAJOR );
30
- avutilVersion. push_back ( LIBAVUTIL_VERSION_MINOR ) ;
31
- avutilVersion. push_back ( LIBAVUTIL_VERSION_MICRO );
34
+ std::string Library::getName ()
35
+ {
36
+ return _name ;
37
+ }
32
38
33
- std::vector<size_t > avformatVersion;
34
- avformatVersion.push_back ( LIBAVFORMAT_VERSION_MAJOR );
35
- avformatVersion.push_back ( LIBAVFORMAT_VERSION_MINOR );
36
- avformatVersion.push_back ( LIBAVFORMAT_VERSION_MICRO );
39
+ std::vector<size_t > Library::getVersion ()
40
+ {
41
+ std::vector<size_t > version;
42
+ version.push_back ( _major );
43
+ version.push_back ( _minor );
44
+ version.push_back ( _release );
45
+ return version;
46
+ }
37
47
38
- std::vector<size_t > avcodecVersion;
39
- avcodecVersion.push_back ( LIBAVCODEC_VERSION_MAJOR );
40
- avcodecVersion.push_back ( LIBAVCODEC_VERSION_MINOR );
41
- avcodecVersion.push_back ( LIBAVCODEC_VERSION_MICRO );
48
+ std::string Library::getStringVersion ()
49
+ {
50
+ std::stringstream version;
51
+ version << _major << " ." ;
52
+ version << _minor << " ." ;
53
+ version << _release;
54
+ return version.str ();
55
+ }
42
56
43
- std::vector< size_t > swscaleVersion;
44
- swscaleVersion. push_back ( LIBSWSCALE_VERSION_MAJOR );
45
- swscaleVersion. push_back ( LIBSWSCALE_VERSION_MINOR ) ;
46
- swscaleVersion. push_back ( LIBSWSCALE_VERSION_MICRO );
57
+ size_t Library::getMajorVersion ()
58
+ {
59
+ return _major ;
60
+ }
47
61
48
- #ifdef AV_RESAMPLE_LIBRARY
49
- std::vector<size_t > avresampleVersion;
50
- avresampleVersion.push_back ( LIBAVRESAMPLE_VERSION_MAJOR );
51
- avresampleVersion.push_back ( LIBAVRESAMPLE_VERSION_MINOR );
52
- avresampleVersion.push_back ( LIBAVRESAMPLE_VERSION_MICRO );
53
- #else
54
- std::vector<size_t > swresampleVersion;
55
- swresampleVersion.push_back ( LIBSWRESAMPLE_VERSION_MAJOR );
56
- swresampleVersion.push_back ( LIBSWRESAMPLE_VERSION_MINOR );
57
- swresampleVersion.push_back ( LIBSWRESAMPLE_VERSION_MICRO );
58
- #endif
62
+ size_t Library::getMinorVersion ()
63
+ {
64
+ return _minor;
65
+ }
59
66
60
- version[ " avutil" ] = avutilVersion;
61
- version[ " avformat" ] = avformatVersion;
62
- version[ " avcodec" ] = avcodecVersion;
63
- version[ " swscale" ] = swscaleVersion;
64
- #ifdef AV_RESAMPLE_LIBRARY
65
- version[ " avresample" ] = avresampleVersion;
66
- #else
67
- version[ " swresample" ] = swresampleVersion;
68
- #endif
67
+ size_t Library::getReleaseVersion ()
68
+ {
69
+ return _release;
70
+ }
69
71
70
- return version;
72
+ std::string Library::getLicence ()
73
+ {
74
+ return _licence;
71
75
}
72
76
73
- std::string getLicence ()
77
+ Libraries getLibraries ()
74
78
{
75
- std::string licence ( avutil_license () );
76
- return licence;
79
+ Libraries libs;
80
+
81
+ libs.push_back ( Library ( " avutil" , avutil_license (), LIBAVUTIL_VERSION_MAJOR, LIBAVUTIL_VERSION_MINOR, LIBAVUTIL_VERSION_MICRO ) );
82
+ libs.push_back ( Library ( " avformat" , avformat_license (), LIBAVFORMAT_VERSION_MAJOR, LIBAVFORMAT_VERSION_MINOR, LIBAVFORMAT_VERSION_MICRO ) );
83
+ libs.push_back ( Library ( " avcodec" , avcodec_license (), LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, LIBAVCODEC_VERSION_MICRO ) );
84
+ #ifdef AV_RESAMPLE_LIBRARY
85
+ libs.push_back ( Library ( " avresample" , avutil_license (), LIBAVRESAMPLE_VERSION_MAJOR, LIBAVRESAMPLE_VERSION_MINOR, LIBAVRESAMPLE_VERSION_MICRO ) );
86
+ #else
87
+ libs.push_back ( Library ( " swresample" , avutil_license (), LIBSWRESAMPLE_VERSION_MAJOR, LIBSWRESAMPLE_VERSION_MINOR, LIBSWRESAMPLE_VERSION_MICRO ) );
88
+ #endif
89
+ libs.push_back ( Library ( " swscale" , avutil_license (), LIBSWSCALE_VERSION_MAJOR, LIBSWSCALE_VERSION_MINOR, LIBSWSCALE_VERSION_MICRO ) );
90
+
91
+ return libs;
77
92
}
78
93
79
94
std::vector<std::string> getInputExtensions ()
0 commit comments