Форум 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 часа |