From 576a682aea5f9a10aa79df4c9825313fbc4d12fa Mon Sep 17 00:00:00 2001 From: YouROK <8yourok8@mail.ru> Date: Fri, 12 Mar 2021 15:49:48 +0300 Subject: [PATCH] fix for samsung tv --- server/torr/storage/torrstor/piece.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/server/torr/storage/torrstor/piece.go b/server/torr/storage/torrstor/piece.go index 09e95e4..a92daa6 100644 --- a/server/torr/storage/torrstor/piece.go +++ b/server/torr/storage/torrstor/piece.go @@ -3,6 +3,7 @@ package torrstor import ( "errors" "io" + "strings" "sync" "time" @@ -35,6 +36,25 @@ func (p *Piece) WriteAt(b []byte, off int64) (n int, err error) { p.buffer = make([]byte, p.cache.pieceLength, p.cache.pieceLength) } n = copy(p.buffer[off:], b[:]) + //samsung tv fix xvid/divx + if p.Id == 0 && off < 192 { + str := strings.ToLower(string(p.buffer[112:116])) + if str == "xvid" || str == "divx" { + p.buffer[112] = 0x4D //M + p.buffer[113] = 0x50 //P + p.buffer[114] = 0x34 //4 + p.buffer[115] = 0x56 //V + } + str = strings.ToLower(string(p.buffer[188:192])) + if str == "xvid" || str == "divx" { + p.buffer[188] = 0x4D //M + p.buffer[189] = 0x50 //P + p.buffer[190] = 0x34 //4 + p.buffer[191] = 0x56 //V + } + + println(string(p.buffer[110:192])) + } p.Size += int64(n) p.accessed = time.Now().Unix() return