Форум Beholder
http://beholder.ru/bb/

Beholder M6
http://beholder.ru/bb/viewtopic.php?f=11&t=5399
Страница 4 из 4

Автор:  Linux [ 17 фев 2009, 03:22 ]
Заголовок сообщения: 

писал(а):
Указанные линки отдают 404 вместо патчей. Гугление дает ссылки на этот же сайт. Может кто-нибудь поделиться патчем для 60x?

P.S.Behold TV 609 FM на Fedora 10 (2.6.27.12-170.2.5.fc10.x86_64), определилось все, кроме IR. i2c scan пишет в логах:
Код:
kernel: saa7133[0]: i2c scan: found device @ 0x5a  [remote control]

но как input оно не появляется.

С момента когда создавались патчи ситуация существенно изменилась и сейчас сама компания ведет работу по поддержке своих тюнеров в ОС Linux. Поэтому всякая необходимость в дополнительных патчах отпадает.

По поводу пульта читать FAQ первый пост этой темы, последний вопрос-ответ.
http://www.beholder.ru/bb/viewtopic.php?t=7179

Автор:  Dmitry [ 17 фев 2009, 10:11 ]
Заголовок сообщения: 

писал(а):
По поводу пульта читать FAQ первый пост этой темы, последний вопрос-ответ.
http://www.beholder.ru/bb/viewtopic.php?t=7179

Слона то я и не заметил. Большое спаисбо.

Кстати, после прописывания
Код:
options saa7134 secam=DK card=67

т.е. насильное определение карты как 409 FM, в логах появилась строчка:
Код:
kernel: input: saa7134 IR (Beholder BeholdTV 4 as /devices/pci0000:00/0000:00:14.4/0000:03:07.0/input/input6

А в /dev/input появился event6, но ir-kbd-i2c не подгрузился, cat /dev/input/event6 дает мусор, после нажатия кнопок на пульте в коносль постояно валятся нули. В общем, вечером попробую подгрузить ir-kbd-i2c вручную.

Автор:  Dmitry [ 18 фев 2009, 13:59 ]
Заголовок сообщения: 

После предварительной загрузки ir-kbd-i2c все заработало.
Еще раз спасибо.

Автор:  Linux [ 20 фев 2009, 04:58 ]
Заголовок сообщения: 

писал(а):
Кстати, после прописывания
Код:
options saa7134 secam=DK card=67

Так делать нельзя.

1. Автоопределение работает правильно.
2. Эти карты имеют принципиально различные схемы работы пульта, работать ничего не будет.
3. В таком режиме не будет работать кодер MPEG2.

Автор:  Dmitry [ 20 фев 2009, 09:32 ]
Заголовок сообщения: 

Это был "метод научного тыка" :) На самом деле я этот параметр (card=67) убрал, после загрузки ir-kbd-2c карта и все ее девайсы нормально определились автоматически. А MPEG2-кодера на ней вроде как нет, это 609 FM.

Автор:  Linux [ 20 фев 2009, 16:25 ]
Заголовок сообщения: 

Упс, ну да в это модели нет конечно. Тема имеет в своем названии М6 вот и почудилось что речь про нее. В ядре 2.6.28 этот модуль грузить не надо, там все починено.

Автор:  Lion-Simba [ 19 мар 2009, 20:44 ]
Заголовок сообщения: 

писал(а):
3. В таком режиме не будет работать кодер MPEG2.

Так-так-так. А в каком режиме аппаратный MPEG2 будет работать? Он уже поддерживается? Начиная с какого ядра?

Автор:  Linux [ 20 мар 2009, 13:47 ]
Заголовок сообщения: 

Да, кодер MPEG2 поддерживается.
http://www.beholder.ru/bb/viewtopic.php?t=7179 первый вопрос-ответ. Тюнер должен правильно определится автодетектом при загрузке, тогда можно будет программировать MPEG кодер.

Автор:  Lion-Simba [ 21 мар 2009, 18:28 ]
Заголовок сообщения: 

Спасибо. Тюнер определился и с помощью
Код:
cat /dev/video1 > video.mpg

я смог получить сжатый поток MPEG TS приемлимого качества.

Но в виндовой программе я могу менять различные параметры MPEG кодировщика (битрейт, тип потока и т.п.).
Вопрос: могу ли я настраивать MPEG2-кодер в Linux? Как?

Автор:  Linux [ 22 мар 2009, 09:16 ]
Заголовок сообщения: 

Все настройки в драйверах есть. Чтобы менять можно использовать специальную утилиту v4l-ctl которая входит в состав video4linux репозитория, но компилится отдельно. В ней же можно узнать какие параметры можно поставить. Вот пример конфигурирования:

Код:
cat start_mpeg.sh

echo "Set Frequency..."
./v4l2-ctl --set-freq=175.0 -d /dev/video0
echo "Set INPUT Id"
./v4l2-ctl --set-input=2 -d /dev/video0
echo "Set Norm"
./v4l2-ctl -s=secam-d -d /dev/video0
echo "Configure MPEG stream"
echo "Set Bitrate mode"
./v4l2-ctl -c video_bitrate_mode=0 -d /dev/video1
echo "Set audio sampling frequency"
./v4l2-ctl -c audio_sampling_frequency=1 -d /dev/video1
echo "Set audio encoding"
./v4l2-ctl -c audio_encoding_layer=1 -d /dev/video1
echo "Set audio bitrate"
./v4l2-ctl -c audio_layer_ii_bitrate=11 -d /dev/video1
echo "Set video bitrate"
./v4l2-ctl -c video_bitrate=7500000 -d /dev/video1
./v4l2-ctl -c video_peak_bitrate=9500000 -d /dev/video1
echo "Set aspect video"
./v4l2-ctl -c video_aspect=1 -d /dev/video1

cat /dev/video1 > test

Автор:  Lion-Simba [ 22 мар 2009, 16:04 ]
Заголовок сообщения: 

Угу. Спасибо.
v4l2-ctl откопал.

Опробовал и обнаружил несколько багов:
1. Вызов
Код:
v4l2-ctl -d /dev/video1 -l

сбивает настройки к настройкам по умолчанию. Может ваш баг, может баг v4l2-ctl.

2. Вышеприведенный скрипт конфигурирования периодически вываливается с
Код:
cat: /dev/video1: Input/output error

Контекст пока точно установить не могу.

3. Пытаюсь программно использовать Streaming I/O (Memory Mapping). Опрос capabilities через VIDIOC_QUERYCAP показывает, что /dev/video1 поддерживает V4L2_CAP_VIDEO_CAPTURE и V4L2_CAP_STREAMING, то есть может работать в желаемом режиме. Формат V4L2_PIX_FMT_MPEG через VIDIOC_S_FMT также выставляется нормально. Но вот сделать VIDIOC_REQBUFS не удается, все-время возвращается EINVAL: и при V4L2_MEMORY_MMAP и при V4L2_MEMORY_USERPTR.
Поковырялся в ядре, обнаружил, что в функции
Код:
v4l2-ioctl.c: static int __video_do_ioctl(struct file *file, unsigned int cmd, void *arg)

выполняется проверка вида:
Код:
case VIDIOC_REQBUFS:
{
   struct v4l2_requestbuffers *p = arg;

   if (!ops->vidioc_reqbufs)
      break;
   
   ret = check_fmt(ops, p->type);
   if (ret)
      break;
   
   ...

   табличный вызов empress_querybuf()
}

Где check_fmt выглядит так:
Код:
...
switch (type) {
...
   case V4L2_BUF_TYPE_VIDEO_CAPTURE:
      if (ops->vidioc_try_fmt_vid_cap)
         return 0;
      break;
...
}

return -EINVAL;

Но для модуля saa7134_empress не определен табличный метод vidioc_try_fmt_vid_cap! И поэтому check_fmt возвращает -EINVAL, не давая тем самым запросить буферы.

4. Не пойму почему, но аппаратно-кодированная картинка в некоторых местах расплывается ("расквадрачивается") как если бы MPEG-поток был поврежден. Чаще это происходит в местах смены сцен (полное обновление изображения). Что-то не так с обсчетом I-кадров?

5. Все-таки в saa7134_empress.c реализованы далеко не все режимы оцифровки, доступные в BeholdTV. Я бы даже сказал, реализован только один режим - V4L2_MPEG_STREAM_TYPE_MPEG2_TS :) А хочется, например, иметь еще как минимум V4L2_MPEG_STREAM_TYPE_MPEG2_DVD.
Еще было бы неплохо иметь возможность переключать кодер в MONO-режим по звуку, скажем с помощью настройки V4L2_CID_MPEG_AUDIO_MODE.

Версия ядра (Ubuntu 9.04 Alpha):
Код:
simba@simba-desktop:~$ uname -a
Linux simba-desktop 2.6.28-11-generic #36-Ubuntu SMP Fri Mar 20 19:40:40 UTC 2009 i686 GNU/Linux

Автор:  Linux [ 23 мар 2009, 10:47 ]
Заголовок сообщения: 

писал(а):
Опробовал и обнаружил несколько багов:

Очень ценный пост. Спасибо за развернутый тест. Разберёмся.

Страница 4 из 4 Часовой пояс: UTC + 3 часа