SDL_Mixer и FFmpegC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 SDL_Mixer и FFmpeg

Сообщение Anonymous »

У меня есть следующий код ffmpeg:

Код: Выделить всё

AVPacket packet;
AVFrame* frame = av_frame_alloc();
std::vector pcm_buffer;
uint8_t* resampled_data;
int out_samples = 0;

while (av_read_frame(format_ctx, &packet) >= 0) {
if (packet.stream_index == audio_stream_index) {
if (avcodec_send_packet(codec_ctx, &packet) >= 0) {
while (avcodec_receive_frame(codec_ctx, frame) >= 0) {
out_samples = swr_get_out_samples(swr_ctx, frame->nb_samples);
av_samples_alloc(&resampled_data, nullptr, 2, out_samples, AV_SAMPLE_FMT_S16, 0);

int converted_samples = swr_convert(swr_ctx, &resampled_data, out_samples, (const uint8_t**)frame->data, frame->nb_samples);

int buffer_size = av_samples_get_buffer_size(nullptr, 2, converted_samples, AV_SAMPLE_FMT_S16, 0);
pcm_buffer.insert(pcm_buffer.end(), resampled_data, resampled_data + buffer_size);
av_freep(&resampled_data);
}
}
}
av_packet_unref(&packet);
}
А для воспроизведения звука у меня есть этот код:

Код: Выделить всё

int main(int argc, char* argv[]) {
if (SDL_Init(SDL_INIT_AUDIO) < 0) {
std::cerr 

Подробнее здесь: [url]https://stackoverflow.com/questions/79831314/sdl-mixer-and-ffmpeg[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»