Home | History | Annotate | Download | only in sdm660
      1 /*--------------------------------------------------------------------------
      2 Copyright (c) 2016, The Linux Foundation. All rights reserved.
      3 
      4 Redistribution and use in source and binary forms, with or without
      5 modification, are permitted provided that the following conditions are
      6 met:
      7     * Redistributions of source code must retain the above copyright
      8       notice, this list of conditions and the following disclaimer.
      9     * Redistributions in binary form must reproduce the above
     10       copyright notice, this list of conditions and the following
     11       disclaimer in the documentation and/or other materials provided
     12       with the distribution.
     13     * Neither the name of The Linux Foundation nor the names of its
     14       contributors may be used to endorse or promote products derived
     15       from this software without specific prior written permission.
     16 
     17 THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
     18 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     19 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
     20 ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
     21 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     22 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     23 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
     24 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     25 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
     26 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
     27 IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     28 --------------------------------------------------------------------------*/
     29 /*============================================================================
     30                             O p e n M A X   w r a p p e r s
     31                              O p e n  M A X   C o r e
     32 
     33   This module contains the registry table for the OpenMAX core.
     34 
     35 *//*========================================================================*/
     36 
     37 
     38 #include "qc_omx_core.h"
     39 
     40 omx_core_cb_type core[] =
     41 {
     42   {
     43     "OMX.qcom.video.decoder.avc",
     44     NULL, // Create instance function
     45     // Unique instance handle
     46     {
     47       NULL,
     48       NULL,
     49       NULL,
     50       NULL
     51     },
     52     NULL,   // Shared object library handle
     53     "libOmxVdec.so",
     54     {
     55       "video_decoder.avc"
     56     }
     57   },
     58   {
     59     "OMX.qcom.video.decoder.avc.dsmode",
     60     NULL, // Create instance function
     61          // Unique instance handle
     62     {
     63       NULL,
     64       NULL,
     65       NULL,
     66       NULL
     67     },
     68     NULL,   // Shared object library handle
     69     "libOmxVideoDSMode.so",
     70     {
     71       "video_decoder.avc"
     72     }
     73   },
     74   {
     75     "OMX.qcom.video.decoder.avc.secure",
     76     NULL, // Create instance function
     77     // Unique instance handle
     78     {
     79       NULL,
     80       NULL,
     81       NULL,
     82       NULL
     83     },
     84     NULL,   // Shared object library handle
     85     "libOmxVdec.so",
     86     {
     87       "video_decoder.avc"
     88     }
     89   },
     90   {
     91     "OMX.qcom.video.decoder.avc.secure.dsmode",
     92     NULL, // Create instance function
     93     // Unique instance handle
     94     {
     95       NULL,
     96       NULL,
     97       NULL,
     98       NULL
     99     },
    100     NULL,   // Shared object library handle
    101     "libOmxVideoDSMode.so",
    102     {
    103       "video_decoder.avc"
    104     }
    105   },
    106 
    107   {
    108     "OMX.qcom.video.decoder.divx4",
    109     NULL,   // Create instance function
    110     // Unique instance handle
    111     {
    112       NULL,
    113       NULL,
    114       NULL,
    115       NULL
    116     },
    117     NULL,   // Shared object library handle
    118     "libOmxVdec.so",
    119     {
    120       "video_decoder.divx"
    121     }
    122   },
    123   {
    124     "OMX.qcom.video.decoder.divx",
    125     NULL,   // Create instance function
    126     // Unique instance handle
    127     {
    128       NULL,
    129       NULL,
    130       NULL,
    131       NULL
    132     },
    133     NULL,   // Shared object library handle
    134     "libOmxVdec.so",
    135     {
    136       "video_decoder.divx"
    137     }
    138   },
    139   {
    140     "OMX.qcom.video.decoder.divx311",
    141     NULL,   // Create instance function
    142     // Unique instance handle
    143     {
    144       NULL,
    145       NULL,
    146       NULL,
    147       NULL
    148     },
    149     NULL,   // Shared object library handle
    150     "libOmxVdec.so",
    151     {
    152       "video_decoder.divx"
    153     }
    154   },
    155   {
    156     "OMX.qcom.video.decoder.mpeg4",
    157     NULL, // Create instance function
    158     // Unique instance handle
    159     {
    160       NULL,
    161       NULL,
    162       NULL,
    163       NULL
    164     },
    165     NULL,   // Shared object library handle
    166     "libOmxVdec.so",
    167     {
    168       "video_decoder.mpeg4"
    169     }
    170   },
    171   {
    172     "OMX.qcom.video.decoder.mpeg4.secure",
    173     NULL, // Create instance function
    174     // Unique instance handle
    175     {
    176       NULL,
    177       NULL,
    178       NULL,
    179       NULL
    180     },
    181     NULL,   // Shared object library handle
    182     "libOmxVdec.so",
    183     {
    184       "video_decoder.mpeg4"
    185     }
    186   },
    187   {
    188     "OMX.qcom.video.decoder.mpeg2",
    189     NULL, // Create instance function
    190     // Unique instance handle
    191     {
    192       NULL,
    193       NULL,
    194       NULL,
    195       NULL
    196     },
    197     NULL,   // Shared object library handle
    198     "libOmxVdec.so",
    199     {
    200       "video_decoder.mpeg2"
    201     }
    202   },
    203   {
    204     "OMX.qcom.video.decoder.mpeg2.secure",
    205     NULL, // Create instance function
    206     // Unique instance handle
    207     {
    208       NULL,
    209       NULL,
    210       NULL,
    211       NULL
    212     },
    213     NULL,   // Shared object library handle
    214     "libOmxVdec.so",
    215     {
    216       "video_decoder.mpeg2"
    217     }
    218   },
    219   {
    220     "OMX.qcom.video.decoder.vc1",
    221     NULL, // Create instance function
    222     // Unique instance handle
    223     {
    224       NULL,
    225       NULL,
    226       NULL,
    227       NULL
    228     },
    229     NULL,   // Shared object library handle
    230     "libOmxVdec.so",
    231     {
    232       "video_decoder.vc1"
    233     }
    234   },
    235   {
    236     "OMX.qcom.video.decoder.vc1.secure",
    237     NULL, // Create instance function
    238     // Unique instance handle
    239     {
    240       NULL,
    241       NULL,
    242       NULL,
    243       NULL
    244     },
    245     NULL,   // Shared object library handle
    246     "libOmxVdec.so",
    247     {
    248       "video_decoder.vc1"
    249     }
    250   },
    251   {
    252     "OMX.qcom.video.decoder.wmv",
    253     NULL, // Create instance function
    254     // Unique instance handle
    255     {
    256       NULL,
    257       NULL,
    258       NULL,
    259       NULL
    260     },
    261     NULL,   // Shared object library handle
    262     "libOmxVdec.so",
    263     {
    264       "video_decoder.vc1"
    265     }
    266   },
    267   {
    268     "OMX.qcom.video.decoder.wmv.secure",
    269     NULL, // Create instance function
    270     // Unique instance handle
    271     {
    272       NULL,
    273       NULL,
    274       NULL,
    275       NULL
    276     },
    277     NULL,   // Shared object library handle
    278     "libOmxVdec.so",
    279     {
    280       "video_decoder.vc1"
    281     }
    282   },
    283   {
    284     "OMX.qcom.video.decoder.h263",
    285     NULL, // Create instance function
    286     // Unique instance handle
    287     {
    288       NULL,
    289       NULL,
    290       NULL,
    291       NULL
    292     },
    293     NULL,   // Shared object library handle
    294     "libOmxVdec.so",
    295     {
    296       "video_decoder.h263"
    297     }
    298   },
    299   {
    300     "OMX.qcom.video.decoder.hevc",
    301     NULL,   // Create instance function
    302     // Unique instance handle
    303     {
    304       NULL,
    305       NULL,
    306       NULL,
    307       NULL
    308     },
    309     NULL,   // Shared object library handle
    310     "libOmxVdec.so",
    311     {
    312       "video_decoder.hevc"
    313     }
    314   },
    315   {
    316     "OMX.qcom.video.decoder.hevc.secure",
    317     NULL,   // Create instance function
    318     // Unique instance handle
    319     {
    320       NULL,
    321       NULL,
    322       NULL,
    323       NULL
    324     },
    325     NULL,   // Shared object library handle
    326     "libOmxVdec.so",
    327     {
    328       "video_decoder.hevc"
    329     }
    330   },
    331   {
    332     "OMX.qcom.video.decoder.vp8",
    333     NULL, // Create instance function
    334     // Unique instance handle
    335     {
    336       NULL,
    337       NULL,
    338       NULL,
    339       NULL
    340     },
    341     NULL,   // Shared object library handle
    342     "libOmxVdec.so",
    343     {
    344       "video_decoder.vp8"
    345     }
    346   },
    347   {
    348     "OMX.qcom.video.decoder.vp9",
    349     NULL, // Create instance function
    350     // Unique instance handle
    351     {
    352       NULL,
    353       NULL,
    354       NULL,
    355       NULL
    356     },
    357     NULL,   // Shared object library handle
    358     "libOmxVdec.so",
    359     {
    360       "video_decoder.vp9"
    361     }
    362   },
    363   {
    364     "OMX.qcom.video.decoder.vp9.secure",
    365     NULL, // Create instance function
    366     // Unique instance handle
    367     {
    368       NULL,
    369       NULL,
    370       NULL,
    371       NULL
    372     },
    373     NULL,   // Shared object library handle
    374     "libOmxVdec.so",
    375     {
    376       "video_decoder.vp9"
    377     }
    378   },
    379   {
    380     "OMX.qcom.video.encoder.mpeg4",
    381     NULL, // Create instance function
    382     // Unique instance handle
    383     {
    384       NULL,
    385       NULL,
    386       NULL,
    387       NULL
    388     },
    389     NULL,   // Shared object library handle
    390     "libOmxVenc.so",
    391     {
    392       "video_encoder.mpeg4"
    393     }
    394   },
    395   {
    396     "OMX.qcom.video.encoder.h263",
    397     NULL, // Create instance function
    398     // Unique instance handle
    399     {
    400       NULL,
    401       NULL,
    402       NULL,
    403       NULL
    404     },
    405     NULL,   // Shared object library handle
    406     "libOmxVenc.so",
    407     {
    408       "video_encoder.h263"
    409     }
    410   },
    411   {
    412     "OMX.qcom.video.encoder.avc",
    413     NULL, // Create instance function
    414     // Unique instance handle
    415     {
    416       NULL,
    417       NULL,
    418       NULL,
    419       NULL
    420     },
    421     NULL,   // Shared object library handle
    422     "libOmxVenc.so",
    423     {
    424       "video_encoder.avc"
    425     }
    426   },
    427   {
    428     "OMX.qcom.video.encoder.avc.secure",
    429     NULL, // Create instance function
    430     // Unique instance handle
    431     {
    432       NULL,
    433       NULL,
    434       NULL,
    435       NULL
    436     },
    437     NULL,   // Shared object library handle
    438     "libOmxVenc.so",
    439     {
    440       "video_encoder.avc"
    441     }
    442   },
    443   {
    444     "OMX.qcom.video.encoder.vp8",
    445     NULL, // Create instance function
    446     // Unique instance handle
    447     {
    448       NULL,
    449       NULL,
    450       NULL,
    451       NULL
    452     },
    453     NULL,   // Shared object library handle
    454     "libOmxVenc.so",
    455     {
    456       "video_encoder.vp8"
    457     }
    458   },
    459   {
    460     "OMX.qcom.video.encoder.hevc",
    461     NULL,   // Create instance function
    462     // Unique instance handle
    463     {
    464       NULL,
    465       NULL,
    466       NULL,
    467       NULL
    468     },
    469     NULL,   // Shared object library handle
    470     "libOmxVenc.so",
    471     {
    472       "video_encoder.hevc"
    473     }
    474   },
    475   {
    476     "OMX.qcom.video.encoder.hevc.secure",
    477     NULL,   // Create instance function
    478     // Unique instance handle
    479     {
    480       NULL,
    481       NULL,
    482       NULL,
    483       NULL
    484     },
    485     NULL,   // Shared object library handle
    486     "libOmxVenc.so",
    487     {
    488       "video_encoder.hevc"
    489     }
    490   },
    491   {
    492     "OMX.qcom.audio.decoder.Qcelp13",
    493     NULL, // Create instance function
    494     // Unique instance handle
    495     {
    496       NULL,
    497       NULL,
    498       NULL,
    499       NULL
    500     },
    501     NULL,   // Shared object library handle
    502     "libOmxQcelp13Dec.so",
    503     {
    504       "audio_decoder.Qcelp13"
    505     }
    506   },
    507   {
    508     "OMX.qcom.audio.decoder.evrc",
    509     NULL, // Create instance function
    510     // Unique instance handle
    511     {
    512       NULL,
    513       NULL,
    514       NULL,
    515       NULL
    516     },
    517     NULL,   // Shared object library handle
    518     "libOmxEvrcDec.so",
    519     {
    520       "audio_decoder.evrc"
    521     }
    522   },
    523   {
    524     "OMX.qcom.audio.decoder.wma",
    525     NULL, // Create instance function
    526     // Unique instance handle
    527     {
    528      NULL,
    529      NULL,
    530      NULL,
    531      NULL
    532     },
    533     NULL,   // Shared object library handle
    534     "libOmxWmaDec.so",
    535     {
    536      "audio_decoder.wma"
    537     }
    538   },
    539   {
    540     "OMX.qcom.audio.decoder.wma10Pro",
    541     NULL,   // Create instance function
    542     // Unique instance handle
    543     {
    544      NULL,
    545      NULL,
    546      NULL,
    547      NULL
    548     },
    549     NULL,   // Shared object library handle
    550     "libOmxWmaDec.so",
    551     {
    552      "audio_decoder.wma"
    553     }
    554   },
    555   {
    556     "OMX.qcom.audio.decoder.wmaLossLess",
    557     NULL,   // Create instance function
    558     // Unique instance handle
    559     {
    560      NULL,
    561      NULL,
    562      NULL,
    563      NULL
    564     },
    565     NULL,   // Shared object library handle
    566     "libOmxWmaDec.so",
    567     {
    568      "audio_decoder.wma"
    569     }
    570   },
    571   {
    572     "OMX.qcom.audio.decoder.amrwbplus",
    573     NULL,   // Create instance function
    574     // Unique instance handle
    575     {
    576      NULL,
    577      NULL,
    578      NULL,
    579      NULL
    580     },
    581     NULL,   // Shared object library handle
    582     "libOmxAmrwbplusDec.so",
    583     {
    584      "audio_decoder.awbplus"
    585     }
    586   },
    587   {
    588     "OMX.qcom.audio.decoder.alac",
    589     NULL,   // Create instance function
    590     // Unique instance handle
    591     {
    592       NULL,
    593       NULL,
    594       NULL,
    595       NULL
    596     },
    597     NULL,   // Shared object library handle
    598     "libOmxAlacDec.so",
    599     {
    600       "audio_decoder.alac"
    601     }
    602   },
    603   {
    604     "OMX.qti.audio.decoder.alac.sw",
    605     NULL,   // Create instance function
    606     {
    607       NULL,
    608       NULL,
    609       NULL,
    610       NULL
    611     },
    612     NULL,   // Shared object library handle
    613     "libOmxAlacDecSw.so",
    614     {
    615       "audio_decoder.alac"
    616     }
    617   },
    618   {
    619     "OMX.qcom.audio.decoder.ape",
    620     NULL,   // Create instance function
    621     // Unique instance handle
    622     {
    623       NULL,
    624       NULL,
    625       NULL,
    626       NULL
    627     },
    628     NULL,   // Shared object library handle
    629     "libOmxApeDec.so",
    630     {
    631       "audio_decoder.ape"
    632     }
    633   },
    634   {
    635     "OMX.qti.audio.decoder.ape.sw",
    636     NULL,   // Create instance function
    637     {
    638       NULL,
    639       NULL,
    640       NULL,
    641       NULL
    642     },
    643     NULL,   // Shared object library handle
    644     "libOmxApeDecSw.so",
    645     {
    646       "audio_decoder.ape"
    647     }
    648   },
    649   {
    650     "OMX.qti.audio.decoder.dsd",
    651     NULL,   // Create instance function
    652     // Unique instance handle
    653     {
    654       NULL,
    655       NULL,
    656       NULL,
    657       NULL
    658     },
    659     NULL,   // Shared object library handle
    660     "libOmxDsdDec.so",
    661     {
    662       "audio_decoder.dsd"
    663     }
    664   },
    665   {
    666     "OMX.qcom.audio.encoder.aac",
    667     NULL, // Create instance function
    668     // Unique instance handle
    669     {
    670       NULL,
    671       NULL,
    672       NULL,
    673       NULL
    674     },
    675     NULL,  // Shared object library handle
    676     "libOmxAacEnc.so",
    677     {
    678       "audio_encoder.aac"
    679     }
    680   },
    681   {
    682     "OMX.qcom.audio.encoder.qcelp13",
    683     NULL,   // Create instance function
    684     // Unique instance handle
    685     {
    686       NULL,
    687       NULL,
    688       NULL,
    689       NULL
    690     },
    691     NULL,   // Shared object library handle
    692     "libOmxQcelp13Enc.so",
    693     {
    694       "audio_encoder.qcelp13"
    695     }
    696   },
    697   {
    698     "OMX.qcom.audio.encoder.evrc",
    699     NULL,   // Create instance function
    700     // Unique instance handle
    701     {
    702       NULL,
    703       NULL,
    704       NULL,
    705       NULL
    706     },
    707     NULL,   // Shared object library handle
    708     "libOmxEvrcEnc.so",
    709     {
    710       "audio_encoder.evrc"
    711     }
    712   },
    713   {
    714     "OMX.qcom.audio.encoder.amrnb",
    715     NULL,   // Create instance function
    716     // Unique instance handle
    717     {
    718       NULL,
    719       NULL,
    720       NULL,
    721       NULL
    722     },
    723     NULL,   // Shared object library handle
    724     "libOmxAmrEnc.so",
    725     {
    726       "audio_encoder.amrnb"
    727     }
    728   },
    729  {
    730     "OMX.qcom.audio.decoder.aac",
    731     NULL,   // Create instance function
    732     // Unique instance handle
    733     {
    734       NULL,
    735       NULL,
    736       NULL,
    737       NULL
    738     },
    739     NULL,   // Shared object library handle
    740     "libOmxAacDec.so",
    741     {
    742       "audio_decoder.aac"
    743     }
    744   },
    745  {
    746     "OMX.qcom.audio.decoder.multiaac",
    747     NULL,   // Create instance function
    748     // Unique instance handle
    749     {
    750       NULL,
    751       NULL,
    752       NULL,
    753       NULL
    754     },
    755     NULL,   // Shared object library handle
    756     "libOmxAacDec.so",
    757     {
    758       "audio_decoder.aac"
    759     }
    760   },
    761   {
    762     "AIV.play.generic",
    763     NULL, // Create instance function
    764     // Unique instance handle
    765     {
    766       NULL,
    767       NULL,
    768       NULL,
    769       NULL
    770     },
    771     NULL,  // Shared object library handle
    772     "libAivPlay.so",
    773     {
    774       "AIV.play.role.generic"
    775     }
    776   },
    777   {
    778     "OMX.qcom.file.muxer",
    779     NULL, // Create instance function
    780     // Unique instance handle
    781     {
    782       NULL,
    783       NULL,
    784       NULL,
    785       NULL
    786     },
    787     NULL,   // Shared object library handle
    788     "libOmxMux.so",
    789     {
    790       "container_muxer.mp2"
    791     }
    792   },
    793   {
    794     "OMX.qcom.video.postprocessing",
    795     NULL, // Create instance function
    796     // Unique instance handle
    797     {
    798       NULL,
    799       NULL,
    800       NULL,
    801       NULL
    802     },
    803     NULL,   // Shared object library handle
    804     "libOmxVdpp.so",
    805     {
    806       "videopostprocessing"
    807     }
    808   },
    809   {
    810     "OMX.qti.vdec.vpp",
    811     NULL, // Create instance function
    812     // Unique instance handle
    813     {
    814       NULL,
    815       NULL,
    816       NULL,
    817       NULL
    818     },
    819     NULL,   // Shared object library handle
    820     "libOmxVpp.so",
    821     {
    822       "video_decoder.vpp"
    823     }
    824   }
    825 };
    826 
    827 const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type);
    828 
    829 
    830