1 /*-------------------------------------------------------------------------- 2 Copyright (c) 2009,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 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 37 #include "qc_omx_core.h" 38 #include "drmplay_version.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.h263", 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.h263" 120 } 121 }, 122 { 123 "OMX.qcom.video.decoder.divx4", 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.divx", 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.encoder.mpeg4", 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 "libOmxVenc.so", 166 { 167 "video_encoder.mpeg4" 168 } 169 }, 170 { 171 "OMX.qcom.video.encoder.h263", 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.h263" 184 } 185 }, 186 { 187 "OMX.qcom.video.encoder.avc", 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.avc" 200 } 201 }, 202 { 203 "OMX.qcom.audio.decoder.Qcelp13", 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 "libOmxQcelp13Dec.so", 214 { 215 "audio_decoder.Qcelp13" 216 } 217 }, 218 { 219 "OMX.qcom.audio.decoder.evrc", 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 "libOmxEvrcDec.so", 230 { 231 "audio_decoder.evrc" 232 } 233 }, 234 { 235 "OMX.qcom.audio.decoder.amrwbp", 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 "libOmxAmrwbDec.so", 246 { 247 "audio_decoder.amrwbp" 248 } 249 }, 250 { 251 "drm.play" DRMPLAY_API_VERSION, 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 "libDrmPlay.so", 262 { 263 "drm.play" DRMPLAY_API_VERSION 264 } 265 }, 266 { 267 "OMX.qcom.audio.decoder.wma", 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 "libOmxWmaDec.so", 278 { 279 "audio_decoder.wma" 280 } 281 }, 282 { 283 "OMX.qcom.audio.encoder.evrc", 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 #ifdef _ANDROID_ 294 "libOmxEvrcEnc.so", 295 #else 296 "libmm-aenc-omxevrc.so.1", 297 #endif 298 { 299 "audio_encoder.evrc" 300 } 301 }, 302 { 303 "OMX.qcom.audio.encoder.qcelp13", 304 NULL, // Create instance function 305 // Unique instance handle 306 { 307 NULL, 308 NULL, 309 NULL, 310 NULL 311 }, 312 NULL, // Shared object library handle 313 #ifdef _ANDROID_ 314 "libOmxQcelp13Enc.so", 315 #else 316 "libmm-aenc-omxqcelp13.so.1", 317 #endif 318 { 319 "audio_encoder.qcelp13" 320 } 321 }, 322 #ifndef _ANDROID_ 323 { 324 "OMX.qcom.audio.decoder.aac", 325 NULL, // Create instance function 326 // Unique instance handle 327 { 328 NULL, 329 NULL, 330 NULL, 331 NULL 332 }, 333 NULL, // Shared object library handle 334 "libOmxAacDec.so", 335 { 336 "audio_decoder.aac" 337 } 338 }, 339 { 340 "OMX.qcom.audio.decoder.amrnb", 341 NULL, // Create instance function 342 // Unique instance handle 343 { 344 NULL, 345 NULL, 346 NULL, 347 NULL 348 }, 349 NULL, // Shared object library handle 350 "libOmxAmrDec.so", 351 { 352 "audio_decoder.amrnb" 353 } 354 }, 355 { 356 "OMX.qcom.audio.decoder.amrwb", 357 NULL, // Create instance function 358 // Unique instance handle 359 { 360 NULL, 361 NULL, 362 NULL, 363 NULL 364 }, 365 NULL, // Shared object library handle 366 "libOmxAmrwbDec.so", 367 { 368 "audio_decoder.amrwb" 369 } 370 }, 371 { 372 "OMX.qcom.audio.decoder.tunneled.mp3", 373 NULL, // Create instance function 374 // Unique instance handle 375 { 376 NULL, 377 NULL, 378 NULL, 379 NULL 380 }, 381 NULL, // Shared object library handle 382 "libOmxMp3Dec.so", 383 { 384 "audio_decoder.mp3" 385 } 386 }, 387 { 388 "OMX.qcom.audio.decoder.tunneled.aac", 389 NULL, // Create instance function 390 // Unique instance handle 391 { 392 NULL, 393 NULL, 394 NULL, 395 NULL 396 }, 397 NULL, // Shared object library handle 398 "libOmxAacDec.so", 399 { 400 "audio_decoder.aac" 401 } 402 }, 403 { 404 "OMX.qcom.audio.decoder.tunneled.amrnb", 405 NULL, // Create instance function 406 // Unique instance handle 407 { 408 NULL, 409 NULL, 410 NULL, 411 NULL 412 }, 413 NULL, // Shared object library handle 414 "libOmxAmrDec.so", 415 { 416 "audio_decoder.amrnb" 417 } 418 }, 419 { 420 "OMX.qcom.audio.encoder.tunneled.aac", 421 NULL, // Create instance function 422 // Unique instance handle 423 { 424 NULL, 425 NULL, 426 NULL, 427 NULL 428 }, 429 NULL, // Shared object library handle 430 "libOmxAacEnc.so", 431 { 432 "audio_encoder.aac" 433 } 434 }, 435 { 436 "OMX.qcom.audio.encoder.aac", 437 NULL, // Create instance function 438 // Unique instance handle 439 { 440 NULL, 441 NULL, 442 NULL, 443 NULL 444 }, 445 NULL, // Shared object library handle 446 "libOmxAacEnc.so", 447 { 448 "audio_encoder.aac" 449 } 450 }, 451 { 452 "OMX.qcom.audio.decoder.tunneled.Qcelp13", 453 NULL, // Create instance function 454 // Unique instance handle 455 { 456 NULL, 457 NULL, 458 NULL, 459 NULL 460 }, 461 NULL, // Shared object library handle 462 "libOmxQcelp13Dec.so", 463 { 464 "audio_decoder.Qcelp13" 465 } 466 }, 467 { 468 "OMX.qcom.audio.decoder.tunneled.evrc", 469 NULL, // Create instance function 470 // Unique instance handle 471 { 472 NULL, 473 NULL, 474 NULL, 475 NULL 476 }, 477 NULL, // Shared object library handle 478 "libOmxEvrcDec.so", 479 { 480 "audio_decoder.evrc" 481 } 482 }, 483 { 484 "OMX.qcom.audio.encoder.tunneled.amr", 485 NULL, // Create instance function 486 // Unique instance handle 487 { 488 NULL, 489 NULL, 490 NULL, 491 NULL 492 }, 493 NULL, // Shared object library handle 494 "libOmxAmrEnc.so", 495 { 496 "audio_encoder.amr" 497 } 498 }, 499 { 500 "OMX.qcom.audio.decoder.tunneled.wma", 501 NULL, // Create instance function 502 // Unique instance handle 503 { 504 NULL, 505 NULL, 506 NULL, 507 NULL 508 }, 509 NULL, // Shared object library handle 510 "libOmxWmaDec.so", 511 { 512 "audio_decoder.wma" 513 } 514 }, 515 { 516 "OMX.qcom.audio.decoder.tunneled.amrwb", 517 NULL, // Create instance function 518 // Unique instance handle 519 { 520 NULL, 521 NULL, 522 NULL, 523 NULL 524 } 525 NULL, // Shared object library handle 526 "libOmxAmrwbDec.so", 527 { 528 "audio_decoder.amrwb" 529 } 530 }, 531 { 532 "OMX.qcom.audio.decoder.tunneled.amrwbp", 533 NULL, // Create instance function 534 // Unique instance handle 535 { 536 NULL, 537 NULL, 538 NULL, 539 NULL 540 }, 541 NULL, // Shared object library handle 542 "libOmxAmrwbDec.so", 543 { 544 "audio_decoder.amrwbp" 545 } 546 } 547 #endif 548 }; 549 550 const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); 551 552 553