Skip to content

Commit 249ec9e

Browse files
first commit for audio re-wrapper application
1 parent 5e98944 commit 249ec9e

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

app/SConscript

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,21 @@ avtransform = env.Program(
3333
]
3434
)
3535

36+
audioRewrapper = env.Program(
37+
'audioWrap',
38+
Glob( 'audioRewrapper/*.cpp' ),
39+
LIBS = [
40+
sAvTranscoder,
41+
'avutil',
42+
'avformat',
43+
'avcodec',
44+
'swscale',
45+
]
46+
)
47+
3648
env.Depends( avmeta, sAvTranscoder )
49+
env.Depends( audioRewrapper, sAvTranscoder )
3750

3851
env.Alias( "install", env.Install(os.path.join( installPrefix, "bin" ), avmeta ) )
3952
env.Alias( "install", env.Install(os.path.join( installPrefix, "bin" ), avtransform ) )
53+
env.Alias( "install", env.Install(os.path.join( installPrefix, "bin" ), audioRewrapper ) )

app/audioRewrapper/audioRewrapper.cpp

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#include <iostream>
2+
#include <iomanip>
3+
4+
#include <AvTranscoder/InputFile.hpp>
5+
#include <AvTranscoder/InputStream.hpp>
6+
#include <AvTranscoder/InputStreamAudio.hpp>
7+
8+
#include <AvTranscoder/OutputFile.hpp>
9+
10+
void transcodeAudio( const char* inputfilename, const char* outputFilename )
11+
{
12+
using namespace avtranscoder;
13+
14+
av_log_set_level( AV_LOG_FATAL );
15+
//av_log_set_level( AV_LOG_DEBUG );
16+
17+
InputFile inputFile( inputfilename );
18+
inputFile.analyse();
19+
20+
21+
// init audio decoders
22+
InputStreamAudio inputStreamAudio( inputFile.getStream( 0 ) );
23+
24+
OutputFile outputFile( outputFilename );
25+
26+
outputFile.setup();
27+
28+
29+
AudioDesc audioDesc = inputFile.getStream( 0 ).getAudioDesc();
30+
31+
outputFile.addAudioStream( audioDesc );
32+
33+
AudioFrameDesc audioFrameDesc;
34+
AudioFrame sourceAudio( audioFrameDesc );
35+
36+
DataStreamDesc dataDesc;
37+
DataStream data( dataDesc );
38+
39+
// Encodage/transcodage
40+
std::cout << "start transcoding" << std::endl;
41+
42+
size_t frame = 0;
43+
44+
while( inputFile.getStream( 0 ).readNextPacket( data ) )
45+
{
46+
std::cout << "\rprocess frame " << frame << std::flush;
47+
48+
outputFile.wrap( data, 0 );
49+
50+
++frame;
51+
}
52+
std::cout << std::endl;
53+
54+
}
55+
56+
int main( int argc, char** argv )
57+
{
58+
if( argc <= 2 )
59+
{
60+
std::cout << "audiorewrapper require medias filename" << std::endl;
61+
return( -1 );
62+
}
63+
64+
std::cout << "start ..." << std::endl;
65+
66+
transcodeAudio( argv[1], argv[2] );
67+
68+
std::cout << "end ..." << std::endl;
69+
}

0 commit comments

Comments
 (0)