Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd4241d0

Browse files
committed
StreamTranscoder: fix output AudioFrameDesc when an encoder is specified
1 parent5e16a85 commitd4241d0

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

‎src/AvTranscoder/transcoder/StreamTranscoder.cpp

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -297,20 +297,28 @@ StreamTranscoder::StreamTranscoder(const std::vector<InputStreamDesc>& inputStre
297297
_filterGraph->addFilter("amerge", mergeOptions.str());
298298
}
299299

300-
AudioCodecaudioCodec(_outputEncoder->getCodec().getCodecType(), _outputEncoder->getCodec().getCodecId());
301-
AudioFrameDescaudioFrameDesc(48000,1,"s32");
302-
audioCodec.setAudioParameters(audioFrameDesc);
300+
AudioFrameDescinputFrameDesc(inputStream.getAudioCodec().getAudioFrameDesc());
303301

304302
// output stream
305-
_outputStream = &outputFile.addAudioStream(audioCodec);
303+
AudioCodecoutputAudioCodec(_outputEncoder->getCodec().getCodecType(), _outputEncoder->getCodec().getCodecId());
304+
AudioFrameDesc outputAudioFrameDesc = outputAudioCodec.getAudioFrameDesc();
305+
if(outputAudioFrameDesc._sampleRate ==0) {
306+
outputAudioFrameDesc._sampleRate = inputFrameDesc._sampleRate;
307+
}
308+
if(outputAudioFrameDesc._sampleFormat == AV_SAMPLE_FMT_NONE) {
309+
outputAudioFrameDesc._sampleFormat = inputFrameDesc._sampleFormat;
310+
}
311+
outputAudioFrameDesc._nbChannels = nbOutputChannels;
312+
outputAudioCodec.setAudioParameters(outputAudioFrameDesc);
313+
314+
_outputStream = &outputFile.addAudioStream(outputAudioCodec);
306315

307316
// buffers to process
308-
AudioFrameDescinputFrameDesc(inputStream.getAudioCodec().getAudioFrameDesc());
309317
if(inputStreamDesc.demultiplexing())
310318
inputFrameDesc._nbChannels = nbOutputChannels;
311319

312320
_filteredData =newAudioFrame(inputFrameDesc);
313-
_transformedData =newAudioFrame(audioFrameDesc);
321+
_transformedData =newAudioFrame(outputAudioFrameDesc);
314322

315323
// transform
316324
_transform =newAudioTransform();

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp