1 /*-------------------------------------------------------------------------- 2 Copyright (c) 2015, 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 /*============================================================================ 31 O p e n M A X w r a p p e r s 32 O p e n M A X C o r e 33 34 This module contains the registry table for the QTI's OpenMAX core. 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 }, 49 NULL, // Shared object library handle 50 "libOmxVdec.so", 51 { 52 "video_decoder.avc" 53 } 54 }, 55 { 56 "OMX.qcom.video.decoder.mpeg4", 57 NULL, // Create instance function 58 // Unique instance handle 59 { 60 NULL 61 }, 62 NULL, // Shared object library handle 63 "libOmxVdec.so", 64 { 65 "video_decoder.mpeg4" 66 } 67 }, 68 { 69 "OMX.qcom.video.decoder.mpeg4.secure", 70 NULL, // Create instance function 71 // Unique instance handle 72 { 73 NULL 74 }, 75 NULL, // Shared object library handle 76 "libOmxVdec.so", 77 { 78 "video_decoder.mpeg4" 79 } 80 }, 81 { 82 "OMX.qcom.video.decoder.mpeg2", 83 NULL, // Create instance function 84 // Unique instance handle 85 { 86 NULL 87 }, 88 NULL, // Shared object library handle 89 "libOmxVdec.so", 90 { 91 "video_decoder.mpeg2" 92 } 93 }, 94 { 95 "OMX.qcom.video.decoder.mpeg2.secure", 96 NULL, // Create instance function 97 // Unique instance handle 98 { 99 NULL 100 }, 101 NULL, // Shared object library handle 102 "libOmxVdec.so", 103 { 104 "video_decoder.mpeg2" 105 } 106 }, 107 { 108 "OMX.qcom.video.decoder.vc1", 109 NULL, // Create instance function 110 // Unique instance handle 111 { 112 NULL 113 }, 114 NULL, // Shared object library handle 115 "libOmxVdec.so", 116 { 117 "video_decoder.vc1" 118 } 119 }, 120 { 121 "OMX.qcom.video.decoder.vc1.secure", 122 NULL, // Create instance function 123 // Unique instance handle 124 { 125 NULL 126 }, 127 NULL, // Shared object library handle 128 "libOmxVdec.so", 129 { 130 "video_decoder.vc1" 131 } 132 }, 133 { 134 "OMX.qcom.video.decoder.wmv", 135 NULL, // Create instance function 136 // Unique instance handle 137 { 138 NULL 139 }, 140 NULL, // Shared object library handle 141 "libOmxVdec.so", 142 { 143 "video_decoder.vc1" 144 } 145 }, 146 { 147 "OMX.qcom.video.decoder.wmv.secure", 148 NULL, // Create instance function 149 // Unique instance handle 150 { 151 NULL 152 }, 153 NULL, // Shared object library handle 154 "libOmxVdec.so", 155 { 156 "video_decoder.vc1" 157 } 158 }, 159 { 160 "OMX.qcom.file.muxer", 161 NULL, // Create instance function 162 // Unique instance handle 163 { 164 NULL 165 }, 166 NULL, // Shared object library handle 167 168 "libOmxMux.so", 169 { 170 "container_muxer.mp2" 171 } 172 }, 173 { 174 "OMX.qcom.video.decoder.divx4", 175 NULL, // Create instance function 176 // Unique instance handle 177 { 178 NULL 179 }, 180 NULL, // Shared object library handle 181 "libOmxVdec.so", 182 { 183 "video_decoder.divx" 184 } 185 }, 186 { 187 "OMX.qcom.video.decoder.divx", 188 NULL, // Create instance function 189 // Unique instance handle 190 { 191 NULL 192 }, 193 NULL, // Shared object library handle 194 "libOmxVdec.so", 195 { 196 "video_decoder.divx" 197 } 198 }, 199 { 200 "OMX.qcom.video.decoder.divx311", 201 NULL, // Create instance function 202 // Unique instance handle 203 { 204 NULL 205 }, 206 NULL, // Shared object library handle 207 "libOmxVdec.so", 208 { 209 "video_decoder.divx" 210 } 211 }, 212 { 213 "OMX.qcom.video.decoder.h263", 214 NULL, // Create instance function 215 // Unique instance handle 216 { 217 NULL 218 }, 219 NULL, // Shared object library handle 220 "libOmxVdec.so", 221 { 222 "video_decoder.h263" 223 } 224 }, 225 { 226 "OMX.qcom.video.decoder.hevc", 227 NULL, // Create instance function 228 // Unique instance handle 229 { 230 NULL 231 }, 232 NULL, // Shared object library handle 233 "libOmxVdec.so", 234 { 235 "video_decoder.hevc" 236 } 237 }, 238 { 239 "OMX.qcom.video.decoder.vp8", 240 NULL, // Create instance function 241 // Unique instance handle 242 { 243 NULL 244 }, 245 NULL, // Shared object library handle 246 "libOmxVdec.so", 247 { 248 "video_decoder.vp8" 249 } 250 }, 251 { 252 "OMX.qcom.video.decoder.vp9", 253 NULL, // Create instance function 254 // Unique instance handle 255 { 256 NULL 257 }, 258 NULL, // Shared object library handle 259 "libOmxVdec.so", 260 { 261 "video_decoder.vp9" 262 } 263 }, 264 { 265 "OMX.qcom.video.encoder.mpeg4", 266 NULL, // Create instance function 267 // Unique instance handle 268 { 269 NULL 270 }, 271 NULL, // Shared object library handle 272 "libOmxVenc.so", 273 { 274 "video_encoder.mpeg4" 275 } 276 }, 277 { 278 "OMX.qcom.video.encoder.h263", 279 NULL, // Create instance function 280 // Unique instance handle 281 { 282 NULL 283 }, 284 NULL, // Shared object library handle 285 "libOmxVenc.so", 286 { 287 "video_encoder.h263", 288 } 289 }, 290 { 291 "OMX.qcom.video.encoder.avc", 292 NULL, // Create instance function 293 // Unique instance handle 294 { 295 NULL 296 }, 297 NULL, // Shared object library handle 298 "libOmxVenc.so", 299 { 300 "video_encoder.avc" 301 } 302 }, 303 { 304 "OMX.qcom.video.encoder.vp8", 305 NULL, // Create instance function 306 // Unique instance handle 307 { 308 NULL 309 }, 310 NULL, // Shared object library handle 311 "libOmxVenc.so", 312 { 313 "video_encoder.vp8", 314 } 315 }, 316 { 317 "OMX.qti.video.encoder.hevc", 318 NULL, // Create instance function 319 // Unique instance handle 320 { 321 NULL 322 }, 323 NULL, // Shared object library handle 324 "libOmxSwVencHevc.so", 325 { 326 "video_encoder.hevc" 327 } 328 }, 329 { 330 "OMX.qcom.video.encoder.hevc", 331 NULL, // Create instance function 332 // Unique instance handle 333 { 334 NULL 335 }, 336 NULL, // Shared object library handle 337 "libOmxVenc.so", 338 { 339 "video_encoder.hevc" 340 } 341 }, 342 { 343 "OMX.qcom.audio.decoder.Qcelp13", 344 NULL, // Create instance function 345 // Unique instance handle 346 { 347 NULL 348 }, 349 NULL, // Shared object library handle 350 "libOmxQcelp13Dec.so", 351 { 352 "audio_decoder.Qcelp13" 353 } 354 }, 355 { 356 "OMX.qcom.audio.decoder.evrc", 357 NULL, // Create instance function 358 // Unique instance handle 359 { 360 NULL 361 }, 362 NULL, // Shared object library handle 363 "libOmxEvrcDec.so", 364 { 365 "audio_decoder.evrc" 366 } 367 }, 368 { 369 "OMX.qcom.audio.decoder.wma", 370 NULL, // Create instance function 371 // Unique instance handle 372 { 373 NULL 374 }, 375 NULL, // Shared object library handle 376 "libOmxWmaDec.so", 377 { 378 "audio_decoder.wma" 379 } 380 }, 381 { 382 "OMX.qcom.audio.decoder.wma10Pro", 383 NULL, // Create instance function 384 // Unique instance handle 385 { 386 NULL 387 }, 388 NULL, // Shared object library handle 389 "libOmxWmaDec.so", 390 { 391 "audio_decoder.wma" 392 } 393 }, 394 { 395 "OMX.qcom.audio.decoder.aac", 396 NULL, // Create instance function 397 // Unique instance handle 398 { 399 NULL 400 }, 401 NULL, // Shared object library handle 402 "libOmxAacDec.so", 403 { 404 "audio_decoder.aac" 405 } 406 }, 407 { 408 "OMX.qcom.audio.decoder.amrwbplus", 409 NULL, // Create instance function 410 // Unique instance handle 411 { 412 NULL 413 }, 414 NULL, // Shared object library handle 415 "libOmxAmrwbplusDec.so", 416 { 417 "audio_decoder.awbplus" 418 } 419 }, 420 { 421 "OMX.qcom.audio.decoder.alac", 422 NULL, // Create instance function 423 // Unique instance handle 424 { 425 NULL 426 }, 427 NULL, // Shared object library handle 428 "libOmxAlacDec.so", 429 { 430 "audio_decoder.alac" 431 } 432 }, 433 { 434 "OMX.qcom.audio.decoder.ape", 435 NULL, // Create instance function 436 // Unique instance handle 437 { 438 NULL 439 }, 440 NULL, // Shared object library handle 441 "libOmxApeDec.so", 442 { 443 "audio_decoder.ape" 444 } 445 }, 446 { 447 "OMX.qcom.audio.encoder.aac", 448 NULL, // Create instance function 449 // Unique instance handle 450 { 451 NULL 452 }, 453 NULL, // Shared object library handle 454 "libOmxAacEnc.so", 455 { 456 "audio_encoder.aac" 457 } 458 }, 459 { 460 "OMX.qcom.audio.encoder.qcelp13", 461 NULL, // Create instance function 462 // Unique instance handle 463 { 464 NULL 465 }, 466 NULL, // Shared object library handle 467 "libOmxQcelp13Enc.so", 468 { 469 "audio_encoder.qcelp13" 470 } 471 }, 472 { 473 "OMX.qcom.audio.encoder.evrc", 474 NULL, // Create instance function 475 // Unique instance handle 476 { 477 NULL 478 }, 479 NULL, // Shared object library handle 480 "libOmxEvrcEnc.so", 481 { 482 "audio_encoder.evrc" 483 } 484 }, 485 { 486 "OMX.qcom.audio.encoder.amrnb", 487 NULL, // Create instance function 488 // Unique instance handle 489 { 490 NULL 491 }, 492 NULL, // Shared object library handle 493 "libOmxAmrEnc.so", 494 { 495 "audio_encoder.amrnb" 496 } 497 }, 498 { 499 "OMX.qcom.audio.decoder.aac", 500 NULL, // Create instance function 501 // Unique instance handle 502 { 503 NULL 504 }, 505 NULL, // Shared object library handle 506 "libOmxAacDec.so", 507 { 508 "audio_decoder.aac" 509 } 510 }, 511 { 512 "OMX.qcom.audio.decoder.multiaac", 513 NULL, // Create instance function 514 // Unique instance handle 515 { 516 NULL 517 }, 518 NULL, // Shared object library handle 519 "libOmxAacDec.so", 520 { 521 "audio_decoder.aac" 522 } 523 }, 524 { 525 "OMX.qcom.vdec.vpp", 526 NULL, // Create instance function 527 // Unique instance handle 528 { 529 NULL, 530 NULL, 531 NULL, 532 NULL 533 }, 534 NULL, // Shared object library handle 535 "libOmxVpp.so", 536 { 537 "video_decoder.vpp" 538 } 539 } 540 }; 541 542 const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); 543 544 545