En réponse à Marcus Overhagen <dos4gw@xxxxxx>: > > It is simply a problem of a accuracy when seeking to another point in > the file. > I think MPEG files have no seeking information embedded, thats why BeOS > currently scans the whole file to build such a table in memory. Such This is also needed to determine the Duration() of the file. Ever tried to play a .mpg before it is completely downloaded ? The playack will just stop at end the file had when you started playing it, because both the Duration() tells it, and it didn't get scanned beyond this point. > behaviour > is needed when editing files, since you need to be exact. However, this > is > not needed when only displaying a video in a player, and it would be > possible > to just estimate the postition in the file, then start searching the > mpeg stream until > you encounter an I frame (a new picture). This will result in a > inccurate position > reporting, the time displayed may be a few seconds wrong. This is exactly the same as what mp3 player does. (mp3 being no more than an audio mpeg stream) > Windows seems to do this, thus is has a fast seeking in mpeg files, and > nobody > really notices that the time information may be wrong. > We will probably add another flag to the > BMediaTrack::SeekTo[Frame|Time] > call, so that the application can tell to codec to do a fast but > inaccurate seeking. I agree (this would also allow progressive download to be handled correctly). > This would be useful for all media player aplications. Editing > applications, as well > as all other (old) applications not using using this flag would get the > accurate > seeking, because they would ommit this flag. François.