ReadFrames no params validation added

This commit is contained in:
Krzysztofz01 2023-08-28 11:55:43 +02:00
parent cf930a3eae
commit 0677d357e2
2 changed files with 18 additions and 0 deletions

View file

@ -309,6 +309,10 @@ func (video *Video) ReadFrame(n int) error {
// Read the N-amount of frames with the given indexes and return them as a slice of buffers. If one of
// the indexes is out of range, the function will return an error. The frames are indexes from 0.
func (video *Video) ReadFrames(n ...int) ([][]byte, error) {
if len(n) == 0 {
return nil, fmt.Errorf("vidio: no frames indexes specified")
}
for _, nValue := range n {
if nValue >= video.frames {
return nil, fmt.Errorf("vidio: provided frame index %d is not in frame count range", nValue)

View file

@ -341,6 +341,20 @@ func TestReadFrameShouldReturnCorrectFrame(t *testing.T) {
}
}
func TestReadFramesShouldReturnErrorOnNoFramesSpecified(t *testing.T) {
path := "test/koala.mp4"
video, err := NewVideo(path)
if err != nil {
t.Errorf("Failed to create the video: %s", err)
}
_, err = video.ReadFrames()
if err == nil {
t.Error("Error was expected to no be nil")
}
}
func TestReadFramesShouldReturnErrorOnOutOfRangeFrame(t *testing.T) {
path := "test/koala.mp4"