diff --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); }