что такое AV_SAMPLE_FMT_FLT

SwrContext *swr_ctx = swr_alloc_set_opts(NULL,                          
                        AV_CH_LAYOUT_STEREO,
                        AV_SAMPLE_FMT_FLT,
                        sample_rate,
                        pCodecParameters->channel_layout,                                                                               
                  
                        pCodecParameters->format,
                        pCodecParameters->sample_rate,                          
                        0,
                        NULL);

что такое AV_SAMPLE_FMT_FLT? Я уже читал документы, но хочу знать, что такое макет с плавающей запятой в контексте аудио. Как на самом деле двоичные данные аудио будут выглядеть в этом формате.

# ffmpeg
Источник
  • 0
    Это группа C поплавков между -1 и +1 . Я почти уверен, что вы могли бы найти гораздо больше деталей самостоятельно, если бы попробовали. Если вы застряли на какой-то конкретной детали, отредактируйте свой вопрос, чтобы сузить его.
Codelisting
за 0 против

Это означает, что каждая выборка находится в одном буфере, а данные каждой выборки - 32-битные с плавающей запятой. Буфер AFAIK структурирован следующим образом:

[SAMPLE_CH0][SAMPLE_CH1]...[SAMPLE_CHn]
[SAMPLE_CH0][SAMPLE_CH1]...[SAMPLE_CHn]

И так далее. Это повторяется количество "образцов" раз.
Хотя я могу ошибаться, вам нужно проверить это самостоятельно.

  • 0
    Я не видел какой-либо значимой поддержки половинной точности (16-битных) чисел с плавающей запятой ни в одном из текущих компиляторов C. С ними, безусловно, было бы больно работать. Я думаю, что это 32-битные.
  • 0
    да, после некоторых исследований я обнаружил, что его 32-битный, а не 16-битный
  • 0
    32bit должно быть правильным, мое плохое. Поправил на ответ.
Codelisting
Популярные категории
На заметку программисту