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