pjsua HD video

LN
Leonardo Nahra
Wed, Mar 2, 2016 9:03 PM

Hello,

I was testing the pjsip capabilities through the pjsua app, and the video
calls were working fine, until I tried to use a HD camera, the preview
shows a pink screen as well as the streaming on another computer.

I changed the H264 codec configuration (fps and resolution) to match the
camera, then I learned about the profile-level-id, that it needed to be
higher to support higher fps/resolution, so I coded that configuration
change in the pjsua app where it changes the resolution, so I could test
right away:

        status = pjsua_vid_codec_get_param(&cid, &cp);

if (status == PJ_SUCCESS) {
cp.enc_fmt.det.vid.size.w = M;
cp.enc_fmt.det.vid.size.h = N;
cp.dec_fmtp.param[0].val = pj_str("xxxx32"); // <-- my change
status = pjsua_vid_codec_set_param(&cid, &cp);
}

I made sure to change the resolution to 1920x1080 after the app started, so
it would change the profile-level-id as well. It still didn't work after
all that, and in the end there are a few things I don't understand:

  1. Does the local preview depend on these codec configurations?
  2. If not, why does the preview show a pink screen?
  3. If yes, what am I doing wrong? Is there another step for HD video
    streaming on pjsua that I am missing?

obs: the capture device that appears on the pjsua app is a capture card,
that is connected to a HD camera, and I know the camera is outputting video
because I can detect that on the capture card app.

Thanks, Nahra.

Hello, I was testing the pjsip capabilities through the pjsua app, and the video calls were working fine, until I tried to use a HD camera, the preview shows a pink screen as well as the streaming on another computer. I changed the H264 codec configuration (fps and resolution) to match the camera, then I learned about the profile-level-id, that it needed to be higher to support higher fps/resolution, so I coded that configuration change in the pjsua app where it changes the resolution, so I could test right away: status = pjsua_vid_codec_get_param(&cid, &cp); if (status == PJ_SUCCESS) { cp.enc_fmt.det.vid.size.w = M; cp.enc_fmt.det.vid.size.h = N; cp.dec_fmtp.param[0].val = pj_str("xxxx32"); // <-- my change status = pjsua_vid_codec_set_param(&cid, &cp); } I made sure to change the resolution to 1920x1080 after the app started, so it would change the profile-level-id as well. It still didn't work after all that, and in the end there are a few things I don't understand: 1. Does the local preview depend on these codec configurations? 2. If not, why does the preview show a pink screen? 3. If yes, what am I doing wrong? Is there another step for HD video streaming on pjsua that I am missing? obs: the capture device that appears on the pjsua app is a capture card, that is connected to a HD camera, and I know the camera is outputting video because I can detect that on the capture card app. Thanks, Nahra.