rendered paste bodydiff --git a/mythtv/libs/libmythtv/mythplayer.cpp b/mythtv/libs/libmythtv/mythplayer.cpp
index d027511..443851f 100644
--- a/mythtv/libs/libmythtv/mythplayer.cpp
+++ b/mythtv/libs/libmythtv/mythplayer.cpp
@@ -4285,7 +4285,10 @@ void MythPlayer::calcSliderPos(osdInfo &info, bool paddedFields)
info.values.insert("progbefore", 0);
info.values.insert("progafter", 0);
- int playbackLen = totalLength;
+ int playbackLen = totalDuration;
+
+ if (totalDuration == 0 || noVideoTracks || decoder->GetCodecDecoderName() == "nuppel")
+ playbackLen = totalLength;
if (livetv && player_ctx->tvchain)
{
@@ -4303,7 +4306,9 @@ void MythPlayer::calcSliderPos(osdInfo &info, bool paddedFields)
islive = true;
}
- float secsplayed = (float)(framesPlayed / video_frame_rate);
+ float secsplayed = (noVideoTracks || decoder->GetCodecDecoderName() == "nuppel") ?
+ (float)(framesPlayed / video_frame_rate) :
+ (float)(disp_timecode / 1000.f);
calcSliderPosPriv(info, paddedFields, playbackLen, secsplayed, islive);
}