[Interest] QAbstractVideoSurface::present - videoframe start/endtime always -1 on windows
Ola Røer Thorsen
ola at silentwings.no
Thu Jun 13 13:20:15 CEST 2013
I've created a custom video player using QMultimedia, that plays back
certain video files that are to be post-processed frame-by-frame. The
post-process depends on each video frame's start time. I'm using the Qt
5.1 beta release (I use the new desktop QML features).
I've created a video surface class that inherits QAbstractVideoSurface,
register this in QMediaplayer, and I get each frame in my own
implementation of QAbstractVideoSurface::present.
On Linux, this works flawlessly, each QVideoFrame have proper values for
QVideoFrame::startTime() and endTime(). However on windows, start- and
endtimes are always -1 (invalid).
I try now to look up the current position in the mediaplayer each time
present is called, but this is not really precise enough. Anyone know
how to make this work? I've tried various video file formats but they
all give the same -1 values.
Maybe there is a bug in the windows backend (WMF?). I tried looking into
the source code - at first glance it looks allright (mftvideo.cpp at
line 638), but while googling further into it I found this page here,
where further calculations are needed as the sample times are relative
to a "presentation clock", so maybe it can't work like it's implemented
More information about the Interest