Автор Тема: sound recording from QAudioInput  (Прочитано 6932 раз)

Оффлайн Peter_

  • Участник
  • *
  • Сообщений: 105
sound recording from QAudioInput
« : 17.11.2012 19:03:06 »
Здравствуйте!

Не пишется звук с USB аудио-карты в программе на Qt. Используется
QAudioInput, в точности как в справке, но Qt сообщает, что
назначенный аудио-формат не поддерживается. При этом, если использовать
preferred QAudioFormat для этой карты, всё равно сообщает, что
этот формат не поддерживается и предлагает использовать ближайший,
т.е. его же самого. Это в Alt 6.0 Centaurus, ядро 2.6.32-el-smp-alt-27.

В то же время аудиокарта работает, parecord и paplay звук
записывают и воспроизводят. В Ubuntu 10.10 эта же программа
заработала без проблем.

В чём причина и что делать?

Пётр.
Пётр.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: sound recording from QAudioInput
« Ответ #1 : 17.11.2012 20:19:11 »
А если попробовать обновить систему и поставить дополнительно std-def ядро ?
PS И программу озвучьте тоже, на всякий случай.

Оффлайн Peter_

  • Участник
  • *
  • Сообщений: 105
Re: sound recording from QAudioInput
« Ответ #2 : 17.11.2012 21:44:02 »
А если попробовать обновить систему и поставить дополнительно std-def ядро ?
PS И программу озвучьте тоже, на всякий случай.
Благодарю за внимание, нам важно поскорее решить этот вопрос.

6.0 Centaurus сейчас временно, а вообще должен быть сертифицированный вариант,
так что не знаю, можно ли будет в нём что-либо обновлять.

Я впервые сталкиваюсь с Alt-Linux и, честно говоря, даже не знаю, что такое std-def ядро.
Однако могу сказать, что после замены Ubuntu 10.10 или 11.10 на SimplyLinux
оказлаось, что в нём ядро равномерно распределяет загрузку по ядрам, там запускаются
до четырёх ресурсоёмких потока. А в Ubuntu в основном нагружалось одно ядро из четырёх,
не знаю, м.б. и там надо было установить другое ядро или иначе скомпилировать.

В программе в этой части нет ничего, придуманного мною, просто реализован пример,
взятый из справочной документации по Qt из описания класса QAudioInput.
Звуковая карта - самая простая, один вход и один выход.

Пётр.
Пётр.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: sound recording from QAudioInput
« Ответ #3 : 17.11.2012 21:49:11 »
Насколько я понял, даже с сертифицированным дистрибутивом возможны обновления. Но это отдельная история. По вашему же случаю, думаю, надо спецов по qt поискать (может надо подкрутить где чего, вот тут не подскажу). Опять же это мог быть недочёт в каком-либо из компонентов (при обновлении Кентавра меняется в том числе и qt инструментарий по версии).

Оффлайн Peter_

  • Участник
  • *
  • Сообщений: 105
Re: sound recording from QAudioInput
« Ответ #4 : 17.11.2012 21:58:43 »
Насколько я понял, даже с сертифицированным дистрибутивом возможны обновления. Но это отдельная история. По вашему же случаю, думаю, надо спецов по qt поискать (может надо подкрутить где чего, вот тут не подскажу). Опять же это мог быть недочёт в каком-либо из компонентов (при обновлении Кентавра меняется в том числе и qt инструментарий по версии).
Вполне возможно, что это недочёт в Qt, так что попробую почитать, как делаются обновления.
Мб. и в системе что-то не так, например, в /var/lib/ отсутствует каталог alsa и его приходится
создавать самому.

Пётр.
Пётр.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: sound recording from QAudioInput
« Ответ #5 : 17.11.2012 22:18:44 »
Вполне возможно, что это недочёт в Qt, так что попробую почитать, как делаются обновления.
Мб. и в системе что-то не так, например, в /var/lib/ отсутствует каталог alsa и его приходится
создавать самому.

Пётр.
Может у вас не все компоненты установлены? Попробуйте установить пакет udev-alsa. Судя по выводу rpm -qf /var/lib/alsa это именно этого пакета каталог. Если не устанавливается, то надо получить новый список пакетов и после выполнить само обновление:
su-
apt-get update
apt-get dist-upgrade
Это для начала. Если же нужен этот компонент alsa, то придётся ещё доставить в систему std-def ядро (сейчас у вас el-smp, который в репозиториях не выше версии 2.6.32).
Установить std-def ядро в Кентавр можно такой командой (это после первых двух команд из блока выше):
update-kernel -t std-defЗаглянул сейчас в /var/lib - есть такой каталог (это всё притом, что на пк используется alsa в чистом виде без pulseaudio). Если мне память не изменяет, то этот пакет появился как раз вместе с ядром std-def версии выше, чем 2.6.32 (сейчас в бранче версия ядра 3.0.xy).

Оффлайн Peter_

  • Участник
  • *
  • Сообщений: 105
Re: sound recording from QAudioInput
« Ответ #6 : 17.11.2012 22:31:33 »
Отлично, благодарю за совет. В понедельник попробуем.
Меня несколько удивляет, что система rpm-based, есть rpm и rpminstall,
но в то же время есть apt-get.

Пётр.
Пётр.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: sound recording from QAudioInput
« Ответ #7 : 17.11.2012 22:34:04 »
Меня несколько удивляет, что система rpm-based, есть rpm и rpminstall,
но в то же время есть apt-get.
Да, используется apt-rpm довольно старых версий и со своими патчами. Работает практически аналогично обычному apt из deb-based (Ubuntu, Debian, ...).

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: sound recording from QAudioInput
« Ответ #8 : 18.11.2012 12:03:42 »
6.0 Centaurus сейчас временно, а вообще должен быть сертифицированный вариант,
так что не знаю, можно ли будет в нём что-либо обновлять.
Я впервые сталкиваюсь с Alt-Linux и, честно говоря, даже не знаю, что такое std-def ядро.
Вот вам небольшая справка по наименованиям ядер и их использованию в дистрибутивах с различным назначением (применительно к p6 если брать, то сервер (Кентавр) идёт с el-smp, а все десктопные дистрибутивы с std-def).

Оффлайн Peter_

  • Участник
  • *
  • Сообщений: 105
Re: sound recording from QAudioInput
« Ответ #9 : 18.11.2012 12:54:49 »
Благодарю за ссылку, сейчас посмотрю.
Возможно, нам больше подойдёт std-ng, я савно привык, что alsa входит в ядро.
« Последнее редактирование: 18.11.2012 12:58:06 от Peter_ »
Пётр.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: sound recording from QAudioInput
« Ответ #10 : 18.11.2012 14:41:40 »
Благодарю за ссылку, сейчас посмотрю.
Возможно, нам больше подойдёт std-ng, я савно привык, что alsa входит в ядро.
Судя по всему, на данный момент std-ng в бранче отсутствует (видимо когда-то было такое ядро и оно прописано в вики для истории, как и некоторые другие типы ядер).

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: sound recording from QAudioInput
« Ответ #11 : 18.11.2012 16:24:40 »
Да,и ещё. Проверьте наличие установленного пакета kernel-modules-alsa-el-smprpm -q kernel-modules-alsa-el-smp. Это, пожалуй, даже первое, что нужно проверить для ядра el-smp.

Оффлайн Peter_

  • Участник
  • *
  • Сообщений: 105
Re: sound recording from QAudioInput
« Ответ #12 : 18.11.2012 20:19:29 »
Да,и ещё. Проверьте наличие установленного пакета kernel-modules-alsa-el-smprpm -q kernel-modules-alsa-el-smp. Это, пожалуй, даже первое, что нужно проверить для ядра el-smp.
Ещё раз благодарю за совет, завтра с этого и начну. Хотя что-то из alsa-пакетов
установлено, alsamixer и alsactl есть.
Пётр.

Оффлайн Peter_

  • Участник
  • *
  • Сообщений: 105
Re: sound recording from QAudioInput
« Ответ #13 : 19.11.2012 10:25:07 »
Да,и ещё. Проверьте наличие установленного пакета kernel-modules-alsa-el-smprpm -q kernel-modules-alsa-el-smp. Это, пожалуй, даже первое, что нужно проверить для ядра el-smp.
Оказалось, что этот пакет установлен и вообще установлены все пакеты с диска,
в названии которых есть alsa, кроме пакетов со словом ovz. Также в системе оказалось установленным
ядро 3.0.7-std-def. Я загрузился с этим ядром, но явление осталось - из программы Qt звук не пишется
на диск с тем же сообщением, что аудио-формат не поддерживается.

И ещё не удаётся сделать в меню grub2 ядро 3.0.7 пунктом по умолчанию, хотя я вставил в
/etc/sysconfig/grub2 пункт
GRUB_DEFAULT="этот пункт в меню"
вызывал также grub-set-default <this point in menu>
всё равно в /etc/boot symlink vmlinuz указывает на 2.6.32, так что в меню grub2 ядро 3.0.7
приходится выбирать руками.
Пётр.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: sound recording from QAudioInput
« Ответ #14 : 19.11.2012 10:30:36 »
И ещё не удаётся сделать в меню grub2 ядро 3.0.7 пунктом по умолчанию, хотя я вставил в
/etc/sysconfig/grub2 пункт
GRUB_DEFAULT="этот пункт в меню"
вызывал также grub-set-default <this point in menu>
всё равно в /etc/boot symlink vmlinuz указывает на 2.6.32, так что в меню grub2 ядро 3.0.7
приходится выбирать руками.
Забыли после сделать grub-mkconfig -o /boot/grub/grub.cfg, а вот "вызывал также grub-set-default <this point in menu>" этого не нужно делать.