EPG Zeitzone-Fix + --rtsp-tcp
This commit is contained in:
parent
22d09621ee
commit
1ad2d35e58
2 changed files with 14 additions and 7 deletions
|
|
@ -115,7 +115,9 @@ public partial class MainWindow : Window
|
|||
"--network-caching=1000",
|
||||
"--no-video-title-show",
|
||||
"--no-osd",
|
||||
"--no-snapshot-preview"
|
||||
"--no-snapshot-preview",
|
||||
"--rtsp-tcp" // RTP over TCP: stabilere Sessions, vermeidet UDP-Routing-Kollisionen
|
||||
// wenn mehrere Instanzen parallel auf die gleiche FritzBox zugreifen
|
||||
);
|
||||
_player = new MediaPlayer(_libVLC);
|
||||
VideoView.MediaPlayer = _player;
|
||||
|
|
|
|||
|
|
@ -162,22 +162,27 @@ public class EpgService
|
|||
if (string.IsNullOrWhiteSpace(s)) return DateTime.MinValue;
|
||||
try
|
||||
{
|
||||
// Format: "yyyyMMddHHmmss +0200" oder ohne Offset
|
||||
var parts = s.Trim().Split(' ', 2);
|
||||
var dt = DateTime.ParseExact(parts[0], "yyyyMMddHHmmss",
|
||||
System.Globalization.CultureInfo.InvariantCulture);
|
||||
// dt.Kind = Unspecified hier
|
||||
|
||||
if (parts.Length == 2 && parts[1].Length == 5)
|
||||
{
|
||||
// Offset parsen: "+0200" oder "+0000"
|
||||
var sign = parts[1][0] == '-' ? -1 : 1;
|
||||
var hh = int.Parse(parts[1].Substring(1, 2));
|
||||
var mm = int.Parse(parts[1].Substring(3, 2));
|
||||
var offsetMin = sign * (hh * 60 + mm);
|
||||
// dt war als UTC+offset interpretiert, nach lokaler Zeit konvertieren
|
||||
var asUtc = new DateTimeOffset(dt, TimeSpan.FromMinutes(offsetMin));
|
||||
return asUtc.LocalDateTime;
|
||||
var offset = TimeSpan.FromMinutes(sign * (hh * 60 + mm));
|
||||
|
||||
// dt ist die Uhrzeit im angegebenen Offset (nicht UTC)
|
||||
// DateTimeOffset(Unspecified, offset) interpretiert dt als "diese Zeit in dieser Zone"
|
||||
// .ToLocalTime() konvertiert korrekt in die Systemzeitzone
|
||||
return new DateTimeOffset(dt, offset).ToLocalTime().DateTime;
|
||||
}
|
||||
return dt;
|
||||
|
||||
// Kein Offset → UTC annehmen (epg.pw liefert immer +0000, aber sicherheitshalber)
|
||||
return new DateTimeOffset(dt, TimeSpan.Zero).ToLocalTime().DateTime;
|
||||
}
|
||||
catch { return DateTime.MinValue; }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue