Get raw data from each user usin meetingsdx-linux-raw-recording-sample

@chunsiong.zoom I found solve of my issue in this post. The problem was in ZoomSDKResolution. I used ZoomSDKResolution_720P instead of ZoomSDKResolution_360P or another one. After I change this param all work good!

If someone have problem with connecting to multiply participant, you need to create loop within you create render for each user

void createRender(uint32_t userId, bool isVideo, bool isAudio) {
    if (isVideo) {
        ZoomSDKRenderer* videoSource = new ZoomSDKRenderer();
        IZoomSDKRenderer* videoHelper;
        SDKError err = createRenderer(&videoHelper, videoSource); // Zamenit' nullptr na vash delegat, yesli neobkhodimo
        if (err != SDKERR_SUCCESS) {
            std::cout << "Error occurred creating videoHelper" << std::endl;
            return;
        } else {
            videoHelper->setRawDataResolution(ZoomSDKResolution_360P);
            videoHelper->subscribe(userId, RAW_DATA_TYPE_VIDEO);
            std::cout << "Subscribe on user with id "<<videoHelper->getUserId()<<std::endl;
        }
    }
    if (isAudio) {
        audioHelper = GetAudioRawdataHelper();
        if (audioHelper) {
            SDKError err = audioHelper->subscribe(audio_source);
            if (err != SDKERR_SUCCESS) {
                std::cout << "Error occurred subscribing to audio : " << err << std::endl;
            }
        } else {
            std::cout << "Error getting audioHelper" << std::endl;
        }
    }
}

void CheckAndStartRawRecording(bool isVideo, bool isAudio) {
    m_pRecordController = m_pMeetingService->GetMeetingRecordingController();
    SDKError err2 = m_pRecordController->CanStartRawRecording();
    if (err2 == SDKERR_SUCCESS) {
        SDKError err1 = m_pRecordController->StartRawRecording();
        if (err1 != SDKERR_SUCCESS) {
            std::cout << "Error occurred starting raw recording" << std::endl;
            return;
        }

        int count = getParticipantCount();
        for (int i = 0; i < count; i++) {
            std::string name = getUserName(i);
            if (name != "EmotionIQ Bot") {
                uint32_t userId = getUserID(i);
                createRender(userId, isVideo, isAudio);
            }
        }
    } else {
        std::cout << "Cannot start raw recording: no permissions yet, need host, co-host, or recording privilege" << std::endl;
    }
}
1 Like