MFormats SDK: indexing of files for faster seeking and positioning

Some file formats (such as MPEG-PS, MPEG-TS or VOB) may not contain index information or can have variable frame rate (ASF or WMV). For fast and accurate seeking within these containers we recommend to use the indexing feature in MFormats SDK. The feature is expected to be available in Q1 2015 (Expert edition only).


When you request a frame by its index, the decoding object will calculate the frame time according to the file's frame rate. Then it seeks to the required position in the stream, receives (decodes) the requested frame and returns it to an application.


For most file formats (MOV, MP4, MXF, AVI, MKV etc.) this way is correct and works just fine. But some files may not contain index information or this information is incorrect (for example MPEG-PS, MPEG-TS stream, VOB with wrong presentation timestamps (PTS)) or file has variable frame rate (e.g. ASF, WMV). In these cases the requested frame may be returned inaccurately.


To avoid this issue it will be possible to index all the frames of the file preliminarily by using the "Indexing of files" feature of MFormats SDK. This feature generates a special index file near the source file. When using this feature, frame accurate seeking and accurate receiving of frames for all file formats is guaranteed and the speed of receiving an arbitrary frame (random access to frames) is improved.