1 /*-------------------------------------------------------------------------- 2 Copyright (c) 2012 - 2013, 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 O p e n M A X w r a p p e r s 31 O p e n M A X C o r e 32 33 This module contains the registry table for the QCOM's OpenMAX core. 34 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 }, 49 NULL, // Shared object library handle 50 "libOmxVdec.so", 51 { 52 "video_decoder.avc" 53 } 54 }, 55 { 56 "OMX.qcom.video.decoder.avc.secure", 57 NULL, // Create instance function 58 // Unique instance handle 59 { 60 NULL 61 }, 62 NULL, // Shared object library handle 63 "libOmxVdec.so", 64 { 65 "video_decoder.avc" 66 } 67 }, 68 { 69 "OMX.qcom.video.decoder.divx4", 70 NULL, // Create instance function 71 // Unique instance handle 72 { 73 NULL 74 }, 75 NULL, // Shared object library handle 76 "libOmxVdec.so", 77 { 78 "video_decoder.divx" 79 } 80 }, 81 { 82 "OMX.qcom.video.decoder.divx", 83 NULL, // Create instance function 84 // Unique instance handle 85 { 86 NULL 87 }, 88 NULL, // Shared object library handle 89 "libOmxVdec.so", 90 { 91 "video_decoder.divx" 92 } 93 }, 94 { 95 "OMX.qcom.video.decoder.divx311", 96 NULL, // Create instance function 97 // Unique instance handle 98 { 99 NULL 100 }, 101 NULL, // Shared object library handle 102 "libOmxVdec.so", 103 { 104 "video_decoder.divx" 105 } 106 }, 107 { 108 "OMX.qcom.video.decoder.mpeg4", 109 NULL, // Create instance function 110 // Unique instance handle 111 { 112 NULL 113 }, 114 NULL, // Shared object library handle 115 "libOmxVdec.so", 116 { 117 "video_decoder.mpeg4" 118 } 119 }, 120 { 121 "OMX.qcom.video.decoder.mpeg2", 122 NULL, // Create instance function 123 // Unique instance handle 124 { 125 NULL 126 }, 127 NULL, // Shared object library handle 128 "libOmxVdec.so", 129 { 130 "video_decoder.mpeg2" 131 } 132 }, 133 { 134 "OMX.qcom.video.decoder.mpeg2.secure", 135 NULL, // Create instance function 136 // Unique instance handle 137 { 138 NULL 139 }, 140 NULL, // Shared object library handle 141 "libOmxVdec.so", 142 { 143 "video_decoder.mpeg2" 144 } 145 }, 146 { 147 "OMX.qcom.video.decoder.vc1", 148 NULL, // Create instance function 149 // Unique instance handle 150 { 151 NULL 152 }, 153 NULL, // Shared object library handle 154 "libOmxVdec.so", 155 { 156 "video_decoder.vc1" 157 } 158 }, 159 { 160 "OMX.qcom.video.decoder.wmv", 161 NULL, // Create instance function 162 // Unique instance handle 163 { 164 NULL 165 }, 166 NULL, // Shared object library handle 167 "libOmxVdec.so", 168 { 169 "video_decoder.vc1" 170 } 171 }, 172 { 173 "OMX.qcom.video.decoder.h263", 174 NULL, // Create instance function 175 // Unique instance handle 176 { 177 NULL 178 }, 179 NULL, // Shared object library handle 180 "libOmxVdec.so", 181 { 182 "video_decoder.h263" 183 } 184 }, 185 { 186 "OMX.qcom.video.decoder.hevc", 187 NULL, // Create instance function 188 // Unique instance handle 189 { 190 NULL 191 }, 192 NULL, // Shared object library handle 193 "libOmxVdecHevc.so", 194 { 195 "video_decoder.hevc" 196 } 197 }, 198 { 199 "OMX.qcom.video.decoder.hevchybrid", 200 NULL, // Create instance function 201 // Unique instance handle 202 { 203 NULL 204 }, 205 NULL, // Shared object library handle 206 "libOmxVdecHevc.so", 207 { 208 "video_decoder.hevc" 209 } 210 }, 211 { 212 "OMX.qcom.video.decoder.hevcswvdec", 213 NULL, // Create instance function 214 // Unique instance handle 215 { 216 NULL 217 }, 218 NULL, // Shared object library handle 219 "libOmxVdecHevc.so", 220 { 221 "video_decoder.hevcswvdec" 222 } 223 }, 224 { 225 "OMX.qcom.video.decoder.vp8", 226 NULL, // Create instance function 227 // Unique instance handle 228 { 229 NULL 230 }, 231 NULL, // Shared object library handle 232 "libOmxVdec.so", 233 { 234 "video_decoder.vp8" 235 } 236 }, 237 { 238 "OMX.qcom.video.encoder.mpeg4", 239 NULL, // Create instance function 240 // Unique instance handle 241 { 242 NULL 243 }, 244 NULL, // Shared object library handle 245 "libOmxVenc.so", 246 { 247 "video_encoder.mpeg4" 248 } 249 }, 250 { 251 "OMX.qcom.video.encoder.h263", 252 NULL, // Create instance function 253 // Unique instance handle 254 { 255 NULL 256 }, 257 NULL, // Shared object library handle 258 "libOmxVenc.so", 259 { 260 "video_encoder.h263" 261 } 262 }, 263 { 264 "OMX.qcom.video.encoder.avc", 265 NULL, // Create instance function 266 // Unique instance handle 267 { 268 NULL 269 }, 270 NULL, // Shared object library handle 271 "libOmxVenc.so", 272 { 273 "video_encoder.avc" 274 } 275 }, 276 { 277 "OMX.qcom.video.encoder.avc.secure", 278 NULL, // Create instance function 279 // Unique instance handle 280 { 281 NULL 282 }, 283 NULL, // Shared object library handle 284 "libOmxVenc.so", 285 { 286 "video_encoder.avc" 287 } 288 }, 289 { 290 "OMX.qcom.video.encoder.vp8", 291 NULL, // Create instance function 292 // Unique instance handle 293 { 294 NULL 295 }, 296 NULL, // Shared object library handle 297 "libOmxVenc.so", 298 { 299 "video_encoder.vp8" 300 } 301 }, 302 { 303 "OMX.qcom.video.encoder.hevc", 304 NULL, // Create instance function 305 // Unique instance handle 306 { 307 NULL 308 }, 309 NULL, // Shared object library handle 310 "libOmxVencHevc.so", 311 { 312 "video_encoder.hevc" 313 } 314 }, 315 { 316 "OMX.qcom.audio.decoder.Qcelp13", 317 NULL, // Create instance function 318 // Unique instance handle 319 { 320 NULL 321 }, 322 NULL, // Shared object library handle 323 "libOmxQcelp13Dec.so", 324 { 325 "audio_decoder.Qcelp13" 326 } 327 }, 328 { 329 "OMX.qcom.audio.decoder.evrc", 330 NULL, // Create instance function 331 // Unique instance handle 332 { 333 NULL 334 }, 335 NULL, // Shared object library handle 336 "libOmxEvrcDec.so", 337 { 338 "audio_decoder.evrc" 339 } 340 }, 341 { 342 "OMX.qcom.audio.decoder.wma", 343 NULL, // Create instance function 344 // Unique instance handle 345 { 346 NULL 347 }, 348 NULL, // Shared object library handle 349 "libOmxWmaDec.so", 350 { 351 "audio_decoder.wma" 352 } 353 }, 354 { 355 "OMX.qcom.audio.decoder.wma10Pro", 356 NULL, // Create instance function 357 // Unique instance handle 358 { 359 NULL 360 }, 361 NULL, // Shared object library handle 362 "libOmxWmaDec.so", 363 { 364 "audio_decoder.wma" 365 } 366 }, 367 { 368 "OMX.qcom.audio.decoder.wmaLossLess", 369 NULL, // Create instance function 370 // Unique instance handle 371 { 372 NULL 373 }, 374 NULL, // Shared object library handle 375 "libOmxWmaDec.so", 376 { 377 "audio_decoder.wma" 378 } 379 }, 380 { 381 "OMX.qcom.audio.decoder.amrwbplus", 382 NULL, // Create instance function 383 // Unique instance handle 384 { 385 NULL 386 }, 387 NULL, // Shared object library handle 388 "libOmxAmrwbplusDec.so", 389 { 390 "audio_decoder.awbplus" 391 } 392 }, 393 { 394 "OMX.qcom.audio.decoder.aac", 395 NULL, // Create instance function 396 // Unique instance handle 397 { 398 NULL 399 }, 400 NULL, // Shared object library handle 401 "libOmxAacDec.so", 402 { 403 "audio_decoder.aac" 404 } 405 }, 406 { 407 "OMX.qcom.audio.encoder.aac", 408 NULL, // Create instance function 409 // Unique instance handle 410 { 411 NULL 412 }, 413 NULL, // Shared object library handle 414 "libOmxAacEnc.so", 415 { 416 "audio_encoder.aac" 417 } 418 }, 419 { 420 "OMX.qcom.audio.encoder.qcelp13", 421 NULL, // Create instance function 422 // Unique instance handle 423 { 424 NULL 425 }, 426 NULL, // Shared object library handle 427 "libOmxQcelp13Enc.so", 428 { 429 "audio_encoder.qcelp13" 430 } 431 }, 432 { 433 "OMX.qcom.audio.encoder.evrc", 434 NULL, // Create instance function 435 // Unique instance handle 436 { 437 NULL 438 }, 439 NULL, // Shared object library handle 440 "libOmxEvrcEnc.so", 441 { 442 "audio_encoder.evrc" 443 } 444 }, 445 { 446 "OMX.qcom.audio.encoder.amrnb", 447 NULL, // Create instance function 448 // Unique instance handle 449 { 450 NULL 451 }, 452 NULL, // Shared object library handle 453 "libOmxAmrEnc.so", 454 { 455 "audio_encoder.amrnb" 456 } 457 }, 458 { 459 "OMX.qcom.audio.decoder.aac", 460 NULL, // Create instance function 461 // Unique instance handle 462 { 463 NULL 464 }, 465 NULL, // Shared object library handle 466 "libOmxAacDec.so", 467 { 468 "audio_decoder.aac" 469 } 470 }, 471 { 472 "OMX.qcom.audio.decoder.multiaac", 473 NULL, // Create instance function 474 // Unique instance handle 475 { 476 NULL 477 }, 478 NULL, // Shared object library handle 479 "libOmxAacDec.so", 480 { 481 "audio_decoder.aac" 482 } 483 }, 484 { 485 "AIV.play.generic", 486 NULL, // Create instance function 487 // Unique instance handle 488 { 489 NULL 490 }, 491 NULL, // Shared object library handle 492 "libAivPlay.so", 493 { 494 "AIV.play.role.generic" 495 } 496 }, 497 { 498 "OMX.qcom.file.muxer", 499 NULL, // Create instance function 500 // Unique instance handle 501 { 502 NULL 503 }, 504 NULL, // Shared object library handle 505 "libOmxMux.so", 506 { 507 "container_muxer.mp2" 508 } 509 } 510 }; 511 512 const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); 513 514 515