Hello,
I have quite annoying problem that I cant solve for quite long time.
Here the issue:
I made C++ application that using WebRTC library (actually libjingle) to send video from my ip camera to Browser.
I am using my own VP8 encoder as WebRTC capturer and then just cancelled compression step in vp8_impl.cc
(Actually if anybody knows how to legally use already compressed frames let me know please, but so far I dont see such mechanism anymore.)
And it works quite fine.
But sometimes, it depends on network condition I see many artifacts on browser site. I believe it happens because frames get dropped by network.
I found the code in encoder that should receive RTCP packets in case correction needed (correct me if I am wrong)
void ViEEncoder::OnReceivedIntraFrameRequest(uint32_t ssrc)
which as far as I understand requests key frame to perform "re-synchronization" in video frames
And I see that it executed sometimes, probably 2-3 times, mostly at the beginnig, but it not affects on number of artifacts.
Also If I comment out (disable dropper)
// Real-time mode - enable frame droppers.
vpm_.EnableTemporalDecimation(true);
vcm_.EnableFrameDropper(true);
It reduces number of artifacts.
So my question is what I am doing wrong, how can I prevent off fix that artifacts appearance ?
Do I really need to disable dropper? How can I do it through WebRTC calls, or it is internal of WebRTC ?
Thanks
Aleksey