1 /*-------------------------------------------------------------------------- 2 Copyright (c) 2010-2011, 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 QCOM'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 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.mpeg4", 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 "libOmxVdec.so", 70 { 71 "video_decoder.mpeg4" 72 } 73 }, 74 { 75 "OMX.qcom.video.decoder.vc1", 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.vc1" 88 } 89 }, 90 { 91 "OMX.qcom.video.decoder.wmv", 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 "libOmxVdec.so", 102 { 103 "video_decoder.vc1" 104 } 105 }, 106 { 107 "OMX.qcom.video.decoder.divx4", 108 NULL, // Create instance function 109 // Unique instance handle 110 { 111 NULL, 112 NULL, 113 NULL, 114 NULL 115 }, 116 NULL, // Shared object library handle 117 "libOmxVdec.so", 118 { 119 "video_decoder.divx" 120 } 121 }, 122 { 123 "OMX.qcom.video.decoder.divx", 124 NULL, // Create instance function 125 // Unique instance handle 126 { 127 NULL, 128 NULL, 129 NULL, 130 NULL 131 }, 132 NULL, // Shared object library handle 133 "libOmxVdec.so", 134 { 135 "video_decoder.divx" 136 } 137 }, 138 { 139 "OMX.qcom.video.decoder.divx311", 140 NULL, // Create instance function 141 // Unique instance handle 142 { 143 NULL, 144 NULL, 145 NULL, 146 NULL 147 }, 148 NULL, // Shared object library handle 149 "libOmxVdec.so", 150 { 151 "video_decoder.divx" 152 } 153 }, 154 { 155 "OMX.qcom.video.decoder.h263", 156 NULL, // Create instance function 157 // Unique instance handle 158 { 159 NULL, 160 NULL, 161 NULL, 162 NULL 163 }, 164 NULL, // Shared object library handle 165 "libOmxVdec.so", 166 { 167 "video_decoder.h263" 168 } 169 }, 170 { 171 "OMX.qcom.video.encoder.mpeg4", 172 NULL, // Create instance function 173 // Unique instance handle 174 { 175 NULL, 176 NULL, 177 NULL, 178 NULL 179 }, 180 NULL, // Shared object library handle 181 "libOmxVenc.so", 182 { 183 "video_encoder.mpeg4" 184 } 185 }, 186 { 187 "OMX.qcom.video.encoder.h263", 188 NULL, // Create instance function 189 // Unique instance handle 190 { 191 NULL, 192 NULL, 193 NULL, 194 NULL 195 }, 196 NULL, // Shared object library handle 197 "libOmxVenc.so", 198 { 199 "video_encoder.h263", 200 } 201 }, 202 { 203 "OMX.qcom.video.encoder.avc", 204 NULL, // Create instance function 205 // Unique instance handle 206 { 207 NULL, 208 NULL, 209 NULL, 210 NULL 211 }, 212 NULL, // Shared object library handle 213 "libOmxVenc.so", 214 { 215 "video_encoder.avc" 216 } 217 }, 218 { 219 "OMX.qcom.audio.decoder.mp3", 220 NULL, // Create instance function 221 // Unique instance handle 222 { 223 NULL, 224 NULL, 225 NULL, 226 NULL 227 }, 228 NULL, // Shared object library handle 229 "libOmxMp3Dec.so", 230 { 231 "audio_decoder.mp3" 232 } 233 }, 234 { 235 "OMX.qcom.audio.decoder.aac", 236 NULL, // Create instance function 237 // Unique instance handle 238 { 239 NULL, 240 NULL, 241 NULL, 242 NULL 243 }, 244 NULL, // Shared object library handle 245 "libOmxAacDec.so", 246 { 247 "audio_decoder.aac" 248 } 249 }, 250 { 251 "OMX.qcom.audio.decoder.multiaac", 252 NULL, // Create instance function 253 // Unique instance handle 254 { 255 NULL, 256 NULL, 257 NULL, 258 NULL 259 }, 260 NULL, // Shared object library handle 261 "libOmxAacDec.so", 262 { 263 "audio_decoder.aac" 264 } 265 }, 266 { 267 "OMX.qcom.audio.decoder.tunneled.mp3", 268 NULL, // Create instance function 269 // Unique instance handle 270 { 271 NULL, 272 NULL, 273 NULL, 274 NULL 275 }, 276 NULL, // Shared object library handle 277 "libOmxMp3Dec.so", 278 { 279 "audio_decoder.mp3" 280 } 281 }, 282 { 283 "OMX.qcom.audio.decoder.tunneled.aac", 284 NULL, // Create instance function 285 // Unique instance handle 286 { 287 NULL, 288 NULL, 289 NULL, 290 NULL 291 }, 292 NULL, // Shared object library handle 293 "libOmxAacDec.so", 294 { 295 "audio_decoder.aac" 296 } 297 }, 298 { 299 "OMX.qcom.audio.decoder.tunneled.multiaac", 300 NULL, // Create instance function 301 // Unique instance handle 302 { 303 NULL, 304 NULL, 305 NULL, 306 NULL 307 }, 308 NULL, // Shared object library handle 309 "libOmxAacDec.so", 310 { 311 "audio_decoder.aac" 312 } 313 }, 314 { 315 "OMX.qcom.audio.encoder.tunneled.aac", 316 NULL, // Create instance function 317 // Unique instance handle 318 { 319 NULL, 320 NULL, 321 NULL, 322 NULL 323 }, 324 NULL, // Shared object library handle 325 "libOmxAacEnc.so", 326 { 327 "audio_encoder.aac" 328 } 329 }, 330 { 331 "OMX.qcom.audio.decoder.Qcelp13", 332 NULL, // Create instance function 333 // Unique instance handle 334 { 335 NULL, 336 NULL, 337 NULL, 338 NULL 339 }, 340 NULL, // Shared object library handle 341 "libOmxQcelp13Dec.so", 342 { 343 "audio_decoder.Qcelp13" 344 } 345 }, 346 { 347 "OMX.qcom.audio.decoder.tunneled.Qcelp13", 348 NULL, // Create instance function 349 // Unique instance handle 350 { 351 NULL, 352 NULL, 353 NULL, 354 NULL 355 }, 356 NULL, // Shared object library handle 357 "libOmxQcelp13Dec.so", 358 { 359 "audio_decoder.Qcelp13" 360 } 361 }, 362 { 363 "OMX.qcom.audio.decoder.evrc", 364 NULL, // Create instance function 365 // Unique instance handle 366 { 367 NULL, 368 NULL, 369 NULL, 370 NULL 371 }, 372 NULL, // Shared object library handle 373 "libOmxEvrcDec.so", 374 { 375 "audio_decoder.evrc" 376 } 377 }, 378 { 379 "OMX.qcom.audio.decoder.tunneled.evrc", 380 NULL, // Create instance function 381 // Unique instance handle 382 { 383 NULL, 384 NULL, 385 NULL, 386 NULL 387 }, 388 NULL, // Shared object library handle 389 "libOmxEvrcDec.so", 390 { 391 "audio_decoder.evrc" 392 } 393 }, 394 { 395 "OMX.qcom.audio.encoder.tunneled.amrnb", 396 NULL, // Create instance function 397 // Unique instance handle 398 { 399 NULL, 400 NULL, 401 NULL, 402 NULL 403 }, 404 NULL, // Shared object library handle 405 "libOmxAmrEnc.so", 406 { 407 "audio_encoder.amrnb" 408 } 409 }, 410 { 411 "OMX.qcom.audio.decoder.wma", 412 NULL, // Create instance function 413 // Unique instance handle 414 { 415 NULL, 416 NULL, 417 NULL, 418 NULL 419 }, 420 NULL, // Shared object library handle 421 "libOmxWmaDec.so", 422 { 423 "audio_decoder.wma" 424 } 425 }, 426 { 427 "OMX.qcom.audio.decoder.tunneled.wma", 428 NULL, // Create instance function 429 // Unique instance handle 430 { 431 NULL, 432 NULL, 433 NULL, 434 NULL 435 }, 436 NULL, // Shared object library handle 437 "libOmxWmaDec.so", 438 { 439 "audio_decoder.wma" 440 } 441 }, 442 { 443 "OMX.qcom.audio.decoder.wmaLossLess", 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 "libOmxWmaDec.so", 454 { 455 "audio_decoder.wma" 456 } 457 }, 458 { 459 "OMX.qcom.audio.decoder.tunneled.wmaLossLess", 460 NULL, // Create instance function 461 // Unique instance handle 462 { 463 NULL, 464 NULL, 465 NULL, 466 NULL 467 }, 468 NULL, // Shared object library handle 469 "libOmxWmaDec.so", 470 { 471 "audio_decoder.wma" 472 } 473 }, 474 { 475 "OMX.qcom.audio.decoder.wma10Pro", 476 NULL, // Create instance function 477 // Unique instance handle 478 { 479 NULL, 480 NULL, 481 NULL, 482 NULL 483 }, 484 NULL, // Shared object library handle 485 "libOmxWmaDec.so", 486 { 487 "audio_decoder.wma" 488 } 489 }, 490 { 491 "OMX.qcom.audio.decoder.tunneled.wma10Pro", 492 NULL, // Create instance function 493 // Unique instance handle 494 { 495 NULL, 496 NULL, 497 NULL, 498 NULL 499 }, 500 NULL, // Shared object library handle 501 "libOmxWmaDec.so", 502 { 503 "audio_decoder.wma" 504 } 505 }, 506 { 507 "OMX.qcom.audio.encoder.tunneled.qcelp13", 508 NULL, // Create instance function 509 // Unique instance handle 510 { 511 NULL, 512 NULL, 513 NULL, 514 NULL 515 }, 516 NULL, // Shared object library handle 517 "libOmxQcelp13Enc.so", 518 { 519 "audio_encoder.qcelp13" 520 } 521 }, 522 { 523 "OMX.qcom.audio.encoder.tunneled.evrc", 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 "libOmxEvrcEnc.so", 534 { 535 "audio_encoder.evrc" 536 } 537 }, 538 { 539 "OMX.qcom.audio.decoder.adpcm", 540 NULL, // Create instance function 541 // Unique instance handle 542 { 543 NULL, 544 NULL, 545 NULL, 546 NULL 547 }, 548 NULL, // Shared object library handle 549 "libOmxAdpcmDec.so", 550 { 551 "audio_decoder.adpcm" 552 } 553 }, 554 { 555 "OMX.qcom.audio.decoder.tunneled.adpcm", 556 NULL, // Create instance function 557 // Unique instance handle 558 { 559 NULL, 560 NULL, 561 NULL, 562 NULL 563 }, 564 NULL, // Shared object library handle 565 "libOmxAdpcmDec.so", 566 { 567 "audio_decoder.adpcm" 568 } 569 }, 570 { 571 "OMX.qcom.file.muxer", 572 NULL, // Create instance function 573 // Unique instance handle 574 { 575 NULL, 576 NULL, 577 NULL, 578 NULL 579 }, 580 NULL, // Shared object library handle 581 582 "libOmxMux.so", 583 { 584 "container_muxer.mp2" 585 } 586 }, 587 { 588 "OMX.qcom.audio.encoder.tunneled.aac", 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 "libOmxAacEnc.so", 599 { 600 "audio_encoder.aac" 601 } 602 }, 603 { 604 "OMX.qcom.audio.encoder.aac", 605 NULL, // Create instance function 606 // Unique instance handle 607 { 608 NULL, 609 NULL, 610 NULL, 611 NULL 612 }, 613 NULL, // Shared object library handle 614 "libOmxAacEnc.so", 615 { 616 "audio_encoder.aac" 617 } 618 }, 619 { 620 "OMX.qcom.audio.encoder.qcelp13", 621 NULL, // Create instance function 622 // Unique instance handle 623 { 624 NULL, 625 NULL, 626 NULL, 627 NULL 628 }, 629 NULL, // Shared object library handle 630 "libOmxQcelp13Enc.so", 631 { 632 "audio_encoder.qcelp13" 633 } 634 }, 635 { 636 "OMX.qcom.audio.encoder.evrc", 637 NULL, // Create instance function 638 // Unique instance handle 639 { 640 NULL, 641 NULL, 642 NULL, 643 NULL 644 }, 645 NULL, // Shared object library handle 646 "libOmxEvrcEnc.so", 647 { 648 "audio_encoder.evrc" 649 } 650 }, 651 { 652 "OMX.qcom.audio.encoder.amrnb", 653 NULL, // Create instance function 654 // Unique instance handle 655 { 656 NULL, 657 NULL, 658 NULL, 659 NULL 660 }, 661 NULL, // Shared object library handle 662 "libOmxAmrEnc.so", 663 { 664 "audio_encoder.amrnb" 665 } 666 }, 667 }; 668 669 const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); 670 671 672