-
Notifications
You must be signed in to change notification settings - Fork 50
Expand file tree
/
Copy pathtestTranscoderAdd.py
More file actions
146 lines (112 loc) · 4.71 KB
/
Copy pathtestTranscoderAdd.py
File metadata and controls
146 lines (112 loc) · 4.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
import os
# Check if environment is setup to run the tests
if os.environ.get('AVTRANSCODER_TEST_AUDIO_WAVE_FILE') is None or \
os.environ.get('AVTRANSCODER_TEST_AUDIO_MOV_FILE') is None:
from nose.plugins.skip import SkipTest
raise SkipTest("Need to define environment variables "
"AVTRANSCODER_TEST_AUDIO_WAVE_FILE and "
"AVTRANSCODER_TEST_AUDIO_MOV_FILE")
from nose.tools import *
from pyAvTranscoder import avtranscoder as av
def testAddStreamTranscoder():
"""
Add a streamTranscoder to the Transcoder, and process rewrap of an audio stream.
"""
# input
inputFile = av.InputFile( os.environ['AVTRANSCODER_TEST_AUDIO_WAVE_FILE'] )
inputIndex = 0
inputFile.activateStream( inputIndex )
# output
outputFileName = "testAddStreamTranscoder.avi"
ouputFile = av.OutputFile( outputFileName )
streamTranscoder = av.StreamTranscoder( inputFile.getStream( inputIndex ), ouputFile )
transcoder = av.Transcoder( ouputFile )
transcoder.addStream( streamTranscoder)
# process
transcoder.process()
@raises(IOError)
def testAddAStreamFromAFileWhichDoesNotExist():
"""
Add all streams from a given file.
"""
# input
inputFileName = "fileWhichDoesNotExist.mov"
# output
outputFileName = "testAddAStreamFromAFileWhichDoesNotExist.mov"
ouputFile = av.OutputFile( outputFileName )
transcoder = av.Transcoder( ouputFile )
transcoder.addStream( av.InputStreamDesc(inputFileName) )
# process
transcoder.process()
@raises(RuntimeError)
def testEmptyListOfInputs():
"""
Add an empty list of inputs.
"""
# inputs
inputs = av.InputStreamDescVector()
# output
outputFileName = "testEmptyListOfInputs.mov"
ouputFile = av.OutputFile(outputFileName)
transcoder = av.Transcoder(ouputFile)
transcoder.addStream(inputs)
@raises(RuntimeError)
def testAddOneChannelWhichDoesNotExist():
"""
Extract one audio channel from an input stream.
"""
inputFileName = os.environ['AVTRANSCODER_TEST_AUDIO_WAVE_FILE']
outputFileName = "testAddOneChannelWhichDoesNotExist.wav"
ouputFile = av.OutputFile(outputFileName)
transcoder = av.Transcoder(ouputFile)
inputFile = av.InputFile(inputFileName)
src_audioStream = inputFile.getProperties().getAudioProperties()[0]
audioStreamIndex = src_audioStream.getStreamIndex()
transcoder.addStream(av.InputStreamDesc(inputFileName, audioStreamIndex, 15))
transcoder.process()
@raises(RuntimeError)
def testAllSeveralInputsWithDifferentType():
"""
Add one video and one audio to create one output stream.
"""
# inputs
inputs = av.InputStreamDescVector()
inputs.append(av.InputStreamDesc(os.environ['AVTRANSCODER_TEST_AUDIO_MOV_FILE'], 0))
inputs.append(av.InputStreamDesc(os.environ['AVTRANSCODER_TEST_AUDIO_WAVE_FILE'], 0))
# output
outputFileName = "testAllSeveralInputsWithDifferentType.mov"
ouputFile = av.OutputFile(outputFileName)
transcoder = av.Transcoder(ouputFile)
transcoder.addStream(inputs)
def testAddSeveralInputsToCreateOneOutput():
"""
Add several audio inputs and create one output stream.
"""
# inputs
inputs = av.InputStreamDescVector()
inputFileName = os.environ['AVTRANSCODER_TEST_AUDIO_WAVE_FILE']
inputFile = av.InputFile(inputFileName)
src_audioStream = inputFile.getProperties().getAudioProperties()[0]
src_audioStreamIndex = src_audioStream.getStreamIndex()
inputs.append(av.InputStreamDesc(inputFileName, src_audioStreamIndex, (0,1)))
inputs.append(av.InputStreamDesc(inputFileName, src_audioStreamIndex, (2,3)))
inputs.append(av.InputStreamDesc(inputFileName, src_audioStreamIndex, (4,5)))
# output
outputFileName = "testAddSeveralInputsToCreateOneOutput.mov"
ouputFile = av.OutputFile(outputFileName)
transcoder = av.Transcoder(ouputFile)
transcoder.addStream(inputs)
# process
processStat = transcoder.process()
# check process stat returned
audioStat = processStat.getAudioStat(0)
assert_equals(src_audioStream.getDuration(), audioStat.getDuration())
# get dst file of transcode
dst_inputFile = av.InputFile(outputFileName)
dst_properties = dst_inputFile.getProperties()
dst_audioStream = dst_properties.getAudioProperties()[0]
assert_equals( src_audioStream.getCodecName(), dst_audioStream.getCodecName() )
assert_equals( src_audioStream.getSampleFormatName(), dst_audioStream.getSampleFormatName() )
assert_equals( src_audioStream.getSampleFormatLongName(), dst_audioStream.getSampleFormatLongName() )
assert_equals( src_audioStream.getSampleRate(), dst_audioStream.getSampleRate() )
assert_equals( src_audioStream.getNbChannels(), dst_audioStream.getNbChannels() )