• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "plugin/plugin_list.h"
17 
18 #define DEFAULT_RANK 100
19 
20 namespace OHOS {
21 namespace Media {
22 namespace Plugins {
~PluginList()23 PluginList::~PluginList()
24 {
25     pluginDescriptionList_.clear();
26 }
27 
GetInstance()28 PluginList &PluginList::GetInstance()
29 {
30     static PluginList pluginList;
31     return pluginList;
32 }
33 
GetAllPlugins()34 std::vector<PluginDescription> PluginList::GetAllPlugins()
35 {
36     return pluginDescriptionList_;
37 }
38 
GetPluginByCap(PluginType pluginType,std::string needCap)39 PluginDescription PluginList::GetPluginByCap(PluginType pluginType, std::string needCap)
40 {
41     std::vector<PluginDescription> matchedPlugins;
42     std::vector<PluginDescription>::iterator it;
43     for (it = pluginDescriptionList_.begin(); it != pluginDescriptionList_.end(); it++) {
44         PluginDescription temp = *it;
45         if (temp.pluginType == pluginType &&
46             strcmp(temp.cap.c_str(), needCap.c_str()) == 0) {
47             matchedPlugins.push_back(temp);
48         }
49     }
50     int32_t maxRank = 0;
51     PluginDescription bestMatchedPlugin;
52     for (it = matchedPlugins.begin(); it != matchedPlugins.end(); it++) {
53         PluginDescription temp = *it;
54         if (temp.rank > maxRank) {
55             bestMatchedPlugin = temp;
56         }
57     }
58     return bestMatchedPlugin;
59 }
60 
GetPluginByName(std::string name)61 PluginDescription PluginList::GetPluginByName(std::string name)
62 {
63     std::vector<PluginDescription>::iterator it;
64     PluginDescription bestMatchedPlugin;
65     for (it = pluginDescriptionList_.begin(); it != pluginDescriptionList_.end(); it++) {
66         PluginDescription temp = *it;
67         if (strcmp((*it).pluginName.c_str(), name.c_str()) == 0) {
68             bestMatchedPlugin = (*it);
69         }
70     }
71     return bestMatchedPlugin;
72 }
73 
GetPluginsByType(PluginType pluginType)74 std::vector<PluginDescription> PluginList::GetPluginsByType(PluginType pluginType)
75 {
76     std::vector<PluginDescription> matchedPlugins;
77     std::vector<PluginDescription>::iterator it;
78     for (it = pluginDescriptionList_.begin(); it != pluginDescriptionList_.end(); it++) {
79         PluginDescription temp = *it;
80         if (temp.pluginType == pluginType) {
81             matchedPlugins.push_back(temp);
82         }
83     }
84     return matchedPlugins;
85 }
86 
PluginList()87 PluginList::PluginList()
88 {
89     AddDataSourceStreamPlugins();
90     AddFileFdSourcePlugins();
91     AddFileSourcePlugins();
92     AddHttpSourcePlugins();
93     AddFFmpegDemuxerPlugins();
94     AddFFmpegAudioDecodersPlugins();
95     AddAudioVividDecodersPlugins();
96     AddG711muAudioDecoderPlugins();
97     AddLbvcAudioDecoderPlugins();
98     AddOpusAudioDecoderPlugins();
99     AddAudioServerSinkPlugins();
100     AddFFmpegAudioEncodersPlugins();
101     AddG711muAudioEncoderPlugins();
102     AddLbvcAudioEncoderPlugins();
103     AddOpusAudioEncoderPlugins();
104     AddAmrwbAudioEncoderPlugins();
105     AddAmrnbAudioEncoderPlugins();
106     AddMp3AudioEncoderPlugins();
107     AddFFmpegMuxerPlugins();
108 }
109 
AddDataSourceStreamPlugins()110 void PluginList::AddDataSourceStreamPlugins()
111 {
112     PluginDescription dataSourceStreamPlugin;
113     dataSourceStreamPlugin.pluginName = "DataStreamSource";
114     dataSourceStreamPlugin.packageName = "DataStreamSource";
115     dataSourceStreamPlugin.pluginType = PluginType::SOURCE;
116     dataSourceStreamPlugin.cap = "stream";
117     dataSourceStreamPlugin.rank = DEFAULT_RANK;
118     pluginDescriptionList_.push_back(dataSourceStreamPlugin);
119 }
120 
AddFileFdSourcePlugins()121 void PluginList::AddFileFdSourcePlugins()
122 {
123     PluginDescription fileFdSourcePlugin;
124     fileFdSourcePlugin.pluginName = "FileFdSource";
125     fileFdSourcePlugin.packageName = "FileFdSource";
126     fileFdSourcePlugin.pluginType = PluginType::SOURCE;
127     fileFdSourcePlugin.cap = "fd";
128     fileFdSourcePlugin.rank = DEFAULT_RANK;
129     pluginDescriptionList_.push_back(fileFdSourcePlugin);
130 }
131 
AddFileSourcePlugins()132 void PluginList::AddFileSourcePlugins()
133 {
134     PluginDescription fileSourcePlugin;
135     fileSourcePlugin.pluginName = "FileSource";
136     fileSourcePlugin.packageName = "FileSource";
137     fileSourcePlugin.pluginType = PluginType::SOURCE;
138     fileSourcePlugin.cap = "file";
139     fileSourcePlugin.rank = DEFAULT_RANK;
140     pluginDescriptionList_.push_back(fileSourcePlugin);
141 }
142 
AddHttpSourcePlugins()143 void PluginList::AddHttpSourcePlugins()
144 {
145     PluginDescription httpSourcePlugin;
146     httpSourcePlugin.pluginName = "HttpSource";
147     httpSourcePlugin.packageName = "HttpSource";
148     httpSourcePlugin.pluginType = PluginType::SOURCE;
149     httpSourcePlugin.cap = "http";
150     httpSourcePlugin.rank = DEFAULT_RANK;
151     pluginDescriptionList_.push_back(httpSourcePlugin);
152 
153     PluginDescription httpsSourcePlugin;
154     httpsSourcePlugin.pluginName = "HttpSource";
155     httpsSourcePlugin.packageName = "HttpSource";
156     httpsSourcePlugin.pluginType = PluginType::SOURCE;
157     httpsSourcePlugin.cap = "https";
158     httpsSourcePlugin.rank = DEFAULT_RANK;
159     pluginDescriptionList_.push_back(httpsSourcePlugin);
160 }
161 
AddAacDemuxerPlugin()162 void PluginList::AddAacDemuxerPlugin()
163 {
164     PluginDescription aacDemuxerPlugin;
165     aacDemuxerPlugin.pluginName = "avdemux_aac";
166     aacDemuxerPlugin.packageName = "FFmpegDemuxer";
167     aacDemuxerPlugin.pluginType = PluginType::DEMUXER;
168     aacDemuxerPlugin.cap = "";
169     aacDemuxerPlugin.rank = DEFAULT_RANK;
170     pluginDescriptionList_.push_back(aacDemuxerPlugin);
171 }
172 
AddAmrDemuxerPlugin()173 void PluginList::AddAmrDemuxerPlugin()
174 {
175     PluginDescription amrDemuxerPlugin;
176     amrDemuxerPlugin.pluginName = "avdemux_amr";
177     amrDemuxerPlugin.packageName = "FFmpegDemuxer";
178     amrDemuxerPlugin.pluginType = PluginType::DEMUXER;
179     amrDemuxerPlugin.cap = "";
180     amrDemuxerPlugin.rank = DEFAULT_RANK;
181     pluginDescriptionList_.push_back(amrDemuxerPlugin);
182 }
183 
AddAmrnbDemuxerPlugin()184 void PluginList::AddAmrnbDemuxerPlugin()
185 {
186     PluginDescription amrnbDemuxerPlugin;
187     amrnbDemuxerPlugin.pluginName = "avdemux_amrnb";
188     amrnbDemuxerPlugin.packageName = "FFmpegDemuxer";
189     amrnbDemuxerPlugin.pluginType = PluginType::DEMUXER;
190     amrnbDemuxerPlugin.cap = "";
191     amrnbDemuxerPlugin.rank = DEFAULT_RANK;
192     pluginDescriptionList_.push_back(amrnbDemuxerPlugin);
193 }
194 
AddAmrwbDemuxerPlugin()195 void PluginList::AddAmrwbDemuxerPlugin()
196 {
197     PluginDescription amrwbDemuxerPlugin;
198     amrwbDemuxerPlugin.pluginName = "avdemux_amrwb";
199     amrwbDemuxerPlugin.packageName = "FFmpegDemuxer";
200     amrwbDemuxerPlugin.pluginType = PluginType::DEMUXER;
201     amrwbDemuxerPlugin.cap = "";
202     amrwbDemuxerPlugin.rank = DEFAULT_RANK;
203     pluginDescriptionList_.push_back(amrwbDemuxerPlugin);
204 }
205 
AddApeDemuxerPlugin()206 void PluginList::AddApeDemuxerPlugin()
207 {
208     PluginDescription apeDemuxerPlugin;
209     apeDemuxerPlugin.pluginName = "avdemux_ape";
210     apeDemuxerPlugin.packageName = "FFmpegDemuxer";
211     apeDemuxerPlugin.pluginType = PluginType::DEMUXER;
212     apeDemuxerPlugin.cap = "";
213     apeDemuxerPlugin.rank = DEFAULT_RANK;
214     pluginDescriptionList_.push_back(apeDemuxerPlugin);
215 }
216 
AddAsfDemuxerPlugin()217 void PluginList::AddAsfDemuxerPlugin()
218 {
219     PluginDescription asfDemuxerPlugin;
220     asfDemuxerPlugin.pluginName = "avdemux_asf";
221     asfDemuxerPlugin.packageName = "FFmpegDemuxer";
222     asfDemuxerPlugin.pluginType = PluginType::DEMUXER;
223     asfDemuxerPlugin.cap = "";
224     asfDemuxerPlugin.rank = DEFAULT_RANK;
225     pluginDescriptionList_.push_back(asfDemuxerPlugin);
226 }
227 
AddAsfoDemuxerPlugin()228 void PluginList::AddAsfoDemuxerPlugin()
229 {
230     PluginDescription asfoDemuxerPlugin;
231     asfoDemuxerPlugin.pluginName = "avdemux_asf_o";
232     asfoDemuxerPlugin.packageName = "FFmpegDemuxer";
233     asfoDemuxerPlugin.pluginType = PluginType::DEMUXER;
234     asfoDemuxerPlugin.cap = "";
235     asfoDemuxerPlugin.rank = DEFAULT_RANK;
236     pluginDescriptionList_.push_back(asfoDemuxerPlugin);
237 }
238 
AddFlacDemuxerPlugin()239 void PluginList::AddFlacDemuxerPlugin()
240 {
241     PluginDescription flacDemuxerPlugin;
242     flacDemuxerPlugin.pluginName = "avdemux_flac";
243     flacDemuxerPlugin.packageName = "FFmpegDemuxer";
244     flacDemuxerPlugin.pluginType = PluginType::DEMUXER;
245     flacDemuxerPlugin.cap = "";
246     flacDemuxerPlugin.rank = DEFAULT_RANK;
247     pluginDescriptionList_.push_back(flacDemuxerPlugin);
248 }
249 
AddFlvDemuxerPlugin()250 void PluginList::AddFlvDemuxerPlugin()
251 {
252     PluginDescription flvDemuxerPlugin;
253     flvDemuxerPlugin.pluginName = "avdemux_flv";
254     flvDemuxerPlugin.packageName = "FFmpegDemuxer";
255     flvDemuxerPlugin.pluginType = PluginType::DEMUXER;
256     flvDemuxerPlugin.cap = "";
257     flvDemuxerPlugin.rank = DEFAULT_RANK;
258     pluginDescriptionList_.push_back(flvDemuxerPlugin);
259 }
260 
AddMatroskaDemuxerPlugin()261 void PluginList::AddMatroskaDemuxerPlugin()
262 {
263     PluginDescription matroskaDemuxerPlugin;
264     matroskaDemuxerPlugin.pluginName = "avdemux_matroska,webm";
265     matroskaDemuxerPlugin.packageName = "FFmpegDemuxer";
266     matroskaDemuxerPlugin.pluginType = PluginType::DEMUXER;
267     matroskaDemuxerPlugin.cap = "";
268     matroskaDemuxerPlugin.rank = DEFAULT_RANK;
269     pluginDescriptionList_.push_back(matroskaDemuxerPlugin);
270 }
271 
AddMovDemuxerPlugin()272 void PluginList::AddMovDemuxerPlugin()
273 {
274     PluginDescription movDemuxerPlugin;
275     movDemuxerPlugin.pluginName = "avdemux_mov,mp4,m4a,3gp,3g2,mj2";
276     movDemuxerPlugin.packageName = "FFmpegDemuxer";
277     movDemuxerPlugin.pluginType = PluginType::DEMUXER;
278     movDemuxerPlugin.cap = "";
279     movDemuxerPlugin.rank = DEFAULT_RANK;
280     pluginDescriptionList_.push_back(movDemuxerPlugin);
281 }
282 
AddMp3DemuxerPlugin()283 void PluginList::AddMp3DemuxerPlugin()
284 {
285     PluginDescription mp3DemuxerPlugin;
286     mp3DemuxerPlugin.pluginName = "avdemux_mp3";
287     mp3DemuxerPlugin.packageName = "FFmpegDemuxer";
288     mp3DemuxerPlugin.pluginType = PluginType::DEMUXER;
289     mp3DemuxerPlugin.cap = "";
290     mp3DemuxerPlugin.rank = DEFAULT_RANK;
291     pluginDescriptionList_.push_back(mp3DemuxerPlugin);
292 }
293 
AddMpegDemuxerPlugin()294 void PluginList::AddMpegDemuxerPlugin()
295 {
296     PluginDescription mpegDemuxerPlugin;
297     mpegDemuxerPlugin.pluginName = "avdemux_mpeg";
298     mpegDemuxerPlugin.packageName = "FFmpegDemuxer";
299     mpegDemuxerPlugin.pluginType = PluginType::DEMUXER;
300     mpegDemuxerPlugin.cap = "";
301     mpegDemuxerPlugin.rank = DEFAULT_RANK;
302     pluginDescriptionList_.push_back(mpegDemuxerPlugin);
303 }
304 
AddFFmpegDemuxerPlugins()305 void PluginList::AddFFmpegDemuxerPlugins()
306 {
307     AddAacDemuxerPlugin();
308     AddAmrDemuxerPlugin();
309     AddAmrnbDemuxerPlugin();
310     AddAmrwbDemuxerPlugin();
311     AddApeDemuxerPlugin();
312     AddAsfDemuxerPlugin();
313     AddAsfoDemuxerPlugin();
314     AddFlacDemuxerPlugin();
315     AddFlvDemuxerPlugin();
316     AddMatroskaDemuxerPlugin();
317     AddMovDemuxerPlugin();
318     AddMp3DemuxerPlugin();
319     AddMpegDemuxerPlugin();
320 
321     PluginDescription srtDemuxerPlugin;
322     srtDemuxerPlugin.pluginName = "avdemux_srt";
323     srtDemuxerPlugin.packageName = "FFmpegDemuxer";
324     srtDemuxerPlugin.pluginType = PluginType::DEMUXER;
325     srtDemuxerPlugin.cap = "";
326     srtDemuxerPlugin.rank = DEFAULT_RANK;
327     pluginDescriptionList_.push_back(srtDemuxerPlugin);
328 
329     PluginDescription vttDemuxerPlugin;
330     vttDemuxerPlugin.pluginName = "avdemux_webvtt";
331     vttDemuxerPlugin.packageName = "FFmpegDemuxer";
332     vttDemuxerPlugin.pluginType = PluginType::DEMUXER;
333     vttDemuxerPlugin.cap = "";
334     vttDemuxerPlugin.rank = DEFAULT_RANK;
335     pluginDescriptionList_.push_back(vttDemuxerPlugin);
336 
337     PluginDescription mpegtsDemuxerPlugin;
338     mpegtsDemuxerPlugin.pluginName = "avdemux_mpegts";
339     mpegtsDemuxerPlugin.packageName = "FFmpegDemuxer";
340     mpegtsDemuxerPlugin.pluginType = PluginType::DEMUXER;
341     mpegtsDemuxerPlugin.cap = "";
342     mpegtsDemuxerPlugin.rank = DEFAULT_RANK;
343     pluginDescriptionList_.push_back(mpegtsDemuxerPlugin);
344 
345     PluginDescription oggDemuxerPlugin;
346     oggDemuxerPlugin.pluginName = "avdemux_ogg";
347     oggDemuxerPlugin.packageName = "FFmpegDemuxer";
348     oggDemuxerPlugin.pluginType = PluginType::DEMUXER;
349     oggDemuxerPlugin.cap = "";
350     oggDemuxerPlugin.rank = DEFAULT_RANK;
351     pluginDescriptionList_.push_back(oggDemuxerPlugin);
352 
353     PluginDescription wavDemuxerPlugin;
354     wavDemuxerPlugin.pluginName = "avdemux_wav";
355     wavDemuxerPlugin.packageName = "FFmpegDemuxer";
356     wavDemuxerPlugin.pluginType = PluginType::DEMUXER;
357     wavDemuxerPlugin.cap = "";
358     wavDemuxerPlugin.rank = DEFAULT_RANK;
359     pluginDescriptionList_.push_back(wavDemuxerPlugin);
360 }
361 
AddMpegAudioDecoderPlugin()362 void PluginList::AddMpegAudioDecoderPlugin()
363 {
364     PluginDescription mpegAudioDecoderPlugin;
365     mpegAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.Mpeg";
366     mpegAudioDecoderPlugin.packageName = "FFmpegAudioDecoders";
367     mpegAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
368     mpegAudioDecoderPlugin.cap = "audio/mpeg";
369     mpegAudioDecoderPlugin.rank = DEFAULT_RANK;
370     pluginDescriptionList_.push_back(mpegAudioDecoderPlugin);
371 }
372 
AddAacAudioDecoderPlugin()373 void PluginList::AddAacAudioDecoderPlugin()
374 {
375     PluginDescription aacAudioDecoderPlugin;
376     aacAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.AAC";
377     aacAudioDecoderPlugin.packageName = "FFmpegAudioDecoders";
378     aacAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
379     aacAudioDecoderPlugin.cap = "audio/mp4a-latm";
380     aacAudioDecoderPlugin.rank = DEFAULT_RANK;
381     pluginDescriptionList_.push_back(aacAudioDecoderPlugin);
382 }
383 
AddFFmpegAudioDecodersPlugins()384 void PluginList::AddFFmpegAudioDecodersPlugins()
385 {
386     AddMpegAudioDecoderPlugin();
387     AddAacAudioDecoderPlugin();
388 
389     PluginDescription flacAudioDecoderPlugin;
390     flacAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.Flac";
391     flacAudioDecoderPlugin.packageName = "FFmpegAudioDecoders";
392     flacAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
393     flacAudioDecoderPlugin.cap = "audio/flac";
394     flacAudioDecoderPlugin.rank = DEFAULT_RANK;
395     pluginDescriptionList_.push_back(flacAudioDecoderPlugin);
396 
397     PluginDescription vorbisAudioDecoderPlugin;
398     vorbisAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.Vorbis";
399     vorbisAudioDecoderPlugin.packageName = "FFmpegAudioDecoders";
400     vorbisAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
401     vorbisAudioDecoderPlugin.cap = "audio/vorbis";
402     vorbisAudioDecoderPlugin.rank = DEFAULT_RANK;
403     pluginDescriptionList_.push_back(vorbisAudioDecoderPlugin);
404 
405     PluginDescription amrnbAudioDecoderPlugin;
406     amrnbAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.Amrnb";
407     amrnbAudioDecoderPlugin.packageName = "FFmpegAudioDecoders";
408     amrnbAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
409     amrnbAudioDecoderPlugin.cap = "audio/3gpp";
410     amrnbAudioDecoderPlugin.rank = DEFAULT_RANK;
411     pluginDescriptionList_.push_back(amrnbAudioDecoderPlugin);
412 
413     PluginDescription amrwbAudioDecoderPlugin;
414     amrwbAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.Amrwb";
415     amrwbAudioDecoderPlugin.packageName = "FFmpegAudioDecoders";
416     amrwbAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
417     amrwbAudioDecoderPlugin.cap = "audio/amr-wb";
418     amrwbAudioDecoderPlugin.rank = DEFAULT_RANK;
419     pluginDescriptionList_.push_back(amrwbAudioDecoderPlugin);
420 
421     PluginDescription apeAudioDecoderPlugin;
422     apeAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.Ape";
423     apeAudioDecoderPlugin.packageName = "FFmpegAudioDecoders";
424     apeAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
425     apeAudioDecoderPlugin.cap = "audio/x-ape";
426     apeAudioDecoderPlugin.rank = DEFAULT_RANK;
427     pluginDescriptionList_.push_back(apeAudioDecoderPlugin);
428 }
429 
AddAudioVividDecodersPlugins()430 void PluginList::AddAudioVividDecodersPlugins()
431 {
432     PluginDescription audioVividDecoderPlugin;
433     audioVividDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.Vivid";
434     audioVividDecoderPlugin.packageName = "AudioVividDecoder";
435     audioVividDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
436     audioVividDecoderPlugin.cap = "audio/av3a";
437     audioVividDecoderPlugin.rank = DEFAULT_RANK;
438     pluginDescriptionList_.push_back(audioVividDecoderPlugin);
439 }
440 
AddG711muAudioDecoderPlugins()441 void PluginList::AddG711muAudioDecoderPlugins()
442 {
443     PluginDescription g711muAudioDecoderPlugin;
444     g711muAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.G711mu";
445     g711muAudioDecoderPlugin.packageName = "G711muAudioDecoder";
446     g711muAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
447     g711muAudioDecoderPlugin.cap = "audio/g711mu";
448     g711muAudioDecoderPlugin.rank = DEFAULT_RANK;
449     pluginDescriptionList_.push_back(g711muAudioDecoderPlugin);
450 }
451 
AddLbvcAudioDecoderPlugins()452 void PluginList::AddLbvcAudioDecoderPlugins()
453 {
454     PluginDescription lbvcAudioDecoderPlugin;
455     lbvcAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.LBVC";
456     lbvcAudioDecoderPlugin.packageName = "LbvcAudioDecoder";
457     lbvcAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
458     lbvcAudioDecoderPlugin.cap = "audio/lbvc";
459     lbvcAudioDecoderPlugin.rank = DEFAULT_RANK;
460     pluginDescriptionList_.push_back(lbvcAudioDecoderPlugin);
461 }
462 
AddOpusAudioDecoderPlugins()463 void PluginList::AddOpusAudioDecoderPlugins()
464 {
465     PluginDescription opusAudioDecoderPlugin;
466     opusAudioDecoderPlugin.pluginName = "OH.Media.Codec.Decoder.Audio.Opus";
467     opusAudioDecoderPlugin.packageName = "OpusAudioDecoder";
468     opusAudioDecoderPlugin.pluginType = PluginType::AUDIO_DECODER;
469     opusAudioDecoderPlugin.cap = "audio/opus";
470     opusAudioDecoderPlugin.rank = DEFAULT_RANK;
471     pluginDescriptionList_.push_back(opusAudioDecoderPlugin);
472 }
473 
AddAudioServerSinkPlugins()474 void PluginList::AddAudioServerSinkPlugins()
475 {
476     PluginDescription audioServerSinkPlugin;
477     audioServerSinkPlugin.pluginName = "AudioServerSink";
478     audioServerSinkPlugin.packageName = "AudioServerSink";
479     audioServerSinkPlugin.pluginType = PluginType::AUDIO_SINK;
480     audioServerSinkPlugin.cap = "audio/raw";
481     audioServerSinkPlugin.rank = DEFAULT_RANK;
482     pluginDescriptionList_.push_back(audioServerSinkPlugin);
483 }
484 
AddFFmpegAudioEncodersPlugins()485 void PluginList::AddFFmpegAudioEncodersPlugins()
486 {
487     PluginDescription aacAudioEncoderPlugin;
488     aacAudioEncoderPlugin.pluginName = "OH.Media.Codec.Encoder.Audio.AAC";
489     aacAudioEncoderPlugin.packageName = "FFmpegAudioEncoders";
490     aacAudioEncoderPlugin.pluginType = PluginType::AUDIO_ENCODER;
491     aacAudioEncoderPlugin.cap = "audio/mp4a-latm";
492     aacAudioEncoderPlugin.rank = DEFAULT_RANK;
493     pluginDescriptionList_.push_back(aacAudioEncoderPlugin);
494 
495     PluginDescription flacAudioEncoderPlugin;
496     flacAudioEncoderPlugin.pluginName = "OH.Media.Codec.Encoder.Audio.Flac";
497     flacAudioEncoderPlugin.packageName = "FFmpegAudioEncoders";
498     flacAudioEncoderPlugin.pluginType = PluginType::AUDIO_ENCODER;
499     flacAudioEncoderPlugin.cap = "audio/flac";
500     flacAudioEncoderPlugin.rank = DEFAULT_RANK;
501     pluginDescriptionList_.push_back(flacAudioEncoderPlugin);
502 }
503 
AddG711muAudioEncoderPlugins()504 void PluginList::AddG711muAudioEncoderPlugins()
505 {
506     PluginDescription g711muAudioEncoderPlugin;
507     g711muAudioEncoderPlugin.pluginName = "OH.Media.Codec.Encoder.Audio.G711mu";
508     g711muAudioEncoderPlugin.packageName = "G711muAudioEncoder";
509     g711muAudioEncoderPlugin.pluginType = PluginType::AUDIO_ENCODER;
510     g711muAudioEncoderPlugin.cap = "audio/g711mu";
511     g711muAudioEncoderPlugin.rank = DEFAULT_RANK;
512     pluginDescriptionList_.push_back(g711muAudioEncoderPlugin);
513 }
514 
AddLbvcAudioEncoderPlugins()515 void PluginList::AddLbvcAudioEncoderPlugins()
516 {
517     PluginDescription lbvcAudioEncoderPlugin;
518     lbvcAudioEncoderPlugin.pluginName = "OH.Media.Codec.Encoder.Audio.LBVC";
519     lbvcAudioEncoderPlugin.packageName = "LbvcAudioEncoder";
520     lbvcAudioEncoderPlugin.pluginType = PluginType::AUDIO_ENCODER;
521     lbvcAudioEncoderPlugin.cap = "audio/lbvc";
522     lbvcAudioEncoderPlugin.rank = DEFAULT_RANK;
523     pluginDescriptionList_.push_back(lbvcAudioEncoderPlugin);
524 }
525 
AddOpusAudioEncoderPlugins()526 void PluginList::AddOpusAudioEncoderPlugins()
527 {
528     PluginDescription opusAudioEncoderPlugin;
529     opusAudioEncoderPlugin.pluginName = "OH.Media.Codec.Encoder.Audio.Opus";
530     opusAudioEncoderPlugin.packageName = "OpusAudioEncoder";
531     opusAudioEncoderPlugin.pluginType = PluginType::AUDIO_ENCODER;
532     opusAudioEncoderPlugin.cap = "audio/opus";
533     opusAudioEncoderPlugin.rank = DEFAULT_RANK;
534     pluginDescriptionList_.push_back(opusAudioEncoderPlugin);
535 }
536 
AddAmrwbAudioEncoderPlugins()537 void PluginList::AddAmrwbAudioEncoderPlugins()
538 {
539     PluginDescription amrwbAudioEncoderPlugin;
540     amrwbAudioEncoderPlugin.pluginName = "OH.Media.Codec.Encoder.Audio.Amrwb";
541     amrwbAudioEncoderPlugin.packageName = "AmrWbAudioEncoder";
542     amrwbAudioEncoderPlugin.pluginType = PluginType::AUDIO_ENCODER;
543     amrwbAudioEncoderPlugin.cap = "audio/amrwb";
544     amrwbAudioEncoderPlugin.rank = DEFAULT_RANK;
545     pluginDescriptionList_.push_back(amrwbAudioEncoderPlugin);
546 }
AddAmrnbAudioEncoderPlugins()547 void PluginList::AddAmrnbAudioEncoderPlugins()
548 {
549     PluginDescription amrnbAudioEncoderPlugin;
550     amrnbAudioEncoderPlugin.pluginName = "OH.Media.Codec.Encoder.Audio.Amrnb";
551     amrnbAudioEncoderPlugin.packageName = "AmrNbAudioEncoder";
552     amrnbAudioEncoderPlugin.pluginType = PluginType::AUDIO_ENCODER;
553     amrnbAudioEncoderPlugin.cap = "audio/amrnb";
554     amrnbAudioEncoderPlugin.rank = DEFAULT_RANK;
555     pluginDescriptionList_.push_back(amrnbAudioEncoderPlugin);
556 }
557 
AddMp3AudioEncoderPlugins()558 void PluginList::AddMp3AudioEncoderPlugins()
559 {
560     PluginDescription mp3AudioEncoderPlugin;
561     mp3AudioEncoderPlugin.pluginName = "OH.Media.Codec.Encoder.Audio.Mp3";
562     mp3AudioEncoderPlugin.packageName = "Mp3AudioEncoder";
563     mp3AudioEncoderPlugin.pluginType = PluginType::AUDIO_ENCODER;
564     mp3AudioEncoderPlugin.cap = "audio/mpeg";
565     mp3AudioEncoderPlugin.rank = DEFAULT_RANK;
566     pluginDescriptionList_.push_back(mp3AudioEncoderPlugin);
567 }
568 
AddFFmpegMuxerPlugins()569 void PluginList::AddFFmpegMuxerPlugins()
570 {
571     PluginDescription mp4MuxerPlugin;
572     mp4MuxerPlugin.pluginName = "ffmpegMux_mp4";
573     mp4MuxerPlugin.packageName = "FFmpegMuxer";
574     mp4MuxerPlugin.pluginType = PluginType::MUXER;
575     mp4MuxerPlugin.cap = "media/mp4";
576     mp4MuxerPlugin.rank = DEFAULT_RANK;
577     pluginDescriptionList_.push_back(mp4MuxerPlugin);
578 
579     PluginDescription m4aMuxerPlugin;
580     m4aMuxerPlugin.pluginName = "ffmpegMux_ipod";
581     m4aMuxerPlugin.packageName = "FFmpegMuxer";
582     m4aMuxerPlugin.pluginType = PluginType::MUXER;
583     m4aMuxerPlugin.cap = "media/m4a";
584     m4aMuxerPlugin.rank = DEFAULT_RANK;
585     pluginDescriptionList_.push_back(m4aMuxerPlugin);
586 
587     PluginDescription amrMuxerPlugin;
588     amrMuxerPlugin.pluginName = "ffmpegMux_amr";
589     amrMuxerPlugin.packageName = "FFmpegMuxer";
590     amrMuxerPlugin.pluginType = PluginType::MUXER;
591     amrMuxerPlugin.cap = "media/amr";
592     amrMuxerPlugin.rank = DEFAULT_RANK;
593     pluginDescriptionList_.push_back(amrMuxerPlugin);
594 
595     PluginDescription mp3MuxerPlugin;
596     mp3MuxerPlugin.pluginName = "ffmpegMux_mp3";
597     mp3MuxerPlugin.packageName = "FFmpegMuxer";
598     mp3MuxerPlugin.pluginType = PluginType::MUXER;
599     mp3MuxerPlugin.cap = "media/mp3";
600     mp3MuxerPlugin.rank = DEFAULT_RANK;
601     pluginDescriptionList_.push_back(mp3MuxerPlugin);
602 
603     PluginDescription wavMuxerPlugin;
604     wavMuxerPlugin.pluginName = "ffmpegMux_wav";
605     wavMuxerPlugin.packageName = "FFmpegMuxer";
606     wavMuxerPlugin.pluginType = PluginType::MUXER;
607     wavMuxerPlugin.cap = "media/wav";
608     wavMuxerPlugin.rank = DEFAULT_RANK;
609     pluginDescriptionList_.push_back(wavMuxerPlugin);
610 }
611 
612 } // namespace Plugins
613 } // namespace Media
614 } // namespace OHOS