Skip to content

Commit e13d9f6

Browse files
Merge branch 'master' of github.com:MarcAntoine-Arnaud/avTranscoder
2 parents be52513 + da88461 commit e13d9f6

40 files changed

+1237
-264
lines changed

app/SConscript

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import os
2+
import platform
23

34
Import( 'AvTranscoder' )
45
Import( 'sAvTranscoder' )
@@ -18,6 +19,7 @@ avinfo = env.Program(
1819
'avformat',
1920
'avcodec',
2021
'swscale',
22+
'swresample',
2123
]
2224
)
2325

@@ -30,6 +32,7 @@ avmeta = env.Program(
3032
'avformat',
3133
'avcodec',
3234
'swscale',
35+
'swresample',
3336
]
3437
)
3538

@@ -42,6 +45,7 @@ avtransform = env.Program(
4245
'avformat',
4346
'avcodec',
4447
'swscale',
48+
'swresample',
4549
]
4650
)
4751

@@ -54,6 +58,7 @@ avprocessor = env.Program(
5458
'avformat',
5559
'avcodec',
5660
'swscale',
61+
'swresample',
5762
],
5863
CXXFLAGS = [
5964
'-std=c++0x'
@@ -69,21 +74,55 @@ audioRewrapper = env.Program(
6974
'avformat',
7075
'avcodec',
7176
'swscale',
77+
'swresample',
78+
'swresample',
7279
]
7380
)
7481

75-
avplayer = env.Program(
76-
'avplayer',
77-
Glob( 'avplay/*.cpp' ),
82+
if platform.system() != 'Windows':
83+
avplayer = env.Program(
84+
'avplayer',
85+
Glob( 'avplay/*.cpp' ),
86+
LIBS = [
87+
sAvTranscoder,
88+
'avutil',
89+
'avformat',
90+
'avcodec',
91+
'swscale',
92+
'swresample',
93+
'GL',
94+
'glut',
95+
]
96+
)
97+
98+
avprofiles = env.Program(
99+
'avprofiles',
100+
Glob( 'presetChecker/*.cpp' ),
101+
LIBS = [
102+
sAvTranscoder,
103+
'avutil',
104+
'avformat',
105+
'avcodec',
106+
'swscale',
107+
'swresample',
108+
],
109+
CXXFLAGS = [
110+
'-std=c++0x'
111+
],
112+
)
113+
114+
avprofiles = env.Program(
115+
'avoptions',
116+
Glob( 'optionChecker/*.cpp' ),
78117
LIBS = [
79118
sAvTranscoder,
80119
'avutil',
81120
'avformat',
82-
'avcodec',
83-
'swscale',
84-
'GL',
85-
'glut',
86-
]
121+
'avcodec'
122+
],
123+
CXXFLAGS = [
124+
'-std=c++0x'
125+
],
87126
)
88127

89128
env.Depends( avmeta, sAvTranscoder )

app/audioRewrapper/audioRewrapper.cpp

Lines changed: 57 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@
22
#include <iomanip>
33

44
#include <AvTranscoder/InputFile.hpp>
5+
#include <AvTranscoder/OutputFile.hpp>
6+
57
#include <AvTranscoder/AvInputStream.hpp>
68
#include <AvTranscoder/InputStreamAudio.hpp>
9+
#include <AvTranscoder/OutputStreamAudio.hpp>
10+
11+
#include <AvTranscoder/AudioTransform.hpp>
12+
713

8-
#include <AvTranscoder/OutputFile.hpp>
914

1015
void rewrapAudio( const char* inputfilename, const char* outputFilename )
1116
{
@@ -21,7 +26,7 @@ void rewrapAudio( const char* inputfilename, const char* outputFilename )
2126

2227
outputFile.setup();
2328

24-
outputFile.addAudioStream( inputFile.getStream( 0 )->getAudioDesc() );
29+
outputFile.addAudioStream( inputFile.getStream( 0 ).getAudioDesc() );
2530

2631
DataStream data;
2732

@@ -30,7 +35,7 @@ void rewrapAudio( const char* inputfilename, const char* outputFilename )
3035

3136
size_t frame = 0;
3237

33-
while( inputFile.getStream( 0 )->readNextPacket( data ) )
38+
while( inputFile.getStream( 0 ).readNextPacket( data ) )
3439
{
3540
std::cout << "\rprocess frame " << (int)frame - 1 << std::flush;
3641

@@ -51,35 +56,66 @@ void transcodeAudio( const char* inputfilename, const char* outputFilename )
5156
InputFile inputFile( inputfilename );
5257
inputFile.analyse();
5358

54-
// init audio decoders
55-
InputStreamAudio inputStreamAudio( inputFile.getStream( 0 ) );
56-
5759
OutputFile outputFile( outputFilename );
58-
5960
outputFile.setup();
60-
61-
outputFile.addAudioStream( inputFile.getStream( 0 )->getAudioDesc() );
62-
63-
DataStream data;
64-
65-
// Transcoding
61+
62+
// init audio decoders
63+
InputStreamAudio inputStreamAudio( inputFile.getStream( 0 ) );
64+
inputFile.getStream( 0 ).setBufferred( true );
65+
66+
// init audio encoders
67+
OutputStreamAudio outputStreamAudio;
68+
AudioDesc& audioOutputDesc = outputStreamAudio.getAudioDesc();
69+
audioOutputDesc.setAudioCodec( "pcm_s24le" );
70+
audioOutputDesc.setAudioParameters(
71+
inputFile.getStream( 0 ).getAudioDesc().getSampleRate(),
72+
inputFile.getStream( 0 ).getAudioDesc().getChannels(),
73+
AV_SAMPLE_FMT_S32//,inputFile.getStream( 0 ).getAudioDesc().getSampleFormat()
74+
);
75+
76+
if( ! outputStreamAudio.setup( ) )
77+
{
78+
throw std::runtime_error( "error during initialising audio output stream" );
79+
}
80+
81+
outputFile.addAudioStream( audioOutputDesc );
82+
outputFile.beginWrap();
83+
84+
// init convert
85+
AudioTransform audioTransform;
86+
87+
DataStream codedFrame;
88+
89+
// start transcoding process
6690
std::cout << "start transcoding" << std::endl;
67-
91+
92+
AudioFrame audioFrameSource( inputFile.getStream( 0 ).getAudioDesc().getFrameDesc() );
93+
AudioFrame audioFrameToEncode( audioOutputDesc.getFrameDesc() );
94+
6895
size_t frame = 0;
69-
AudioFrameDesc audioFrameDesc;
70-
71-
AudioFrame audioFrame( audioFrameDesc );
72-
73-
74-
while( inputStreamAudio.readNextFrame( audioFrame ) )
96+
while( inputStreamAudio.readNextFrame( audioFrameSource ) )
7597
{
7698
std::cout << "\rprocess frame " << (int)frame - 1 << std::flush;
7799

78-
// outputFile.wrap( data, 0 );
100+
audioTransform.convert( audioFrameSource, audioFrameToEncode );
101+
102+
outputStreamAudio.encodeFrame( audioFrameToEncode, codedFrame );
103+
104+
outputFile.wrap( codedFrame, 0 );
79105

80106
++frame;
107+
// if you want to stop the transcoding process (after 10s at 48,1 KHz)
108+
// if(frame == 10*48100)
109+
// break;
81110
}
82111
std::cout << std::endl;
112+
113+
outputStreamAudio.encodeFrame( codedFrame );
114+
outputFile.wrap( codedFrame, 0 );
115+
116+
// end of transcoding process
117+
118+
outputFile.endWrap();
83119
}
84120

85121
int main( int argc, char** argv )

app/avInfo/avInfo.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
#include <iostream>
2-
#include <iomanip>
32

43
#include <AvTranscoder/Description.hpp>
54

65
int main( int argc, char** argv )
76
{
87
// std::cout << "avinfo" << std::endl;
9-
std::vector<std::string> inputExtension = getInputExtensions();
10-
std::vector<std::string> outputExtension = getOutputExtensions();
8+
std::vector<std::string> inputExtension = avtranscoder::getInputExtensions();
9+
std::vector<std::string> outputExtension = avtranscoder::getOutputExtensions();
10+
11+
std::cout << "----- inputExtension -----" << std::endl;
12+
std::cout << "nb inputExtension: " << inputExtension.size() << std::endl;
13+
for( std::vector<std::string>::iterator it = inputExtension.begin(); it != inputExtension.end(); ++it )
14+
std::cout << *it << std::endl;
15+
16+
std::cout << "----- outputExtension -----" << std::endl;
17+
std::cout << "nb outputExtension: " << outputExtension.size() << std::endl;
18+
for( std::vector<std::string>::iterator it = outputExtension.begin(); it != outputExtension.end(); ++it )
19+
std::cout << *it << std::endl;
20+
1121
return 0;
1222
}

0 commit comments

Comments
 (0)