package ffmpeg import ( "encoding/csv" "errors" "io" "log" "os" "strconv" "stream-poc2/model" ) func ReadSegmentsCSV(fname string) ([]model.Slice, error) { log.Println("read csv:", fname) f, err := os.OpenFile(fname, os.O_RDONLY, 0) if err != nil { log.Println("failed to open CSV:", err) return nil, err } defer func(f *os.File) { err := f.Close() if err != nil { log.Println("Failed to close CSV:", err) } }(f) r := csv.NewReader(f) var slices []model.Slice for { var cols []string cols, err = r.Read() if err != nil { if errors.Is(err, io.EOF) { break } log.Println("failed reading csv row", err) return nil, err } var startTime float64 var endTime float64 startTime, err = strconv.ParseFloat(cols[1], 64) if err != nil { log.Println("Failed to parse float", err) return nil, err } endTime, err = strconv.ParseFloat(cols[2], 64) if err != nil { log.Println("Failed to parse float", err) return nil, err } slices = append(slices, model.Slice{ Name: cols[0], StartTime: startTime, EndTime: endTime, }) } return slices, nil }