From: Mihai B. <mi...@ha...> - 2008-09-23 16:02:10
|
Hi Paulo, The current deslicer code does drop incomplete frames, you can check lib/slice.c. As for out of order slices, the jitterbuffer in iaxclient should help re-order them and the deslicer itself has some primitive re-ordering features. The problem, however, goes deeper than that. With most video codecs, Theora included, only key frames (i-frames) are independent, all other frames (p-frames) depend on the previous ones to display correctly. So if you lose one frame, all the following p-frames up to the next key frame will display incorrectly. Some codecs, like H.264 are designed to cope with the loss of some frame fragments, but unfortunately Theora has no such provisions. There is no easy way to fix this, the only reasonable solution is to increase the key frame frequency so that the codec at least recovers quickly enough. Right now, iaxclient sets the key frame frequency to 1 per second, you can change that in codec_theora.c, in codec_video_theora_new(). As an alternative, you could try to freeze video until a new keyframe arrives, but that might be actually worse than the problem. It might require some changes in codec_theora.c and slice.c, but you could experiment with it, see what works for you. Hope this helps, Mihai On Sep 23, 2008, at 11:15 AM, Paulo Vicentini wrote: > Hi, > I am using 2.1beta3 with video support (theora codec). > Sometimes I am getting (probably due network actions- packet loss / > delay) a distortion in the video image degrading its quality and I > think it is something related to the video slices / chunks (dropped > or disordered) of the entire frame. > Is there a way to detect a "problematic frame" - whose chunks are > missing or disordered and drop it rather than display it? > > Thanks > > Paulo > > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win > great prizes > Grand prize is a trip for two to an Open Source event anywhere in > the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________ > Iaxclient-devel mailing list > Iax...@li... > https://lists.sourceforge.net/lists/listinfo/iaxclient-devel |