M4xVSS_API.h revision 0a389ab70db304fb840e33f33781ecc0503eae3c
1/* 2 * Copyright (C) 2004-2011 NXP Software 3 * Copyright (C) 2011 The Android Open Source Project 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18#ifndef __M4XVSS_API_H__ 19#define __M4XVSS_API_H__ 20 21#ifdef __cplusplus 22extern "C" { 23#endif 24/** 25 ****************************************************************************** 26 * @file M4xVSS_API.h 27 * @brief API of Video Studio 2.1 28 * @note 29 ****************************************************************************** 30*/ 31 32#define M4VSS_SUPPORT_EXTENDED_FEATURES 33 34#include "M4VSS3GPP_API.h" 35#include "M4VSS3GPP_Extended_API.h" 36 37/* Errors codes */ 38 39/** 40 * End of analyzing => the user can call M4xVSS_PreviewStart or M4xVSS_SaveStart */ 41#define M4VSS3GPP_WAR_ANALYZING_DONE M4OSA_ERR_CREATE( M4_WAR, M4VS, 0x0001) 42 43/** 44 * End of preview generating => the user can launch vps to see preview. Once preview is over, 45 the user must call M4xVSS_PreviewStop() to be able to save edited file, or to call another 46 M4xVSS_SendCommand() */ 47#define M4VSS3GPP_WAR_PREVIEW_READY M4OSA_ERR_CREATE( M4_WAR, M4VS, 0x0002) 48 49/** 50 * End of saved file generation => the user must call M4xVSS_SaveStop() */ 51#define M4VSS3GPP_WAR_SAVING_DONE M4OSA_ERR_CREATE( M4_WAR, M4VS, 0x0003) 52 53/** 54 * Transcoding is necessary to go further -> if the user does not want to continue, 55 he must call M4xVSS_sendCommand() */ 56#define M4VSS3GPP_WAR_TRANSCODING_NECESSARY M4OSA_ERR_CREATE( M4_WAR, M4VS, 0x0004) 57 58/** 59 * In case of MMS, the output file size won't be reached */ 60#define M4VSS3GPP_WAR_OUTPUTFILESIZE_EXCEED M4OSA_ERR_CREATE( M4_WAR, M4VS, 0x0005) 61 62/** 63 * JPG input file dimensions are too high */ 64#define M4VSS3GPP_ERR_JPG_TOO_BIG M4OSA_ERR_CREATE( M4_ERR, M4VS, 0x0001) 65 66/** 67 * UTF Conversion, warning on the size of the temporary converted buffer*/ 68#define M4xVSSWAR_BUFFER_OUT_TOO_SMALL M4OSA_ERR_CREATE( M4_WAR, M4VS, 0x0006) 69 70/** 71 * SWIKAR :Error whan NO_MORE_SPACE*/ 72#define M4xVSSERR_NO_MORE_SPACE M4OSA_ERR_CREATE( M4_ERR, M4VS, 0x0007) 73 74/** 75 ****************************************************************************** 76 * enum M4xVSS_VideoEffectType 77 * @brief This enumeration defines the video effect types of the xVSS 78 ****************************************************************************** 79*/ 80typedef enum 81{ 82 M4xVSS_kVideoEffectType_BlackAndWhite = M4VSS3GPP_kVideoEffectType_External+1, /* 257 */ 83 M4xVSS_kVideoEffectType_Pink, /* 258 */ 84 M4xVSS_kVideoEffectType_Green, /* 259 */ 85 M4xVSS_kVideoEffectType_Sepia, /* 260 */ 86 M4xVSS_kVideoEffectType_Negative, /* 261 */ 87 M4xVSS_kVideoEffectType_Framing, /* 262 */ 88 M4xVSS_kVideoEffectType_Text, /* Text overlay */ /* 263 */ 89 M4xVSS_kVideoEffectType_ZoomIn, /* 264 */ 90 M4xVSS_kVideoEffectType_ZoomOut, /* 265 */ 91 M4xVSS_kVideoEffectType_Fifties, /*266 */ 92 M4xVSS_kVideoEffectType_ColorRGB16, /*267 */ 93 M4xVSS_kVideoEffectType_Gradient /*268*/ 94} M4xVSS_VideoEffectType; 95 96/** 97 ****************************************************************************** 98 * enum M4xVSS_VideoTransitionType 99 * @brief This enumeration defines the video effect that can be applied during a transition. 100 ****************************************************************************** 101*/ 102typedef enum 103{ 104 M4xVSS_kVideoTransitionType_External = M4VSS3GPP_kVideoTransitionType_External, /*256*/ 105 M4xVSS_kVideoTransitionType_AlphaMagic, 106 M4xVSS_kVideoTransitionType_SlideTransition, 107 M4xVSS_kVideoTransitionType_FadeBlack 108 109} M4xVSS_VideoTransitionType; 110 111/** 112 ****************************************************************************** 113 * struct M4xVSS_PreviewSettings 114 * @brief This structure gathers all the information needed by the VPS for preview 115 ****************************************************************************** 116*/ 117typedef struct 118{ 119 M4OSA_Void *p3gpPreviewFile; 120 M4OSA_Void *pPCMFile; 121 M4VIDEOEDITING_AudioSamplingFrequency outPCM_ASF; 122 M4OSA_Bool bAudioMono; 123 M4VSS3GPP_EffectSettings *Effects; 124 M4OSA_UInt8 nbEffects; 125 126} M4xVSS_PreviewSettings; 127 128/** 129 ****************************************************************************** 130 * prototype M4xVSS_toUTF8Fct 131 * @brief This prototype defines the function implemented by the integrator 132 * to convert a string encoded in any format to an UTF8 string. 133 * @note 134 * 135 * @param pBufferIn IN Buffer containing the string to convert to UTF8 136 * @param pBufferOut IN Buffer containing the UTF8 converted string 137 * @param bufferOutSize IN/OUT IN: Size of the given output buffer 138 * OUT: Size of the converted buffer 139 * 140 ****************************************************************************** 141*/ 142typedef M4OSA_ERR (*M4xVSS_toUTF8Fct) 143( 144 M4OSA_Void *pBufferIn, 145 M4OSA_UInt8 *pBufferOut, 146 M4OSA_UInt32 *bufferOutSize 147); 148 149 150/** 151 ****************************************************************************** 152 * prototype M4xVSS_fromUTF8Fct 153 * @brief This prototype defines the function implemented by the integrator 154 * to convert an UTF8 string to a string encoded in any format. 155 * @note 156 * 157 * @param pBufferIn IN Buffer containing the UTF8 string to convert 158 * to the desired format. 159 * @param pBufferOut IN Buffer containing the converted string 160 * @param bufferOutSize IN/OUT IN: Size of the given output buffer 161 * OUT: Size of the converted buffer 162 * 163 ****************************************************************************** 164*/ 165typedef M4OSA_ERR (*M4xVSS_fromUTF8Fct) 166( 167 M4OSA_UInt8 *pBufferIn, 168 M4OSA_Void *pBufferOut, 169 M4OSA_UInt32 *bufferOutSize 170); 171 172 173 174 175/** 176 ****************************************************************************** 177 * struct M4xVSS_InitParams 178 * @brief This structure defines parameters for xVSS. 179 * @note 180 ****************************************************************************** 181*/ 182typedef struct 183{ 184 M4OSA_FileReadPointer* pFileReadPtr; 185 M4OSA_FileWriterPointer* pFileWritePtr; 186 M4OSA_Void* pTempPath; 187 /*Function pointer on an external text conversion function */ 188 M4xVSS_toUTF8Fct pConvToUTF8Fct; 189 /*Function pointer on an external text conversion function */ 190 M4xVSS_fromUTF8Fct pConvFromUTF8Fct; 191 192 193 194} M4xVSS_InitParams; 195 196/** 197 ****************************************************************************** 198 * prototype M4xVSS_Init 199 * @brief This function initializes the xVSS 200 * @note Initializes the xVSS edit operation (allocates an execution context). 201 * 202 * @param pContext (OUT) Pointer on the xVSS edit context to allocate 203 * @param params (IN) Parameters mandatory for xVSS 204 * @return M4NO_ERROR: No error 205 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 206 * @return M4ERR_ALLOC: Memory allocation has failed 207 ****************************************************************************** 208*/ 209M4OSA_ERR M4xVSS_Init(M4OSA_Context* pContext, M4xVSS_InitParams* params); 210 211/** 212 ****************************************************************************** 213 * prototype M4xVSS_ReduceTranscode 214 * @brief This function changes the given editing structure in order to 215 * minimize the transcoding time. 216 * @note The xVSS analyses this structure, and if needed, changes the 217 * output parameters (Video codec, video size, audio codec, 218 * audio nb of channels) to minimize the transcoding time. 219 * 220 * @param pContext (OUT) Pointer on the xVSS edit context to allocate 221 * @param pSettings (IN) Edition settings (allocated by the user) 222 * @return M4NO_ERROR: No error 223 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 224 * @return M4ERR_ALLOC: Memory allocation has failed 225 * @return M4ERR_STATE: This function cannot not be called at this time 226 ****************************************************************************** 227*/ 228M4OSA_ERR M4xVSS_ReduceTranscode(M4OSA_Context pContext, M4VSS3GPP_EditSettings* pSettings); 229 230/** 231 ****************************************************************************** 232 * prototype M4xVSS_SendCommand 233 * @brief This function gives to the xVSS an editing structure 234 * @note The xVSS analyses this structure, and prepare edition 235 * This function must be called after M4xVSS_Init, after 236 * M4xVSS_CloseCommand, or after M4xVSS_PreviewStop. 237 * After this function, the user must call M4xVSS_Step until 238 * it returns another error than M4NO_ERROR. 239 * 240 * @param pContext (IN) Pointer on the xVSS edit context 241 * @param pSettings (IN) Edition settings (allocated by the user) 242 * @return M4NO_ERROR: No error 243 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 244 * @return M4ERR_ALLOC: Memory allocation has failed 245 * @return M4ERR_STATE: This function cannot not be called at this time 246 ****************************************************************************** 247*/ 248M4OSA_ERR M4xVSS_SendCommand(M4OSA_Context pContext, M4VSS3GPP_EditSettings* pSettings); 249 250/** 251 ****************************************************************************** 252 * prototype M4xVSS_PreviewStart 253 * @brief This function prepare the preview 254 * @note The xVSS create 3GP preview file and fill pPreviewSettings with 255 * preview parameters. 256 * This function must be called once M4xVSS_Step has returned 257 * M4VSS3GPP_WAR_ANALYZING_DONE 258 * After this function, the user must call M4xVSS_Step until 259 * it returns another error than M4NO_ERROR. 260 * 261 * @param pContext (IN) Pointer on the xVSS edit context 262 * @param pPreviewSettings (IN) Preview settings (allocated by the user) 263 * @return M4NO_ERROR: No error 264 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 265 * @return M4ERR_ALLOC: Memory allocation has failed 266 * @return M4ERR_STATE: This function cannot not be called at this time 267 ****************************************************************************** 268*/ 269M4OSA_ERR M4xVSS_PreviewStart(M4OSA_Context pContext, M4xVSS_PreviewSettings* pPreviewSettings); 270 271/** 272 ****************************************************************************** 273 * prototype M4xVSS_PreviewStop 274 * @brief This function unallocate preview ressources and change xVSS 275 * internal state to allow saving or resend an editing command 276 * @note This function must be called once M4xVSS_Step has returned 277 * M4VSS3GPP_WAR_PREVIEW_READY 278 * 279 * @param pContext (IN) Pointer on the xVSS edit context 280 * @return M4NO_ERROR: No error 281 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 282 * @return M4ERR_STATE: This function cannot not be called at this time 283 ****************************************************************************** 284*/ 285M4OSA_ERR M4xVSS_PreviewStop(M4OSA_Context pContext); 286 287/** 288 ****************************************************************************** 289 * prototype M4xVSS_SaveStart 290 * @brief This function prepare the save 291 * @note The xVSS create 3GP edited final file 292 * This function must be called once M4xVSS_Step has returned 293 * M4VSS3GPP_WAR_ANALYZING_DONE 294 * After this function, the user must call M4xVSS_Step until 295 * it returns another error than M4NO_ERROR. 296 * 297 * @param pContext (IN) Pointer on the xVSS edit context 298 * @param pFilePath (IN) If the user wants to provide a different 299 * output filename, else can be NULL (allocated by the user) 300 * @return M4NO_ERROR: No error 301 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 302 * @return M4ERR_ALLOC: Memory allocation has failed 303 * @return M4ERR_STATE: This function cannot not be called at this time 304 ****************************************************************************** 305*/ 306M4OSA_ERR M4xVSS_SaveStart(M4OSA_Context pContext, M4OSA_Void* pFilePath, 307 M4OSA_UInt32 filePathSize); 308 309/** 310 ****************************************************************************** 311 * prototype M4xVSS_SaveStop 312 * @brief This function unallocate save ressources and change xVSS 313 * internal state. 314 * @note This function must be called once M4xVSS_Step has returned 315 * M4VSS3GPP_WAR_SAVING_DONE 316 * 317 * @param pContext (IN) Pointer on the xVSS edit context 318 * @return M4NO_ERROR: No error 319 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 320 * @return M4ERR_STATE: This function cannot not be called at this time 321 ****************************************************************************** 322*/ 323M4OSA_ERR M4xVSS_SaveStop(M4OSA_Context pContext); 324 325/** 326 ****************************************************************************** 327 * prototype M4xVSS_Step 328 * @brief This function executes differents tasks, depending of xVSS 329 * internal state. 330 * @note This function: 331 * - analyses editing structure if called after M4xVSS_SendCommand 332 * - generates preview file if called after M4xVSS_PreviewStart 333 * - generates final edited file if called after M4xVSS_SaveStart 334 * 335 * @param pContext (IN) Pointer on the xVSS edit context 336 * @param pContext (OUT) Progress indication from 0 to 100 337 * @return M4NO_ERROR: No error, the user must call M4xVSS_Step again 338 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 339 * @return M4ERR_STATE: This function cannot not be called at this time 340 * @return M4VSS3GPP_WAR_PREVIEW_READY: Preview file is generated 341 * @return M4VSS3GPP_WAR_SAVING_DONE: Final edited file is generated 342 * @return M4VSS3GPP_WAR_ANALYZING_DONE: Analyse is done 343 ****************************************************************************** 344*/ 345M4OSA_ERR M4xVSS_Step(M4OSA_Context pContext, M4OSA_UInt8 *pProgress); 346 347/** 348 ****************************************************************************** 349 * prototype M4xVSS_CloseCommand 350 * @brief This function deletes current editing profile, unallocate 351 * ressources and change xVSS internal state. 352 * @note After this function, the user can call a new M4xVSS_SendCommand 353 * 354 * @param pContext (IN) Pointer on the xVSS edit context 355 * @return M4NO_ERROR: No error 356 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 357 * @return M4ERR_STATE: This function cannot not be called at this time 358 ****************************************************************************** 359*/ 360M4OSA_ERR M4xVSS_CloseCommand(M4OSA_Context pContext); 361 362/** 363 ****************************************************************************** 364 * prototype M4xVSS_CleanUp 365 * @brief This function deletes all xVSS ressources 366 * @note This function must be called after M4xVSS_CloseCommand. 367 * 368 * @param pContext (IN) Pointer on the xVSS edit context 369 * @return M4NO_ERROR: No error 370 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 371 * @return M4ERR_STATE: This function cannot not be called at this time 372 ****************************************************************************** 373*/ 374M4OSA_ERR M4xVSS_CleanUp(M4OSA_Context pContext); 375 376/** 377 ****************************************************************************** 378 * prototype M4xVSS_GetVersion(M4_VersionInfo *pVersion) 379 * @brief This function get the version of the Video Studio 2.1 380 * 381 * @param pVersion (IN) Pointer on the version info struct 382 * @return M4NO_ERROR: No error 383 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 384 ****************************************************************************** 385*/ 386M4OSA_ERR M4xVSS_GetVersion(M4_VersionInfo *pVersion); 387 388/** 389 ****************************************************************************** 390 * prototype M4VSS3GPP_externalVideoEffectColor(M4OSA_Void *pFunctionContext, 391 * M4VIFI_ImagePlane *PlaneIn, 392 * M4VIFI_ImagePlane *PlaneOut, 393 * M4VSS3GPP_ExternalProgress *pProgress, 394 * M4OSA_UInt32 uiEffectKind) 395 * 396 * @brief This function apply a color effect on an input YUV420 planar frame 397 * @note The prototype of this effect function is exposed because it needs to 398 * called by the VPS during the preview 399 * @param pFunctionContext(IN) Contains which color to apply (not very clean ...) 400 * @param PlaneIn (IN) Input YUV420 planar 401 * @param PlaneOut (IN/OUT) Output YUV420 planar 402 * @param pProgress (IN/OUT) Progress indication (0-100) 403 * @param uiEffectKind (IN) Unused 404 * 405 * @return M4VIFI_OK: No error 406 ****************************************************************************** 407*/ 408M4OSA_ERR M4VSS3GPP_externalVideoEffectColor 409( 410 M4OSA_Void *pFunctionContext, 411 M4VIFI_ImagePlane *pInputPlanes, 412 M4VIFI_ImagePlane *pOutputPlanes, 413 M4VSS3GPP_ExternalProgress *pProgress, 414 M4OSA_UInt32 uiEffectKind 415); 416 417/** 418 ****************************************************************************** 419 * prototype M4VSS3GPP_externalVideoEffectFraming(M4OSA_Void *pFunctionContext, 420 * M4VIFI_ImagePlane *PlaneIn, 421 * M4VIFI_ImagePlane *PlaneOut, 422 * M4VSS3GPP_ExternalProgress *pProgress, 423 * M4OSA_UInt32 uiEffectKind) 424 * 425 * @brief This function add a fixed or animated image on an input YUV420 planar frame 426 * @note The prototype of this effect function is exposed because it needs to 427 * called by the VPS during the preview 428 * @param pFunctionContext(IN) Contains which color to apply (not very clean ...) 429 * @param PlaneIn (IN) Input YUV420 planar 430 * @param PlaneOut (IN/OUT) Output YUV420 planar 431 * @param pProgress (IN/OUT) Progress indication (0-100) 432 * @param uiEffectKind (IN) Unused 433 * 434 * @return M4VIFI_OK: No error 435 ****************************************************************************** 436*/ 437M4OSA_ERR M4VSS3GPP_externalVideoEffectFraming 438( 439 M4OSA_Void *pFunctionContext, 440 M4VIFI_ImagePlane *pInputPlanes, 441 M4VIFI_ImagePlane *pOutputPlanes, 442 M4VSS3GPP_ExternalProgress *pProgress, 443 M4OSA_UInt32 uiEffectKind 444); 445 446/** 447 ****************************************************************************** 448 * prototype M4VSS3GPP_externalVideoEffectFifties(M4OSA_Void *pFunctionContext, 449 * M4VIFI_ImagePlane *PlaneIn, 450 * M4VIFI_ImagePlane *PlaneOut, 451 * M4VSS3GPP_ExternalProgress *pProgress, 452 * M4OSA_UInt32 uiEffectKind) 453 * 454 * @brief This function make a video look as if it was taken in the fifties 455 * @note 456 * @param pUserData (IN) Context 457 * @param pPlaneIn (IN) Input YUV420 planar 458 * @param pPlaneOut (IN/OUT) Output YUV420 planar 459 * @param pProgress (IN/OUT) Progress indication (0-100) 460 * @param uiEffectKind (IN) Unused 461 * 462 * @return M4VIFI_OK: No error 463 * @return M4ERR_PARAMETER: pFiftiesData, pPlaneOut or pProgress are NULL (DEBUG only) 464 ****************************************************************************** 465*/ 466M4OSA_ERR M4VSS3GPP_externalVideoEffectFifties 467( 468 M4OSA_Void *pUserData, 469 M4VIFI_ImagePlane *pInputPlanes, 470 M4VIFI_ImagePlane *pPlaneOut, 471 M4VSS3GPP_ExternalProgress *pProgress, 472 M4OSA_UInt32 uiEffectKind 473); 474 475 476/** 477 ****************************************************************************** 478 * prototype M4VSS3GPP_externalVideoEffectZoom(M4OSA_Void *pFunctionContext, 479 * M4VIFI_ImagePlane *PlaneIn, 480 * M4VIFI_ImagePlane *PlaneOut, 481 * M4VSS3GPP_ExternalProgress *pProgress, 482 * M4OSA_UInt32 uiEffectKind) 483 * 484 * @brief This function add a fixed or animated image on an input YUV420 planar frame 485 * @note The prototype of this effect function is exposed because it needs to 486 * called by the VPS during the preview 487 * @param pFunctionContext(IN) Contains which zoom to apply (In/Out) 488 * @param PlaneIn (IN) Input YUV420 planar 489 * @param PlaneOut (IN/OUT) Output YUV420 planar 490 * @param pProgress (IN/OUT) Progress indication (0-100) 491 * @param uiEffectKind (IN) Unused 492 * 493 * @return M4VIFI_OK: No error 494 ****************************************************************************** 495*/ 496M4OSA_ERR M4VSS3GPP_externalVideoEffectZoom 497( 498 M4OSA_Void *pFunctionContext, 499 M4VIFI_ImagePlane *pInputPlanes, 500 M4VIFI_ImagePlane *pOutputPlanes, 501 M4VSS3GPP_ExternalProgress *pProgress, 502 M4OSA_UInt32 uiEffectKind 503); 504 505/** 506 ****************************************************************************** 507 * M4OSA_ERR M4xVSS_CreateClipSettings() 508 * @brief Allows filling a clip settings structure with default values 509 * 510 * @note WARNING: pClipSettings->Effects[ ] will be allocated in this function. 511 * pClipSettings->pFile will be allocated in this function. 512 * 513 * @param pClipSettings (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure 514 * @param pFile (IN) Clip file name 515 * @param filePathSize (IN) Size of the clip path (needed for the UTF16 conversion) 516 * @param nbEffects (IN) Nb of effect settings to allocate 517 * @return M4NO_ERROR: No error 518 * @return M4ERR_PARAMETER: pClipSettings is M4OSA_NULL (debug only) 519 ****************************************************************************** 520*/ 521M4OSA_ERR M4xVSS_CreateClipSettings(M4VSS3GPP_ClipSettings *pClipSettings, M4OSA_Void* pFile, 522 M4OSA_UInt32 filePathSize, M4OSA_UInt8 nbEffects); 523 524/** 525 ****************************************************************************** 526 * M4OSA_ERR M4xVSS_DuplicateClipSettings() 527 * @brief Duplicates a clip settings structure, performing allocations if required 528 * 529 * @param pClipSettingsDest (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure 530 * @param pClipSettingsOrig (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure 531 * @param bCopyEffects (IN) Flag to know if we have to duplicate effects 532 * @return M4NO_ERROR: No error 533 * @return M4ERR_PARAMETER: pClipSettings is M4OSA_NULL (debug only) 534 ****************************************************************************** 535*/ 536M4OSA_ERR M4xVSS_DuplicateClipSettings(M4VSS3GPP_ClipSettings *pClipSettingsDest, 537 M4VSS3GPP_ClipSettings *pClipSettingsOrig, 538 M4OSA_Bool bCopyEffects); 539 540/** 541 ****************************************************************************** 542 * M4OSA_ERR M4xVSS_FreeClipSettings() 543 * @brief Free the pointers allocated in the ClipSetting structure (pFile, Effects). 544 * 545 * @param pClipSettings (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure 546 * @return M4NO_ERROR: No error 547 * @return M4ERR_PARAMETER: pClipSettings is M4OSA_NULL (debug only) 548 ****************************************************************************** 549*/ 550M4OSA_ERR M4xVSS_FreeClipSettings(M4VSS3GPP_ClipSettings *pClipSettings); 551 552/** 553 ****************************************************************************** 554 * prototype M4OSA_ERR M4xVSS_getMCSContext(M4OSA_Context pContext, M4OSA_Context* mcsContext) 555 * @brief This function returns the MCS context within the xVSS internal context 556 * @note This function must be called only after VSS state has moved to analyzing state 557 * or beyond 558 * 559 * @param pContext (IN) Pointer on the xVSS edit context 560 * @param mcsContext (OUT) Pointer to pointer of mcs context to return 561 * @return M4NO_ERROR: No error 562 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 563 * @return M4ERR_STATE: This function cannot not be called at this time 564 ****************************************************************************** 565*/ 566M4OSA_ERR M4xVSS_getMCSContext(M4OSA_Context pContext, M4OSA_Context* mcsContext); 567 568/** 569 ****************************************************************************** 570 * prototype M4OSA_ERR M4xVSS_getVSS3GPPContext(M4OSA_Context pContext, 571 * M4OSA_Context* mcsContext) 572 * @brief This function returns the VSS3GPP context within the xVSS internal context 573 * @note This function must be called only after VSS state has moved to Generating 574 * preview or beyond 575 * 576 * @param pContext (IN) Pointer on the xVSS edit context 577 * @param vss3gppContext (OUT) Pointer to pointer of vss3gpp context to return 578 * @return M4NO_ERROR: No error 579 * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL 580 * @return M4ERR_STATE: This function cannot not be called at this time 581 ****************************************************************************** 582*/ 583M4OSA_ERR M4xVSS_getVSS3GPPContext(M4OSA_Context pContext, M4OSA_Context* vss3gppContext); 584 585#ifdef __cplusplus 586} 587#endif /* __cplusplus */ 588#endif /* __M4XVSS_API_H__ */ 589 590