Skip to content

Commit 066b7a5

Browse files
committed
Simplified tests
1 parent 6f65340 commit 066b7a5

File tree

1 file changed

+52
-12
lines changed

1 file changed

+52
-12
lines changed

decoder_test.go

Lines changed: 52 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,25 @@ func Test_decoder_003(t *testing.T) {
101101
// Decode video frames and resize them
102102
assert := assert.New(t)
103103

104+
// Open the file
104105
manager := NewManager()
105106
media, err := manager.Open("./etc/test/sample.mp4", nil)
106107
if !assert.NoError(err) {
107108
t.SkipNow()
108109
}
109110
defer media.Close()
110111

112+
// Initialize
113+
n := 0
114+
// tmpdir := t.TempDir()
115+
tmpdir, err := os.MkdirTemp("", "media_test")
116+
if !assert.NoError(err) {
117+
t.SkipNow()
118+
}
119+
120+
// Create a decoder which resizes the video frames
111121
decoder, err := media.Decoder(func(stream Stream) (Parameters, error) {
112-
// Make greyscale images
122+
// Rescale the video
113123
if stream.Type() == VIDEO {
114124
return manager.VideoParameters(640, 480, "yuv420p")
115125
}
@@ -120,23 +130,17 @@ func Test_decoder_003(t *testing.T) {
120130
t.SkipNow()
121131
}
122132

123-
// Frame function
124-
n := 0
125-
// tmpdir := t.TempDir()
126-
tmpdir, err := os.MkdirTemp("", "media_test")
127-
if !assert.NoError(err) {
128-
t.SkipNow()
129-
}
133+
// This is the function which processes the frames
130134
framefn := func(frame Frame) error {
131-
if frame.Type() != VIDEO {
132-
return nil
133-
}
135+
// Create an output file
134136
filename := filepath.Join(tmpdir, fmt.Sprintf("frame%03d.jpg", n))
135137
w, err := os.Create(filename)
136138
if err != nil {
137139
return err
138140
}
139141
defer w.Close()
142+
143+
// Decode the frame into an image, save as JPEG
140144
if image, err := frame.Image(); err != nil {
141145
return err
142146
} else if err := jpeg.Encode(w, image, nil); err != nil {
@@ -145,6 +149,7 @@ func Test_decoder_003(t *testing.T) {
145149
t.Logf("Frame %d: %dx%d (%q) => %s", n, frame.Width(), frame.Height(), frame.PixelFormat(), filename)
146150
n++
147151
}
152+
148153
// Stop after 10 frames
149154
if n >= 10 {
150155
return io.EOF
@@ -153,6 +158,41 @@ func Test_decoder_003(t *testing.T) {
153158
}
154159
}
155160

156-
// decode frames from the stream
161+
// Finally, this is where we actually decode frames from the stream
162+
assert.NoError(decoder.Decode(context.Background(), framefn))
163+
}
164+
165+
func Test_decoder_004(t *testing.T) {
166+
// Decode audio frames
167+
assert := assert.New(t)
168+
169+
// Open the file
170+
manager := NewManager()
171+
media, err := manager.Open("./etc/test/sample.mp4", nil)
172+
if !assert.NoError(err) {
173+
t.SkipNow()
174+
}
175+
defer media.Close()
176+
177+
// Create a decoder to decompress the audio
178+
decoder, err := media.Decoder(func(stream Stream) (Parameters, error) {
179+
// Audio - pass through
180+
if stream.Type() == AUDIO {
181+
return stream.Parameters(), nil
182+
}
183+
// Ignore other streams
184+
return nil, nil
185+
})
186+
if !assert.NoError(err) {
187+
t.SkipNow()
188+
}
189+
190+
// This is the function which processes the audio frames
191+
framefn := func(frame Frame) error {
192+
t.Log(frame)
193+
return nil
194+
}
195+
196+
// Finally, this is where we actually decode frames from the stream
157197
assert.NoError(decoder.Decode(context.Background(), framefn))
158198
}

0 commit comments

Comments
 (0)