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