1 /*-------------------------------------------------------------------------- 2 Copyright (c) 2014-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 /*============================================================================ 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 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.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.mpeg4", 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.mpeg4" 88 } 89 }, 90 { 91 "OMX.qcom.video.decoder.vc1", 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.wmv", 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.vc1" 120 } 121 }, 122 { 123 "OMX.qcom.file.muxer", 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 134 "libOmxMux.so", 135 { 136 "container_muxer.mp2" 137 } 138 }, 139 { 140 "OMX.qcom.video.decoder.divx4", 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.divx", 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.divx" 169 } 170 }, 171 { 172 "OMX.qcom.video.decoder.divx311", 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.divx" 185 } 186 }, 187 { 188 "OMX.qcom.video.decoder.h263", 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.h263" 201 } 202 }, 203 { 204 "OMX.qcom.video.decoder.hevc", 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.hevc" 217 } 218 }, 219 { 220 "OMX.qcom.video.decoder.vp8", 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.vp8" 233 } 234 }, 235 { 236 "OMX.qcom.video.decoder.vp9", 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.vp9" 249 } 250 }, 251 { 252 "OMX.qcom.video.encoder.mpeg4", 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 "libOmxVenc.so", 263 { 264 "video_encoder.mpeg4" 265 } 266 }, 267 { 268 "OMX.qcom.video.encoder.h263", 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 "libOmxVenc.so", 279 { 280 "video_encoder.h263", 281 } 282 }, 283 { 284 "OMX.qcom.video.encoder.avc", 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 "libOmxVenc.so", 295 { 296 "video_encoder.avc" 297 } 298 }, 299 { 300 "OMX.qcom.video.encoder.vp8", 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 "libOmxVenc.so", 311 { 312 "video_encoder.vp8", 313 } 314 }, 315 { 316 "OMX.qcom.video.encoder.hevc", 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 "libOmxVenc.so", 327 { 328 "video_encoder.hevc" 329 } 330 }, 331 { 332 "OMX.qcom.audio.decoder.Qcelp13", 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 "libOmxQcelp13Dec.so", 343 { 344 "audio_decoder.Qcelp13" 345 } 346 }, 347 { 348 "OMX.qcom.audio.decoder.evrc", 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 "libOmxEvrcDec.so", 359 { 360 "audio_decoder.evrc" 361 } 362 }, 363 { 364 "OMX.qcom.audio.decoder.wma", 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 "libOmxWmaDec.so", 375 { 376 "audio_decoder.wma" 377 } 378 }, 379 { 380 "OMX.qcom.audio.decoder.wma10Pro", 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 "libOmxWmaDec.so", 391 { 392 "audio_decoder.wma" 393 } 394 }, 395 { 396 "OMX.qcom.audio.decoder.alac", 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 "libOmxAlacDec.so", 407 { 408 "audio_decoder.alac" 409 } 410 }, 411 { 412 "OMX.qti.audio.decoder.alac.sw", 413 NULL, // Create instance function 414 { 415 NULL, 416 NULL, 417 NULL, 418 NULL 419 }, 420 NULL, // Shared object library handle 421 "libOmxAlacDecSw.so", 422 { 423 "audio_decoder.alac" 424 } 425 }, 426 { 427 "OMX.qcom.audio.decoder.ape", 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 "libOmxApeDec.so", 438 { 439 "audio_decoder.ape" 440 } 441 }, 442 { 443 "OMX.qti.audio.decoder.ape.sw", 444 NULL, // Create instance function 445 { 446 NULL, 447 NULL, 448 NULL, 449 NULL 450 }, 451 NULL, // Shared object library handle 452 "libOmxApeDecSw.so", 453 { 454 "audio_decoder.ape" 455 } 456 }, 457 { 458 "OMX.qcom.audio.encoder.aac", 459 NULL, // Create instance function 460 // Unique instance handle 461 { 462 NULL, 463 NULL, 464 NULL, 465 NULL 466 }, 467 NULL, // Shared object library handle 468 "libOmxAacEnc.so", 469 { 470 "audio_encoder.aac" 471 } 472 }, 473 { 474 "OMX.qcom.audio.encoder.qcelp13", 475 NULL, // Create instance function 476 // Unique instance handle 477 { 478 NULL, 479 NULL, 480 NULL, 481 NULL 482 }, 483 NULL, // Shared object library handle 484 "libOmxQcelp13Enc.so", 485 { 486 "audio_encoder.qcelp13" 487 } 488 }, 489 { 490 "OMX.qcom.audio.encoder.evrc", 491 NULL, // Create instance function 492 // Unique instance handle 493 { 494 NULL, 495 NULL, 496 NULL, 497 NULL 498 }, 499 NULL, // Shared object library handle 500 "libOmxEvrcEnc.so", 501 { 502 "audio_encoder.evrc" 503 } 504 }, 505 { 506 "OMX.qcom.audio.encoder.amrnb", 507 NULL, // Create instance function 508 // Unique instance handle 509 { 510 NULL, 511 NULL, 512 NULL, 513 NULL 514 }, 515 NULL, // Shared object library handle 516 "libOmxAmrEnc.so", 517 { 518 "audio_encoder.amrnb" 519 } 520 }, 521 { 522 "OMX.qcom.audio.decoder.aac", 523 NULL, // Create instance function 524 // Unique instance handle 525 { 526 NULL, 527 NULL, 528 NULL, 529 NULL 530 }, 531 NULL, // Shared object library handle 532 "libOmxAacDec.so", 533 { 534 "audio_decoder.aac" 535 } 536 }, 537 { 538 "OMX.qcom.audio.decoder.multiaac", 539 NULL, // Create instance function 540 // Unique instance handle 541 { 542 NULL, 543 NULL, 544 NULL, 545 NULL 546 }, 547 NULL, // Shared object library handle 548 "libOmxAacDec.so", 549 { 550 "audio_decoder.aac" 551 } 552 }, 553 { 554 "OMX.qti.vdec.vpp", 555 NULL, // Create instance function 556 // Unique instance handle 557 { 558 NULL, 559 NULL, 560 NULL, 561 NULL 562 }, 563 NULL, // Shared object library handle 564 "libOmxVpp.so", 565 { 566 "video_decoder.vpp" 567 } 568 } 569 }; 570 571 const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); 572 573 574