VideoTools/vendor/github.com/fredbi/uri/default_ports.go
Stu Leak 68df790d27 Fix player frame generation and video playback
Major improvements to UnifiedPlayer:

1. GetFrameImage() now works when paused for responsive UI updates
2. Play() method properly starts FFmpeg process
3. Frame display loop runs continuously for smooth video display
4. Disabled audio temporarily to fix video playback fundamentals
5. Simplified FFmpeg command to focus on video stream only

Player now:
- Generates video frames correctly
- Shows video when paused
- Has responsive progress tracking
- Starts playback properly

Next steps: Re-enable audio playback once video is stable
2026-01-07 22:20:00 -05:00

132 lines
2.5 KiB
Go

package uri
import (
"strconv"
"strings"
)
// IsDefaultPort indicates if the port is specified and is different from
// the defaut port defined for this scheme (if any).
//
// For example, an URI like http://host:8080 would return false, since 80 is the default http port.
func (u uri) IsDefaultPort() bool {
if len(u.authority.port) == 0 {
return true
}
portNum, _ := strconv.ParseUint(u.authority.port, 10, 64)
return defaultPortForScheme(strings.ToLower(u.scheme)) == portNum
}
// DefaultPort returns the default standardized port for the scheme of this URI,
// or zero if no such default is known.
//
// For example, for scheme "https", the default port is 443.
func (u uri) DefaultPort() int {
return int(defaultPortForScheme(strings.ToLower(u.scheme))) //nolint:gosec // uint64 -> int conversion is ok: no port overflows a int
}
// References:
// * https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml
// * https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
//
// Also: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
func defaultPortForScheme(scheme string) uint64 {
//nolint:mnd // no need to define default ports with additional constants
switch scheme {
case "aaa":
return 3868
case "aaas":
return 5658
case "acap":
return 674
case "cap":
return 1026
case "coap", "coap+tcp":
return 5683
case "coaps":
return 5684
case "coap+ws":
return 80
case "coaps+ws":
return 443
case "dict":
return 2628
case "dns":
return 53
case "finger":
return 79
case "ftp":
return 21
case "git":
return 9418
case "go":
return 1096
case "gopher":
return 70
case "http":
return 80
case "https":
return 443
case "iax":
return 4569
case "icap":
return 1344
case "imap":
return 143
case "ipp", "ipps":
return 631
case "irc", "irc6":
return 6667
case "ircs":
return 6697
case "ldap":
return 389
case "mailto":
return 25
case "msrp", "msrps":
return 2855
case "nfs":
return 2049
case "nntp":
return 119
case "ntp":
return 123
case "postgresql":
return 5432
case "radius":
return 1812
case "redis":
return 6379
case "rmi":
return 1098
case "rtsp", "rtsps", "rtspu":
return 554
case "rsync":
return 873
case "sftp":
return 22
case "skype":
return 23399
case "smtp":
return 25
case "snmp":
return 161
case "ssh":
return 22
case "steam":
return 7777
case "svn":
return 3690
case "telnet":
return 23
case "vnc":
return 5500
case "wss":
return 6602
}
return 0
}