in main/AppFileSrc.c [208:245]
STATUS initMediaSource(PMediaContext* ppMediaContext)
{
STATUS retStatus = STATUS_SUCCESS;
PFileSrcContext pFileSrcContext = NULL;
PCodecConfiguration pGstConfiguration;
PCodecStreamConf pVideoStream;
PCodecStreamConf pAudioStream;
CHK(ppMediaContext != NULL, STATUS_MEDIA_NULL_ARG);
*ppMediaContext = NULL;
CHK(NULL != (pFileSrcContext = (PFileSrcContext) MEMCALLOC(1, SIZEOF(FileSrcContext))), STATUS_MEDIA_NOT_ENOUGH_MEMORY);
ATOMIC_STORE_BOOL(&pFileSrcContext->shutdownFileSrc, FALSE);
ATOMIC_STORE_BOOL(&pFileSrcContext->codecConfigLatched, TRUE);
pGstConfiguration = &pFileSrcContext->codecConfiguration;
pGstConfiguration->codecStatus = STATUS_SUCCESS;
pVideoStream = &pGstConfiguration->videoStream;
pAudioStream = &pGstConfiguration->audioStream;
pVideoStream->codec = RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE;
pAudioStream->codec = RTC_CODEC_OPUS;
pFileSrcContext->codecConfLock = MUTEX_CREATE(TRUE);
CHK(IS_VALID_MUTEX_VALUE(pFileSrcContext->codecConfLock), STATUS_MEDIA_INVALID_MUTEX);
// get the sdp information of rtsp server.
//CHK_STATUS((discoverMediaSource(pFileSrcContext)));
*ppMediaContext = pFileSrcContext;
CleanUp:
if (STATUS_FAILED(retStatus)) {
if (pFileSrcContext != NULL) {
detroyMediaSource(pFileSrcContext);
}
}
return retStatus;
}