35 if (ext ==
"pz" || ext ==
"gz") {
46 if (_deferred_audio_types.count(ext)) {
48 _deferred_audio_types.erase(ext);
52 if (_audio_type_registry.count(ext)) {
53 MakeAudioFunc func = _audio_type_registry[ext];
60 if (_deferred_audio_types.count(
"*")) {
62 _deferred_audio_types.erase(
"*");
65 if (_audio_type_registry.count(
"*")) {
66 MakeAudioFunc func = _audio_type_registry[
"*"];
72 <<
"Support for audio files with extension ." << ext <<
" was not enabled.\n";
88 vector_string::const_iterator wi;
89 for (wi = words.begin(); wi != words.end(); ++wi) {
90 if (_audio_type_registry.count(*wi)) {
92 <<
"Attempt to register multiple audio types with extension " << (*wi) <<
"\n";
93 }
else if (movies_cat->is_debug()) {
95 <<
"Registered audio type with extension " << (*wi) <<
"\n";
97 _audio_type_registry[*wi] = func;
107 static bool audio_types_loaded =
false;
109 if (!audio_types_loaded) {
112 for (
int i = 0; i < num_unique_values; i++) {
118 if (words.size() == 1) {
120 string name = words[0];
121 Filename dlname = Filename::dso_filename(
"lib" + name +
".so");
123 <<
"loading audio type module: " << name << endl;
124 void *tmp = load_dso(get_plugin_path().get_value(), dlname);
125 if (tmp ==
nullptr) {
126 std::string error = load_dso_error();
129 <<
": " << error << endl;
130 }
else if (movies_cat.is_debug()) {
132 <<
"done loading audio type module: " << name << endl;
135 }
else if (words.size() > 1) {
139 size_t num_extensions = words.size() - 1;
140 string library_name = words[num_extensions];
142 for (
size_t i = 0; i < num_extensions; i++) {
143 string extension =
downcase(words[i]);
144 if (extension[0] ==
'.') {
145 extension = extension.substr(1);
148 _deferred_audio_types[extension] = library_name;
153 audio_types_loaded =
true;
165 if (ext ==
"pz" || ext ==
"gz") {
176 if (_deferred_video_types.count(ext)) {
178 _deferred_video_types.erase(ext);
182 if (_video_type_registry.count(ext)) {
183 MakeVideoFunc func = _video_type_registry[ext];
185 return (*func)(name);
190 if (_deferred_video_types.count(
"*")) {
192 _deferred_video_types.erase(
"*");
195 if (_video_type_registry.count(
"*")) {
196 MakeVideoFunc func = _video_type_registry[
"*"];
198 return (*func)(name);
202 <<
"Support for video files with extension ." << ext <<
" was not enabled.\n";
218 vector_string::const_iterator wi;
219 for (wi = words.begin(); wi != words.end(); ++wi) {
220 if (_video_type_registry.count(*wi)) {
221 movies_cat->warning()
222 <<
"Attempt to register multiple video types with extension " << (*wi) <<
"\n";
223 }
else if (movies_cat->is_debug()) {
225 <<
"Registered video type with extension " << (*wi) <<
"\n";
227 _video_type_registry[*wi] = func;
237 static bool video_types_loaded =
false;
239 if (!video_types_loaded) {
242 for (
int i = 0; i < num_unique_values; i++) {
248 if (words.size() == 1) {
250 string name = words[0];
251 Filename dlname = Filename::dso_filename(
"lib" + name +
".so");
253 <<
"loading video type module: " << name << endl;
254 void *tmp = load_dso(get_plugin_path().get_value(), dlname);
255 if (tmp ==
nullptr) {
256 std::string error = load_dso_error();
259 <<
": " << error << endl;
260 }
else if (movies_cat.is_debug()) {
262 <<
"done loading video type module: " << name << endl;
265 }
else if (words.size() > 1) {
269 size_t num_extensions = words.size() - 1;
270 string library_name = words[num_extensions];
272 for (
size_t i = 0; i < num_extensions; i++) {
273 string extension =
downcase(words[i]);
274 if (extension[0] ==
'.') {
275 extension = extension.substr(1);
278 _deferred_video_types[extension] = library_name;
283 video_types_loaded =
true;
293 Filename dlname = Filename::dso_filename(
"lib" + name +
".so");
295 <<
"loading video type module: " << name << endl;
296 void *tmp = load_dso(get_plugin_path().get_value(), dlname);
298 if (tmp ==
nullptr) {
299 std::string error = load_dso_error();
302 <<
": " << error << endl;
303 }
else if (movies_cat.is_debug()) {
305 <<
"done loading video type module: " << name << endl;