No it doesn't store or cache the file, it plays the native http stream which is mpeg-ps.
While NextPVR is playing it constantly logs
Code:
2012-04-25 19:25:13.263 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:13.363 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:13.474 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:13.584 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:13.702 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:13.799 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:13.915 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:14.017 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:14.137 [DEBUG][1] GetDuration returning 0
2012-04-25 19:25:14.156 [DEBUG][1] GetDuration returning 0
However NextPVR does get the current position and correct if I try to skip,
Code:
2012-04-25 19:35:48.856 [DEBUG][1] Current position is: 61.3339729309082
However after skipping it cannot go forward.
I do know the length and I have tried setting args["@duration"] = various things hoping for a trace error for the format before calling
PluginHelperFactory.GetPluginHelper().SetPlayerMet aData(args);
but that didn't change anything. That would only give the total time but it is possible that if PlayOn won't fail if you try to skip to far, it might take you near the end of transcoding. It still might help going backwards because the current timeline looks like this in both timeline styles, with the first number being the actual time.
It might work on the NMT since the NMT does record the correct PTS and it is playing directly from the UPnP http server too.
Martin