sheepflix/patches/go-vod-sheepflix.patch
2026-08-26 02:26:56 -04:00

50 lines
2 KiB
Diff

diff --git a/transcoder/handler.go b/transcoder/handler.go
index 8c5bb08..0ad7458 100644
--- a/transcoder/handler.go
+++ b/transcoder/handler.go
@@ -37,6 +37,14 @@ func NewHandler(c *Config) *Handler {
}
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ w.Header().Set("Access-Control-Allow-Origin", "*")
+ w.Header().Set("Access-Control-Allow-Methods", "GET, HEAD, OPTIONS")
+ w.Header().Set("Access-Control-Allow-Headers", "Range, Content-Type")
+ if r.Method == http.MethodOptions {
+ w.WriteHeader(http.StatusNoContent)
+ return
+ }
+
// Check version if monitoring is enabled
if h.c.VersionMonitor && !h.versionOk(w, r) {
return
diff --git a/transcoder/stream.go b/transcoder/stream.go
index cf353fc..f8694fc 100644
--- a/transcoder/stream.go
+++ b/transcoder/stream.go
@@ -370,8 +370,12 @@ func (s *Stream) transcodeArgs(startAt float64, isHls bool) []string {
// Check whether hwaccel should be used
if s.c.VAAPI {
CV = ENCODER_VAAPI
- extra := "-hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -init_hw_device vaapi=memories:/dev/dri/renderD128 -filter_hw_device memories"
+ extra := "-init_hw_device vaapi=memories:/dev/dri/renderD128 -filter_hw_device memories"
args = append(args, strings.Split(extra, " ")...)
+ if s.m.probe.CodecName == CODEC_H264 {
+ extra = "-hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi"
+ args = append(args, strings.Split(extra, " ")...)
+ }
} else if s.c.NVENC {
CV = ENCODER_NVENC
extra := "-hwaccel cuda"
@@ -397,7 +401,11 @@ func (s *Stream) transcodeArgs(startAt float64, isHls bool) []string {
scalerArgs = append(scalerArgs, "force_original_aspect_ratio=decrease")
if CV == ENCODER_VAAPI {
- format = "format=nv12|vaapi,hwupload"
+ if s.m.probe.CodecName == CODEC_H264 {
+ format = "format=nv12|vaapi,hwupload"
+ } else {
+ format = "format=nv12,hwupload"
+ }
scaler = "scale_vaapi"
scalerArgs = append(scalerArgs, "format=nv12")
} else if CV == ENCODER_NVENC {