Skip to content

Commit dfdeca4

Browse files
author
Clement Champetier
committed
StreamTranscoder: set outputAudioFrameDesc with setParameters
* If a subStream is selected, set channels of the frameDesc used to instanciate _sourceBuffer. * Add todo.
1 parent 531481d commit dfdeca4

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

src/AvTranscoder/EssenceStream/OutputAudio.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ extern "C" {
1111

1212
#include <iostream>
1313
#include <stdexcept>
14-
#include <cstdlib>
1514

1615
namespace avtranscoder
1716
{
@@ -186,10 +185,8 @@ void OutputAudio::setProfile( const Profile::ProfileDesc& desc, const AudioFrame
186185

187186
_audioDesc.setCodec( desc.find( Profile::avProfileCodec )->second );
188187

189-
size_t sample_rate = std::strtoul( desc.find( Profile::avProfileSampleRate )->second.c_str(), NULL, 0 );
190-
size_t channels = std::strtoul( desc.find( Profile::avProfileChannel )->second.c_str(), NULL, 0 );
191-
_audioDesc.setAudioParameters( sample_rate, channels, av_get_sample_fmt( desc.find( Profile::avProfileSampleFormat )->second.c_str() ) );
192-
188+
_audioDesc.setAudioParameters( frameDesc );
189+
193190
for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
194191
{
195192
if( (*it).first == Profile::avProfileIdentificator ||

src/AvTranscoder/Transcoder/StreamTranscoder.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,16 +102,23 @@ StreamTranscoder::StreamTranscoder(
102102
OutputAudio* outputAudio = new OutputAudio();
103103

104104
_outputEssence = outputAudio;
105-
AudioFrameDesc audioFrameDesc( _inputStream->getAudioDesc().getFrameDesc() );
106105

106+
AudioFrameDesc outputFrameDesc( _inputStream->getAudioDesc().getFrameDesc() );
107+
outputFrameDesc.setParameters( profile );
107108
if( subStreamIndex > -1 )
108-
audioFrameDesc.setChannels( 1 );
109-
110-
outputAudio->setProfile( profile, audioFrameDesc );
109+
{
110+
// @todo manage downmix ?
111+
outputFrameDesc.setChannels( 1 );
112+
}
113+
outputAudio->setProfile( profile, outputFrameDesc );
111114

112115
_outputStream = &outputFile.addAudioStream( outputAudio->getAudioDesc() );
113116

114-
_sourceBuffer = new AudioFrame( audioFrameDesc );
117+
AudioFrameDesc inputFrameDesc( _inputStream->getAudioDesc().getFrameDesc() );
118+
if( subStreamIndex > -1 )
119+
inputFrameDesc.setChannels( 1 );
120+
121+
_sourceBuffer = new AudioFrame( inputFrameDesc );
115122
_frameBuffer = new AudioFrame( outputAudio->getAudioDesc().getFrameDesc() );
116123

117124
_transform = new AudioEssenceTransform();

0 commit comments

Comments
 (0)