STATUS initMediaSource()

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;
}