I think it's still relevant to remind you, that there exist another solution to fix playback of xvid/divx456 which we declined because it's not following mpeg4 part2 standard. posts #298,#300,#301 are explaining this.
1. solution(current):
1. demux
2. parse
3. decode - set STREAMTYPE_MPEG4_Part2, use PTS on keyframes.
issues:
demux - when avidemux is in use and is operating in push mode(http/s streams) it doens't set PTS on keyframes - workaround in our sink(not merged yet), gstreamer devs notified
parse - mpeg4videoparse has issues with correctly unpacking packed mpeg4part2 stream, it leaves N frames - workaround in our sink, gstreamer devs notified
decode - some xvid files as in previous post don't play correctlly even when they're already unpacked, this looks like that this could be issue in decoder which cannot handle some xvid "specials" when STREAMTYPE_MPEG4_Part2 is set? - not fixed yet
2. solution (similar to gst0.10):
1. demux
2. decode - set STREAMTYPE_(XVID,DIVX5) for xvid/divx5, set STREAMTYPE_MPEG4_Part2 for divx4, use DTS for xvid/divx5, use PTS on keyframes for divx4
issues:
demux - when avidemux is in use and is operating in push mode(http/s streams) it doens't set PTS on keyframes - workaround in our sink(not merged yet), gstreamer devs notified
demux - when avidemux or matroskademux is in use it doesn't set mimetype for xvid - patched in gstreamer base plugin, gstreamer devs notified but rejected
decode - no issues yet, it works exactly as in gstreamer 0.10, (excluding divx4)
Best solution would be the first one(current) as we already agreed, but it still has some flaws(not resolved xvid frame drops). Second solution is well tested since we feed decoder with same input as in gstreamer 0.10.
Maybe create new branch also for this solution? Anyway if somebody want's to try, here it is.