blob: 074a06e86fafa687ba5b45bc81967b690de048bd [file] [log] [blame]
#ifndef MP4V2_ISMA_H
#define MP4V2_ISMA_H
/**************************************************************************//**
*
* @defgroup mp4_isma MP4v2 ISMA (Internet Streaming Media Alliance)
* @{
*
*****************************************************************************/
/** something */
typedef struct mp4v2_ismacryp_session_params {
uint32_t scheme_type;
uint16_t scheme_version;
uint8_t key_ind_len;
uint8_t iv_len;
uint8_t selective_enc;
const char* kms_uri;
} mp4v2_ismacrypParams;
/*
* API to initialize ismacryp properties to sensible defaults
* if input param is null then mallocs a params struct
*/
MP4V2_EXPORT
mp4v2_ismacrypParams* MP4DefaultISMACrypParams( mp4v2_ismacrypParams* ptr );
MP4V2_EXPORT
MP4TrackId MP4AddEncAudioTrack(
MP4FileHandle hFile,
uint32_t timeScale,
MP4Duration sampleDuration,
mp4v2_ismacrypParams* icPp,
uint8_t audioType DEFAULT(MP4_MPEG4_AUDIO_TYPE) );
MP4V2_EXPORT
MP4TrackId MP4AddEncVideoTrack(
MP4FileHandle hFile,
uint32_t timeScale,
MP4Duration sampleDuration,
uint16_t width,
uint16_t height,
mp4v2_ismacrypParams* icPp,
uint8_t videoType DEFAULT(MP4_MPEG4_VIDEO_TYPE),
const char* oFormat DEFAULT(NULL) );
MP4V2_EXPORT
MP4TrackId MP4AddEncH264VideoTrack(
MP4FileHandle dstFile,
uint32_t timeScale,
MP4Duration sampleDuration,
uint16_t width,
uint16_t height,
MP4FileHandle srcFile,
MP4TrackId srcTrackId,
mp4v2_ismacrypParams* icPp );
MP4V2_EXPORT
MP4TrackId MP4EncAndCloneTrack(
MP4FileHandle srcFile,
MP4TrackId srcTrackId,
mp4v2_ismacrypParams* icPp,
MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID) );
MP4V2_EXPORT
MP4TrackId MP4EncAndCopyTrack(
MP4FileHandle srcFile,
MP4TrackId srcTrackId,
mp4v2_ismacrypParams* icPp,
encryptFunc_t encfcnp,
uint32_t encfcnparam1,
MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
bool applyEdits DEFAULT(false),
MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID) );
MP4V2_EXPORT
bool MP4MakeIsmaCompliant(
const char* fileName,
bool addIsmaComplianceSdp DEFAULT(true) );
MP4V2_EXPORT
char* MP4MakeIsmaSdpIod(
uint8_t videoProfile,
uint32_t videoBitrate,
uint8_t* videoConfig,
uint32_t videoConfigLength,
uint8_t audioProfile,
uint32_t audioBitrate,
uint8_t* audioConfig,
uint32_t audioConfigLength );
/** @} ***********************************************************************/
#endif /* MP4V2_ISMA_H */