Skip to content

Commit 5cd30bc

Browse files
author
Clement Champetier
committed
pyTest: split reader tests to testVideo/AudioReader.py
1 parent 4f56f1a commit 5cd30bc

File tree

2 files changed

+67
-60
lines changed

2 files changed

+67
-60
lines changed

test/pyTest/testAudioReader.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import os
2+
3+
# Check if environment is setup to run the tests
4+
if os.environ.get('AVTRANSCODER_TEST_AUDIO_WAVE_FILE') is None:
5+
from nose.plugins.skip import SkipTest
6+
raise SkipTest("Need to define environment variables AVTRANSCODER_TEST_AUDIO_WAVE_FILE")
7+
8+
from nose.tools import *
9+
10+
from pyAvTranscoder import avtranscoder as av
11+
12+
13+
def testAudioReaderChannelsExtraction():
14+
"""
15+
Read the same audio stream with several AudioReaders.
16+
Compare decoded frames from reader of all channels, and of one channel.
17+
"""
18+
inputFileName = os.environ['AVTRANSCODER_TEST_AUDIO_WAVE_FILE']
19+
inputFile = av.InputFile(inputFileName)
20+
streamIndex = inputFile.getProperties().getAudioProperties()[0].getStreamIndex()
21+
channelIndex = 0
22+
23+
# create reader to read all channels of the audio stream
24+
readerOfAllChannels = av.AudioReader(inputFile, streamIndex)
25+
nbChannels = readerOfAllChannels.getOutputNbChannels()
26+
# read first frame
27+
frame = readerOfAllChannels.readNextFrame()
28+
sizeOfFrameWithAllChannels = frame.getSize()
29+
30+
# create reader to read one channel of the audio stream
31+
readerOfOneChannel = av.AudioReader(inputFile, streamIndex, channelIndex)
32+
# read first frame
33+
frame = readerOfOneChannel.readNextFrame()
34+
sizeOfFrameWithOneChannels = frame.getSize()
35+
36+
assert_equals( sizeOfFrameWithAllChannels / nbChannels, sizeOfFrameWithOneChannels )
37+
38+
39+
def testAudioReaderWithGenerator():
40+
"""
41+
Read an audio stream with the AudioReader.
42+
When there is no more data to decode, switch to a generator and process some frames.
43+
"""
44+
inputFileName = os.environ['AVTRANSCODER_TEST_AUDIO_WAVE_FILE']
45+
inputFile = av.InputFile(inputFileName)
46+
reader = av.AudioReader(inputFile)
47+
48+
# read all frames and check their size
49+
while True:
50+
frame = reader.readNextFrame()
51+
if not frame:
52+
break
53+
assert_greater(frame.getSize(), 0)
54+
55+
# check if there is no next frame
56+
assert_equals( reader.readNextFrame(), None )
57+
58+
# generate 10 frames of silence
59+
reader.continueWithGenerator()
60+
for i in xrange(0, 9):
61+
frame = reader.readNextFrame()
62+
# assuming we generate data of 1920 samples of 2 bytes
63+
nbSamplesPerChannel = 1920
64+
bytesPerSample = 2
65+
assert_equals(frame.getSize(), reader.getOutputNbChannels() * nbSamplesPerChannel * bytesPerSample )
Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
import os
22

33
# Check if environment is setup to run the tests
4-
if os.environ.get('AVTRANSCODER_TEST_VIDEO_AVI_FILE') is None or \
5-
os.environ.get('AVTRANSCODER_TEST_AUDIO_WAVE_FILE') is None:
4+
if os.environ.get('AVTRANSCODER_TEST_VIDEO_AVI_FILE') is None:
65
from nose.plugins.skip import SkipTest
7-
raise SkipTest("Need to define environment variables "
8-
"AVTRANSCODER_TEST_VIDEO_AVI_FILE and "
9-
"AVTRANSCODER_TEST_AUDIO_WAVE_FILE")
6+
raise SkipTest("Need to define environment variables AVTRANSCODER_TEST_VIDEO_AVI_FILE")
107

118
from nose.tools import *
129

@@ -51,32 +48,6 @@ def testVideoReaderReferenceInputFile():
5148
assert_equals( reader.readNextFrame(), None )
5249

5350

54-
def testAudioReaderChannelsExtraction():
55-
"""
56-
Read the same audio stream with several AudioReaders.
57-
Compare decoded frames from reader of all channels, and of one channel.
58-
"""
59-
inputFileName = os.environ['AVTRANSCODER_TEST_AUDIO_WAVE_FILE']
60-
inputFile = av.InputFile(inputFileName)
61-
streamIndex = inputFile.getProperties().getAudioProperties()[0].getStreamIndex()
62-
channelIndex = 0
63-
64-
# create reader to read all channels of the audio stream
65-
readerOfAllChannels = av.AudioReader(inputFile, streamIndex)
66-
nbChannels = readerOfAllChannels.getOutputNbChannels()
67-
# read first frame
68-
frame = readerOfAllChannels.readNextFrame()
69-
sizeOfFrameWithAllChannels = frame.getSize()
70-
71-
# create reader to read one channel of the audio stream
72-
readerOfOneChannel = av.AudioReader(inputFile, streamIndex, channelIndex)
73-
# read first frame
74-
frame = readerOfOneChannel.readNextFrame()
75-
sizeOfFrameWithOneChannels = frame.getSize()
76-
77-
assert_equals( sizeOfFrameWithAllChannels / nbChannels, sizeOfFrameWithOneChannels )
78-
79-
8051
def testVideoReaderWithGenerator():
8152
"""
8253
Read a video stream with the VideoReader.
@@ -100,32 +71,3 @@ def testVideoReaderWithGenerator():
10071
frame = reader.readNextFrame()
10172
bytesPerPixel = reader.getOutputBitDepth() / 8
10273
assert_equals( frame.getSize(), reader.getOutputWidth() * reader.getOutputHeight() * bytesPerPixel )
103-
104-
105-
def testAudioReaderWithGenerator():
106-
"""
107-
Read an audio stream with the AudioReader.
108-
When there is no more data to decode, switch to a generator and process some frames.
109-
"""
110-
inputFileName = os.environ['AVTRANSCODER_TEST_AUDIO_WAVE_FILE']
111-
inputFile = av.InputFile(inputFileName)
112-
reader = av.AudioReader(inputFile)
113-
114-
# read all frames and check their size
115-
while True:
116-
frame = reader.readNextFrame()
117-
if not frame:
118-
break
119-
assert_greater(frame.getSize(), 0)
120-
121-
# check if there is no next frame
122-
assert_equals( reader.readNextFrame(), None )
123-
124-
# generate 10 frames of silence
125-
reader.continueWithGenerator()
126-
for i in xrange(0, 9):
127-
frame = reader.readNextFrame()
128-
# assuming we generate data of 1920 samples of 2 bytes
129-
nbSamplesPerChannel = 1920
130-
bytesPerSample = 2
131-
assert_equals(frame.getSize(), reader.getOutputNbChannels() * nbSamplesPerChannel * bytesPerSample )

0 commit comments

Comments
 (0)