On Thu, Aug 23, 2007 at 06:05:26PM +0200, kostya wrote: > Author: kostya > Date: Thu Aug 23 18:05:26 2007 > New Revision: 1168 > > Log: > Handle case when slice tail is sent as another slice
Let me elaborate on it a bit. Real container stores video frame by slices (controversal decision to me). They decided to drop macroblock count in slice, so you need either to get next slice, parse its header and set limit or just decode until end and hope thet nothing goes wrong. But it appears that sometimes slice end is stored as new slice so you need to add it to the end before decoding. In order to workaround this err... design I keep track of last macroblock decoded successfully in slice and in case of bit reader reading past frame data set mode expecting frame tail, then if it arrives (without correct slice header), concatenating it with the previous data and decoding starting from the last successfully decoded macroblock. I've run my decoder under FFplay and MPlayer and should note that lavf demuxer drops some frames (can be clearly seen on title fade out in test.rmvb), so I will try to fix it. _______________________________________________ FFmpeg-soc mailing list [email protected] http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
