1 /*-------------------------------------------------------------------------- 2 Copyright (c) 2009,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 "libOmxVdec.so", 52 { 53 "video_decoder.avc" 54 } 55 }, 56 { 57 "OMX.qcom.video.decoder.mpeg4", 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 "libOmxVdec.so", 68 { 69 "video_decoder.mpeg4" 70 } 71 }, 72 { 73 "OMX.qcom.video.decoder.vc1", 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 "libOmxVdec.so", 84 { 85 "video_decoder.vc1" 86 } 87 }, 88 { 89 "OMX.qcom.video.decoder.h263", 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 "libOmxVdec.so", 100 { 101 "video_decoder.h263" 102 } 103 }, 104 { 105 "OMX.qcom.video.decoder.divx4", 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 "libOmxVdec.so", 116 { 117 "video_decoder.divx" 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 "libOmxVdec.so", 132 { 133 "video_decoder.divx" 134 } 135 }, 136 { 137 "OMX.qcom.video.encoder.mpeg4", 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 "libOmxVenc.so", 148 { 149 "video_encoder.mpeg4" 150 } 151 }, 152 { 153 "OMX.qcom.video.encoder.h263", 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 "libOmxVenc.so", 164 { 165 "video_encoder.h263", 166 } 167 }, 168 { 169 "OMX.qcom.video.encoder.avc", 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 "libOmxVenc.so", 180 { 181 "video_encoder.avc" 182 } 183 }, 184 { 185 "OMX.qcom.audio.decoder.mp3", 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 #ifdef _ANDROID_ 196 "libOmxMp3Dec.so", 197 #else 198 "libmm-adec-omxmp3.so.1", 199 #endif 200 { 201 "audio_decoder.mp3" 202 } 203 }, 204 { 205 "OMX.qcom.audio.decoder.aac", 206 NULL, // Create instance function 207 // Unique instance handle 208 { 209 NULL, 210 NULL, 211 NULL, 212 NULL 213 }, 214 NULL, // Shared object library handle 215 #ifdef _ANDROID_ 216 "libOmxAacDec.so", 217 #else 218 "libmm-adec-omxaac.so.1", 219 #endif 220 { 221 "audio_decoder.aac" 222 } 223 }, 224 { 225 "OMX.qcom.audio.decoder.tunneled.mp3", 226 NULL, // Create instance function 227 // Unique instance handle 228 { 229 NULL, 230 NULL, 231 NULL, 232 NULL 233 }, 234 NULL, // Shared object library handle 235 #ifdef _ANDROID_ 236 "libOmxMp3Dec.so", 237 #else 238 "libmm-adec-omxmp3.so.1", 239 #endif 240 { 241 "audio_decoder.mp3" 242 } 243 }, 244 { 245 "OMX.qcom.audio.decoder.tunneled.aac", 246 NULL, // Create instance function 247 // Unique instance handle 248 { 249 NULL, 250 NULL, 251 NULL, 252 NULL 253 }, 254 NULL, // Shared object library handle 255 #ifdef _ANDROID_ 256 "libOmxAacDec.so", 257 #else 258 "libmm-adec-omxaac.so.1", 259 #endif 260 { 261 "audio_decoder.aac" 262 } 263 }, 264 { 265 "OMX.qcom.audio.decoder.amrnb", 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 #ifdef _ANDROID_ 276 "libOmxAmrDec.so", 277 #else 278 "libmm-adec-omxamr.so.1", 279 #endif 280 { 281 "audio_decoder.amrnb" 282 } 283 }, 284 { 285 "OMX.qcom.audio.decoder.tunneled.amrnb", 286 NULL, // Create instance function 287 // Unique instance handle 288 { 289 NULL, 290 NULL, 291 NULL, 292 NULL 293 }, 294 NULL, // Shared object library handle 295 #ifdef _ANDROID_ 296 "libOmxAmrDec.so", 297 #else 298 "libmm-adec-omxamr.so.1", 299 #endif 300 { 301 "audio_decoder.amrnb" 302 } 303 }, 304 { 305 "OMX.qcom.audio.encoder.tunneled.aac", 306 NULL, // Create instance function 307 // Unique instance handle 308 { 309 NULL, 310 NULL, 311 NULL, 312 NULL 313 }, 314 NULL, // Shared object library handle 315 #ifdef _ANDROID_ 316 "libOmxAacEnc.so", 317 #else 318 "libmm-aenc-omxaac.so.1", 319 #endif 320 { 321 "audio_encoder.aac" 322 } 323 }, 324 { 325 "OMX.qcom.audio.encoder.aac", 326 NULL, // Create instance function 327 // Unique instance handle 328 { 329 NULL, 330 NULL, 331 NULL, 332 NULL 333 }, 334 NULL, // Shared object library handle 335 #ifdef _ANDROID_ 336 "libOmxAacEnc.so", 337 #else 338 "libmm-aenc-omxaac.so.1", 339 #endif 340 { 341 "audio_encoder.aac" 342 } 343 }, 344 { 345 "OMX.qcom.audio.decoder.Qcelp13Hw", 346 NULL, // Create instance function 347 // Unique instance handle 348 { 349 NULL, 350 NULL, 351 NULL, 352 NULL 353 }, 354 NULL, // Shared object library handle 355 #ifdef _ANDROID_ 356 "libOmxQcelpHwDec.so", 357 #else 358 "libmm-adec-omxQcelp13.so.1", 359 #endif 360 { 361 "audio_decoder.Qcelp13" 362 } 363 }, 364 #ifdef _ANDROID_ 365 { 366 "OMX.qcom.audio.decoder.Qcelp13", 367 NULL, // Create instance function 368 // Unique instance handle 369 { 370 NULL, 371 NULL, 372 NULL, 373 NULL 374 }, 375 NULL, // Shared object library handle 376 "libOmxQcelp13Dec.so", 377 { 378 "audio_decoder.Qcelp13" 379 } 380 }, 381 #endif 382 { 383 "OMX.qcom.audio.decoder.tunneled.Qcelp13Hw", 384 NULL, // Create instance function 385 // Unique instance handle 386 { 387 NULL, 388 NULL, 389 NULL, 390 NULL 391 }, 392 NULL, // Shared object library handle 393 #ifdef _ANDROID_ 394 "libOmxQcelpHwDec.so", 395 #else 396 "libmm-adec-omxQcelp13.so.1", 397 #endif 398 { 399 "audio_decoder.Qcelp13" 400 } 401 }, 402 { 403 "OMX.qcom.audio.decoder.evrc", 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 #ifdef _ANDROID_ 414 "libOmxEvrcDec.so", 415 #else 416 "libmm-adec-omxevrc.so.1", 417 #endif 418 { 419 "audio_decoder.evrc" 420 } 421 }, 422 { 423 "OMX.qcom.audio.decoder.tunneled.evrc", 424 NULL, // Create instance function 425 // Unique instance handle 426 { 427 NULL, 428 NULL, 429 NULL, 430 NULL 431 }, 432 NULL, // Shared object library handle 433 #ifdef _ANDROID_ 434 "libOmxEvrcDec.so", 435 #else 436 "libmm-adec-omxevrc.so.1", 437 #endif 438 { 439 "audio_decoder.evrc" 440 } 441 }, 442 { 443 "OMX.qcom.audio.encoder.tunneled.amr", 444 NULL, // Create instance function 445 // Unique instance handle 446 { 447 NULL, 448 NULL, 449 NULL, 450 NULL 451 }, 452 NULL, // Shared object library handle 453 #ifdef _ANDROID_ 454 "libOmxAmrEnc.so", 455 #else 456 "libmm-aenc-omxamr.so.1", 457 #endif 458 { 459 "audio_encoder.amr" 460 } 461 }, 462 { 463 "OMX.qcom.audio.decoder.wma", 464 NULL, // Create instance function 465 // Unique instance handle 466 { 467 NULL, 468 NULL, 469 NULL, 470 NULL 471 }, 472 NULL, // Shared object library handle 473 #ifdef _ANDROID_ 474 "libOmxWmaDec.so", 475 #else 476 "libmm-adec-omxwma.so.1", 477 #endif 478 { 479 "audio_decoder.wma" 480 } 481 }, 482 { 483 "OMX.qcom.audio.decoder.tunneled.wma", 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 #ifdef _ANDROID_ 494 "libOmxWmaDec.so", 495 #else 496 "libmm-adec-omxwma.so.1", 497 #endif 498 { 499 "audio_decoder.wma" 500 } 501 }, 502 { 503 "OMX.qcom.audio.decoder.wma10Pro", 504 NULL, // Create instance function 505 // Unique instance handle 506 { 507 NULL, 508 NULL, 509 NULL, 510 NULL 511 }, 512 NULL, // Shared object library handle 513 #ifdef _ANDROID_ 514 "libOmxWmaDec.so", 515 #else 516 "libmm-adec-omxwma.so.1", 517 #endif 518 { 519 "audio_decoder.wma" 520 } 521 }, 522 { 523 "OMX.qcom.audio.decoder.tunneled.wma10Pro", 524 NULL, // Create instance function 525 // Unique instance handle 526 { 527 NULL, 528 NULL, 529 NULL, 530 NULL 531 }, 532 NULL, // Shared object library handle 533 #ifdef _ANDROID_ 534 "libOmxWmaDec.so", 535 #else 536 "libmm-adec-omxwma.so.1", 537 #endif 538 { 539 "audio_decoder.wma" 540 } 541 }, 542 { 543 "OMX.qcom.audio.decoder.amrwb", 544 NULL, // Create instance function 545 // Unique instance handle 546 { 547 NULL, 548 NULL, 549 NULL, 550 NULL 551 }, 552 NULL, // Shared object library handle 553 #ifdef _ANDROID_ 554 "libOmxAmrwbDec.so", 555 #else 556 "libmm-adec-omxamrwb.so.1", 557 #endif 558 { 559 "audio_decoder.amrwb" 560 } 561 }, 562 { 563 "OMX.qcom.audio.decoder.tunneled.amrwb", 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 #ifdef _ANDROID_ 574 "libOmxAmrwbDec.so", 575 #else 576 "libmm-adec-omxamrwb.so.1", 577 #endif 578 { 579 "audio_decoder.amrwb" 580 } 581 }, 582 { 583 "OMX.qcom.audio.decoder.amrwbp", 584 NULL, // Create instance function 585 // Unique instance handle 586 { 587 NULL, 588 NULL, 589 NULL, 590 NULL 591 }, 592 NULL, // Shared object library handle 593 #ifdef _ANDROID_ 594 "libOmxAmrwbDec.so", 595 #else 596 "libmm-adec-omxamrwb.so.1", 597 #endif 598 { 599 "audio_decoder.amrwbp" 600 } 601 }, 602 { 603 "OMX.qcom.audio.decoder.tunneled.amrwbp", 604 NULL, // Create instance function 605 // Unique instance handle 606 { 607 NULL, 608 NULL, 609 NULL, 610 NULL 611 }, 612 NULL, // Shared object library handle 613 #ifdef _ANDROID_ 614 "libOmxAmrwbDec.so", 615 #else 616 "libmm-adec-omxamrwb.so.1", 617 #endif 618 { 619 "audio_decoder.amrwbp" 620 } 621 }, 622 { 623 "OMX.qcom.audio.encoder.tunneled.qcelp13", 624 NULL, // Create instance function 625 // Unique instance handle 626 { 627 NULL, 628 NULL, 629 NULL, 630 NULL 631 }, 632 NULL, // Shared object library handle 633 #ifdef _ANDROID_ 634 "libOmxQcelp13Enc.so", 635 #else 636 "libmm-aenc-omxqcelp13.so.1", 637 #endif 638 { 639 "audio_encoder.qcelp13" 640 } 641 }, 642 { 643 "OMX.qcom.audio.encoder.qcelp13", 644 NULL, // Create instance function 645 // Unique instance handle 646 { 647 NULL, 648 NULL, 649 NULL, 650 NULL 651 }, 652 NULL, // Shared object library handle 653 #ifdef _ANDROID_ 654 "libOmxQcelp13Enc.so", 655 #else 656 "libmm-aenc-omxqcelp13.so.1", 657 #endif 658 { 659 "audio_encoder.qcelp13" 660 } 661 }, 662 { 663 "OMX.qcom.audio.encoder.tunneled.evrc", 664 NULL, // Create instance function 665 // Unique instance handle 666 { 667 NULL, 668 NULL, 669 NULL, 670 NULL 671 }, 672 NULL, // Shared object library handle 673 #ifdef _ANDROID_ 674 "libOmxEvrcEnc.so", 675 #else 676 "libmm-aenc-omxevrc.so.1", 677 #endif 678 { 679 "audio_encoder.evrc" 680 } 681 }, 682 { 683 "OMX.qcom.audio.encoder.evrc", 684 NULL, // Create instance function 685 // Unique instance handle 686 { 687 NULL, 688 NULL, 689 NULL, 690 NULL 691 }, 692 NULL, // Shared object library handle 693 #ifdef _ANDROID_ 694 "libOmxEvrcEnc.so", 695 #else 696 "libmm-aenc-omxevrc.so.1", 697 #endif 698 { 699 "audio_encoder.evrc" 700 } 701 }, 702 { 703 "OMX.qcom.audio.decoder.adpcm", 704 NULL, // Create instance function 705 // Unique instance handle 706 { 707 NULL, 708 NULL, 709 NULL, 710 NULL 711 }, 712 NULL, // Shared object library handle 713 #ifdef _ANDROID_ 714 "libOmxAdpcmDec.so", 715 #else 716 "libmm-adec-omxadpcm.so.1", 717 #endif 718 { 719 "audio_decoder.adpcm" 720 } 721 }, 722 { 723 "OMX.qcom.audio.decoder.tunneled.adpcm", 724 NULL, // Create instance function 725 // Unique instance handle 726 { 727 NULL, 728 NULL, 729 NULL, 730 NULL 731 }, 732 NULL, // Shared object library handle 733 #ifdef _ANDROID_ 734 "libOmxAdpcmDec.so", 735 #else 736 "libmm-adec-omxadpcm.so.1", 737 #endif 738 { 739 "audio_decoder.adpcm" 740 } 741 } 742 }; 743 744 const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); 745 746 747