1 /*-------------------------------------------------------------------------- 2 Copyright (c) 2014, 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.file.muxer", 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 118 "libOmxMux.so", 119 { 120 "container_muxer.mp2" 121 } 122 }, 123 { 124 "OMX.qcom.video.decoder.divx4", 125 NULL, // Create instance function 126 // Unique instance handle 127 { 128 NULL, 129 NULL, 130 NULL, 131 NULL 132 }, 133 NULL, // Shared object library handle 134 "libOmxVdec.so", 135 { 136 "video_decoder.divx" 137 } 138 }, 139 { 140 "OMX.qcom.video.decoder.divx", 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.divx311", 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.h263", 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.h263" 185 } 186 }, 187 { 188 "OMX.qcom.video.decoder.hevc", 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.hevc" 201 } 202 }, 203 { 204 "OMX.qcom.video.decoder.hevc.secure", 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.encoder.mpeg4", 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 "libOmxVenc.so", 247 { 248 "video_encoder.mpeg4" 249 } 250 }, 251 { 252 "OMX.qcom.video.encoder.h263", 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.h263", 265 } 266 }, 267 { 268 "OMX.qcom.video.encoder.avc", 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.avc" 281 } 282 }, 283 { 284 "OMX.qcom.video.encoder.vp8", 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.vp8", 297 } 298 }, 299 { 300 "OMX.qti.video.encoder.hevc", 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 "libOmxSwVencHevc.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 NULL, 322 NULL, 323 NULL 324 }, 325 NULL, // Shared object library handle 326 "libOmxQcelp13Dec.so", 327 { 328 "audio_decoder.Qcelp13" 329 } 330 }, 331 { 332 "OMX.qcom.audio.decoder.evrc", 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 "libOmxEvrcDec.so", 343 { 344 "audio_decoder.evrc" 345 } 346 }, 347 { 348 "OMX.qcom.audio.decoder.wma", 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 "libOmxWmaDec.so", 359 { 360 "audio_decoder.wma" 361 } 362 }, 363 { 364 "OMX.qcom.audio.decoder.wma10Pro", 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.aac", 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 "libOmxAacDec.so", 391 { 392 "audio_decoder.aac" 393 } 394 }, 395 { 396 "OMX.qcom.audio.encoder.aac", 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 "libOmxAacEnc.so", 407 { 408 "audio_encoder.aac" 409 } 410 }, 411 { 412 "OMX.qcom.audio.encoder.qcelp13", 413 NULL, // Create instance function 414 // Unique instance handle 415 { 416 NULL, 417 NULL, 418 NULL, 419 NULL 420 }, 421 NULL, // Shared object library handle 422 "libOmxQcelp13Enc.so", 423 { 424 "audio_encoder.qcelp13" 425 } 426 }, 427 { 428 "OMX.qcom.audio.encoder.evrc", 429 NULL, // Create instance function 430 // Unique instance handle 431 { 432 NULL, 433 NULL, 434 NULL, 435 NULL 436 }, 437 NULL, // Shared object library handle 438 "libOmxEvrcEnc.so", 439 { 440 "audio_encoder.evrc" 441 } 442 }, 443 { 444 "OMX.qcom.audio.encoder.amrnb", 445 NULL, // Create instance function 446 // Unique instance handle 447 { 448 NULL, 449 NULL, 450 NULL, 451 NULL 452 }, 453 NULL, // Shared object library handle 454 "libOmxAmrEnc.so", 455 { 456 "audio_encoder.amrnb" 457 } 458 }, 459 { 460 "OMX.qcom.audio.decoder.aac", 461 NULL, // Create instance function 462 // Unique instance handle 463 { 464 NULL, 465 NULL, 466 NULL, 467 NULL 468 }, 469 NULL, // Shared object library handle 470 "libOmxAacDec.so", 471 { 472 "audio_decoder.aac" 473 } 474 }, 475 { 476 "OMX.qcom.audio.decoder.multiaac", 477 NULL, // Create instance function 478 // Unique instance handle 479 { 480 NULL, 481 NULL, 482 NULL, 483 NULL 484 }, 485 NULL, // Shared object library handle 486 "libOmxAacDec.so", 487 { 488 "audio_decoder.aac" 489 } 490 }, 491 { 492 "OMX.qcom.video.postprocessing", 493 NULL, // Create instance function 494 // Unique instance handle 495 { 496 NULL, 497 NULL, 498 NULL, 499 NULL 500 }, 501 NULL, // Shared object library handle 502 "libOmxVdpp.so", 503 { 504 "videopostprocessing" 505 } 506 } 507 }; 508 509 const unsigned int SIZE_OF_CORE = sizeof(core) / sizeof(omx_core_cb_type); 510 511 512