@@ -107,7 +107,8 @@ bool AudioDecoder::decodeNextFrame( Frame& frameBuffer )
107
107
108
108
AVCodecContext& avCodecContext = _inputStream->getAudioCodec ().getAVCodecContext ();
109
109
110
- size_t decodedSize = av_samples_get_buffer_size ( NULL , avCodecContext.channels , _frame->nb_samples , avCodecContext.sample_fmt , 1 );
110
+ const int noAlignment = 1 ;
111
+ const size_t decodedSize = av_samples_get_buffer_size ( NULL , avCodecContext.channels , _frame->nb_samples , avCodecContext.sample_fmt , noAlignment );
111
112
if ( decodedSize == 0 )
112
113
return false ;
113
114
@@ -130,22 +131,20 @@ bool AudioDecoder::decodeNextFrame( Frame& frameBuffer, const size_t channelInde
130
131
return false ;
131
132
132
133
AVCodecContext& avCodecContext = _inputStream->getAudioCodec ().getAVCodecContext ();
134
+ const size_t srcNbChannels = avCodecContext.channels ;
135
+ const size_t bytePerSample = av_get_bytes_per_sample ( (AVSampleFormat)_frame->format );
133
136
134
- const int output_nbChannels = 1 ;
135
- const int output_align = 1 ;
136
- size_t decodedSize = av_samples_get_buffer_size (NULL , output_nbChannels, _frame->nb_samples , avCodecContext.sample_fmt , output_align);
137
-
138
- size_t nbSubStreams = avCodecContext.channels ;
139
- size_t bytePerSample = av_get_bytes_per_sample ( (AVSampleFormat)_frame->format );
137
+ const int dstNbChannels = 1 ;
138
+ const int noAlignment = 1 ;
139
+ const size_t decodedSize = av_samples_get_buffer_size (NULL , dstNbChannels, _frame->nb_samples , avCodecContext.sample_fmt , noAlignment);
140
+ if ( decodedSize == 0 )
141
+ return false ;
140
142
141
- if ( channelIndex > nbSubStreams - 1 )
143
+ if ( channelIndex > srcNbChannels - 1 )
142
144
{
143
145
throw std::runtime_error ( " The subStream doesn't exist" );
144
146
}
145
147
146
- if ( decodedSize == 0 )
147
- return false ;
148
-
149
148
AudioFrame& audioBuffer = static_cast <AudioFrame&>( frameBuffer );
150
149
audioBuffer.setNbSamples ( _frame->nb_samples );
151
150
audioBuffer.resize ( decodedSize );
@@ -161,7 +160,7 @@ bool AudioDecoder::decodeNextFrame( Frame& frameBuffer, const size_t channelInde
161
160
{
162
161
memcpy ( dst, src, bytePerSample );
163
162
dst += bytePerSample;
164
- src += bytePerSample * nbSubStreams ;
163
+ src += bytePerSample * srcNbChannels ;
165
164
}
166
165
167
166
return true ;
0 commit comments