This commit is contained in:
Chaitanya Mankala 2024-12-24 16:29:57 +05:30 committed by GitHub
commit 9551cc5776
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -387,6 +387,39 @@ func ReplayDial(options RTSPClientOptions, startTime string) (*RTSPClient, error
return client, nil return client, nil
} }
func (client *RTSPClient) SeekTime(startTime string, scale float64, endTime string) error {
// Prepare new PLAY request headers
scaleStr := fmt.Sprintf("%.6f", scale)
headers := map[string]string{
"Require": "onvif-replay",
"Scale": scaleStr,
"Range": "clock=" + startTime + "-" + endTime}
// Send the PLAY request with the new scale
err := client.request(PLAY, headers, client.control, false, true)
if err != nil {
client.Println("Failed to Change SEEKTIME", err)
return fmt.Errorf("failed to change speed: %w", err)
}
return nil
}
func (client *RTSPClient) ChangeSpeed(scale float64) error {
// Convert scale to string format
scaleStr := fmt.Sprintf("%.6f", scale)
// Prepare new PLAY request headers
headers := map[string]string{
"Require": "onvif-replay",
"Scale": scaleStr,
"Speed": "1.000000"}
// Send the PLAY request with the new scale
err := client.request(PLAY, headers, client.control, false, true)
if err != nil {
return fmt.Errorf("failed to change speed: %w", err)
}
client.Println("Speed changed to scale:", scale)
return nil
}
func (client *RTSPClient) ControlTrack(track string) string { func (client *RTSPClient) ControlTrack(track string) string {
if strings.Contains(track, "rtsp://") { if strings.Contains(track, "rtsp://") {
return track return track