testing
This commit is contained in:
		| @@ -11,7 +11,6 @@ import ( | ||||
| 	"github.com/deepch/vdk/codec/h264parser" | ||||
| 	"github.com/deepch/vdk/format/mp4" | ||||
| 	"github.com/google/uuid" | ||||
| 	"github.com/moby/sys/mountinfo" | ||||
| 	"github.com/shirou/gopsutil/v3/disk" | ||||
| 	"os" | ||||
| 	"path/filepath" | ||||
| @@ -48,6 +47,7 @@ type Muxer struct { | ||||
| 	pstart, pend                                                                time.Duration | ||||
| 	started                                                                     bool | ||||
| 	serverID, streamName, channelName, streamID, channelID, hostLong, hostShort string | ||||
| 	handleFileChange                                                            func(string, string, int64, time.Time, time.Time, time.Duration) | ||||
| } | ||||
|  | ||||
| type Gof struct { | ||||
| @@ -75,7 +75,7 @@ func init() { | ||||
|  | ||||
| } | ||||
|  | ||||
| func NewMuxer(serverID, streamName, channelName, streamID, channelID string, mpoint []string, patch, format string, limit int) (m *Muxer, err error) { | ||||
| func NewMuxer(serverID, streamName, channelName, streamID, channelID string, mpoint []string, patch, format string, limit int, c func(string, string, int64, time.Time, time.Time, time.Duration)) (m *Muxer, err error) { | ||||
| 	hostLong, _ := os.Hostname() | ||||
| 	var hostShort string | ||||
| 	if p, _, ok := strings.Cut(hostLong, "."); ok { | ||||
| @@ -95,6 +95,7 @@ func NewMuxer(serverID, streamName, channelName, streamID, channelID string, mpo | ||||
| 		channelID:        channelID, | ||||
| 		hostLong:         hostLong, | ||||
| 		hostShort:        hostShort, | ||||
| 		handleFileChange: c, | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| @@ -236,14 +237,14 @@ func (m *Muxer) filePatch() (string, error) { | ||||
| 	) | ||||
|  | ||||
| 	for i, i2 := range m.mpoint { | ||||
| 		if m, err := mountinfo.Mounted(i2); err == nil && m { | ||||
| 		//if m, err := mountinfo.Mounted(i2); err == nil && m { | ||||
| 		if d, err := disk.Usage(i2); err == nil { | ||||
| 			if d.UsedPercent < mu { | ||||
| 				ui = i | ||||
| 				mu = d.UsedPercent | ||||
| 			} | ||||
| 		} | ||||
| 		} | ||||
| 		//	} | ||||
| 	} | ||||
|  | ||||
| 	if ui == -1 { | ||||
| @@ -325,6 +326,15 @@ func (m *Muxer) filePatch() (string, error) { | ||||
| 	return ts, nil | ||||
| } | ||||
|  | ||||
| func (m *Muxer) Codecs() string { | ||||
| 	var codecs []string | ||||
| 	for _, stream := range m.gof.Streams { | ||||
| 		codecs = append(codecs, stream.Type().String()) | ||||
| 	} | ||||
|  | ||||
| 	return strings.Join(codecs, ",") | ||||
| } | ||||
|  | ||||
| func (m *Muxer) WriteTrailer() (err error) { | ||||
| 	if m.muxer != nil { | ||||
| 		m.muxer.WriteTrailer() | ||||
| @@ -341,6 +351,18 @@ func (m *Muxer) WriteTrailer() (err error) { | ||||
| 			if err = os.Rename(m.d.Name(), filepath.Join(filepath.Dir(m.d.Name()), filepath.Base(p))); err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| 			var size int64 | ||||
| 			if fi, err := m.d.Stat(); err == nil { | ||||
| 				size = fi.Size() | ||||
| 			} | ||||
| 			m.handleFileChange( | ||||
| 				m.Codecs(), | ||||
| 				filepath.Join(filepath.Dir(m.d.Name()), filepath.Base(p)), | ||||
| 				size, | ||||
| 				m.start, | ||||
| 				m.end, | ||||
| 				m.dur, | ||||
| 			) | ||||
| 		} | ||||
| 		err = m.d.Close() | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 deepch
					deepch