Hi On Thu, Aug 23, 2007 at 07:18:08PM +0300, Kostya wrote: > 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.
you should use a parser which puts these parts back together how should it work with remuxing in another container lets say matroska, i very seriously doubt that it will work if the tail of a slice is in the next frame ... also are you sure that there are no flags/sizes at demuxer level which could be used to easily combine these parts into slices or frames without needing to look into the codec bitstream? > > 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. thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The worst form of inequality is to try to make unequal things equal. -- Aristotle
signature.asc
Description: Digital signature
_______________________________________________ FFmpeg-soc mailing list [email protected] http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
