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