试图解决编译错误

This commit is contained in:
Mike Solar
2025-06-18 20:42:45 +08:00
parent 5f9508434f
commit c04fceef9b
13 changed files with 42 additions and 35 deletions
+4 -4
View File
@@ -439,8 +439,8 @@ FootageDescription FFmpegDecoder::Probe(const QString &filename, CancelAtom *can
} else if (avstream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
// Create an audio stream object
AVChannelLayout channel_layout = avstream->codecpar->ch_layout;
if (!channel_layout.nb_channels==0) {
AVChannelLayout &channel_layout = avstream->codecpar->ch_layout;
if (!av_channel_layout_check(&channel_layout)) {
av_channel_layout_default(&channel_layout,avstream->codecpar->ch_layout.nb_channels);
}
@@ -557,10 +557,10 @@ bool FFmpegDecoder::ConformAudioInternal(const QVector<QString> &filenames, cons
return false;
}
// Create resampling context
AVChannelLayout layout=params.channel_layout();
std::shared_ptr<AVChannelLayout> layout=params.channel_layout();
SwrContext* resampler;
swr_alloc_set_opts2(&resampler,
&layout,
layout.get(),
FFmpegUtils::GetFFmpegSampleFormat(params.format()),
params.sample_rate(),
&channel_layout,
+1 -1
View File
@@ -334,7 +334,7 @@ bool FFmpegEncoder::WriteAudioData(const AudioParams &audio_params, const uint8_
int output_sample_count = input_sample_count ? swr_get_out_samples(audio_resample_ctx_, input_sample_count) : 102400;
uint8_t** output_data = nullptr;
int output_linesize;
av_samples_alloc_array_and_samples(&output_data, &output_linesize, audio_stream_->codecpar->channels,
av_samples_alloc_array_and_samples(&output_data, &output_linesize, audio_stream_->codecpar->ch_layout.nb_channels,
output_sample_count, static_cast<AVSampleFormat>(audio_stream_->codecpar->format), 0);
// Perform conversion