Skip to content

Commit 0e5eb7c

Browse files
committed
Merge pull request #5 from valnoel/fix_some_audio_process
Fix block_align and audio demux without specified an output profile
2 parents 37e28e3 + 6c3ea36 commit 0e5eb7c

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

src/AvTranscoder/codedStream/AvInputStream.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,6 @@ AvInputStream::AvInputStream( InputFile& inputFile, const size_t streamIndex )
3535
}
3636
case AVMEDIA_TYPE_AUDIO:
3737
{
38-
double outputFps = 25;
39-
size_t bytePerSample = av_get_bytes_per_sample( context->sample_fmt );
40-
41-
context->block_align = 1.0 * context->sample_rate * context->channels * bytePerSample / outputFps;
42-
// std::cout << "channels " << context->channel_layout << std::endl;
43-
// std::cout << "audio buffer read size " << context->block_align << std::endl;
44-
4538
AudioCodec* audioCodec = new AudioCodec( eCodecTypeDecoder, context->codec_id );
4639
audioCodec->setAudioParameters( context->sample_rate, context->channels, context->sample_fmt );
4740

src/AvTranscoder/transcoder/Transcoder.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -393,16 +393,26 @@ void Transcoder::addTranscodeStream( const std::string& filename, const size_t s
393393
// Create profile as input configuration
394394
NoDisplayProgress progress;
395395
referenceFile->analyse( progress, eAnalyseLevelHeader );
396-
AudioProperties audioProperties = referenceFile->getProperties().getAudioProperties().at( streamIndex );
396+
397+
const AudioProperties* audioProperties = NULL;
398+
for( size_t i = 0; i < referenceFile->getProperties().getAudioProperties().size(); i++ )
399+
{
400+
if( referenceFile->getProperties().getAudioProperties().at( i ).getStreamId() == streamIndex )
401+
{
402+
audioProperties = &referenceFile->getProperties().getAudioProperties().at( i );
403+
}
404+
}
405+
if( audioProperties == NULL )
406+
throw std::runtime_error( "cannot set audio stream properties" );
397407

398408
ProfileLoader::Profile profile;
399409
profile[ constants::avProfileIdentificator ] = "presetRewrap";
400410
profile[ constants::avProfileIdentificatorHuman ] = "Preset rewrap";
401411
profile[ constants::avProfileType ] = avtranscoder::constants::avProfileTypeAudio;
402-
profile[ constants::avProfileCodec ] = audioProperties.getCodecName();
403-
profile[ constants::avProfileSampleFormat ] = audioProperties.getSampleFormatName();
412+
profile[ constants::avProfileCodec ] = audioProperties->getCodecName();
413+
profile[ constants::avProfileSampleFormat ] = audioProperties->getSampleFormatName();
404414
std::stringstream ss;
405-
ss << audioProperties.getSampleRate();
415+
ss << audioProperties->getSampleRate();
406416
profile[ constants::avProfileSampleRate ] = ss.str();
407417
profile[ constants::avProfileChannel ] = "1";
408418

0 commit comments

Comments
 (0)