LINUX.ORG.RU

arecord пишет 24bit, а gstreamer нет

 ,


0

1

Привет. Вот тут мы с аноном подключили к Onion Omega2+ через i2s (не путать с i2c) АЦП pcm1808 и я получил худо-бедно звук с подключенных к ЦАП микрофонов. ЦАП выдает 24bit отсчеты с частотой 32000 в два канала. Проблем две:

  • arecord пишет звук нормально первые n минут/секунд после первого вызова. Потом начинает писать белый шум.

  • при этом gstreamer пишет всегда нормально, но только S16LE (не BE), на запрос S24BE/S16BE возвращает streaming stopped, reason not-negotiated (-4), на запрос S24LE пишет шум.

Вопрос только один - как заставить gstreamer писать сырые данные в S24BE/S24LE? Почему не работает arecord меня волнует мало, сообщил для полноты картины.

Запись через arecord:

root@Omega-E194:~# arecord -d 10 -D plughw:0,0 -c 2 -r 32000 -f S24_BE -t raw /mnt/mmcblk0p1/alsa.raw --disable-channels --disable-resample -vvvv
Recording raw data '/mnt/mmcblk0p1/alsa.raw' : Signed 24 bit Big Endian, Rate 32000 Hz, Stereo
Plug PCM: Hardware PCM card 0 'Audio-I2S' device 0 subdevice 0
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : S24_BE
  subformat    : STD
  channels     : 2
  rate         : 32000
  exact rate   : 32000 (32000/1)
  msbits       : 32
  buffer_size  : 16384
  period_size  : 1024
  period_time  : 32000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 1024
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 16384
  silence_threshold: 0
  silence_size : 0
  boundary     : 1073741824
  appl_ptr     : 0
  hw_ptr       : 0

Версии софта

root@Omega-E194:~# arecord --version
arecord: version 1.1.6 by Jaroslav Kysela <perex@perex.cz>
root@Omega-E194:~# gst-launch-1.0 --version
gst-launch-1.0 version 1.12.4

hw caps с альсы

root@Omega-E194:~# arecord -D plughw:0,0 --dump-hw-params
Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "plughw:0,0":
--------------------
ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED MMAP_COMPLEX RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE MU_LAW A_LAW IMA_ADPCM S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE U18_3BE
SUBFORMAT:  STD
SAMPLE_BITS: [4 64]
FRAME_BITS: [4 640000]
CHANNELS: [1 10000]
RATE: [4000 4294967295)
PERIOD_TIME: (2666 256000]
PERIOD_SIZE: (10 1099511628)
PERIOD_BYTES: (5 4294967295)
PERIODS: (0 429496730)
BUFFER_TIME: [1 4294967295]
BUFFER_SIZE: [21 4294967294]
BUFFER_BYTES: [11 4294967295]
TICK_TIME: ALL

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.