Автор Тема: Цифровое телевидение ( Digital TV )  (Прочитано 8487 раз)

Оффлайн vl-nix

  • Давно тут
  • **
  • Сообщений: 30
    • Email
Gtv-Dvb  1.1 stable
Digital TV player ( DVB-T2/S2/C, ATSC, DTMB )

Графический интерфейс: Gtk+3
Аудио & Видео & Цифровое ТВ: Gstreamer 1.0

Лицензия: GNU LESSER GENERAL PUBLIC LICENSE

Исходный код:
    Github  Gtv-Dvb

Зависимости ( depends ):
   gcc, gtk+3, gstreamer, gst-plugins-base, gst-plugins-good, gst-plugins-ugly, gst-plugins-bad, gst-libav

Каналы ( channels ):
   1. Сканировать каналы вручную ( Ctrl + U ).
   2. Конвертировать файл - dvb_channel.conf ( формат DVBv5 ).

   dvb_channel.conf - создается командой: dvbv5-scan [OPTION...] <initial file>

« Последнее редактирование: 02.04.2018 13:31:15 от vl-nix »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Цифровое телевидение ( Digital TV )
« Ответ #1 : 04.11.2017 15:55:47 »
Класс. Надо опакетить. А не подскажете какую плату DVB-T2 купить, чтоб из коробки завелась в Линуксе?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Цифровое телевидение ( Digital TV )
« Ответ #2 : 05.11.2017 07:33:27 »
А можете на github выложить? URL в спеке желательно указать.

Спек для сборки на Альт:
Name: gtv
Version: 0.0
Release: alt1

Summary: DVB-T/T2/S/S2/C player

License: LGPLv2
Group: Video
#Url:

Source: %name-%version.tar
BuildRequires: pkgconfig(gtk+-3.0) pkgconfig(gstreamer-1.0) pkgconfig(gstreamer-plugins-base-1.0) pkgconfig(gstreamer-plugins-bad-1.0)
Requires: v4l-utils

%description
DVB-T/T2/S/S2/C player

%prep
%setup

%build
gcc -Wall gtv.c -o gtv `pkg-config gtk+-3.0 --cflags --libs` `pkg-config gstreamer-video-1.0 --cflags --libs`

%install
mkdir -p %buildroot%_bindir
install -m755 gtv %buildroot%_bindir/gtv

%files
%_bindir/gtv
%doc Readme

%changelog

Оффлайн vl-nix

  • Давно тут
  • **
  • Сообщений: 30
    • Email
Re: Цифровое телевидение ( Digital TV )
« Ответ #3 : 06.11.2017 17:13:13 »
... не подскажете какую плату DVB-T2 купить ...

Непростой вопрос.
Видимо нужно убедиться, что карта поддерживается в линукс.
И посмотреть есть ли драйвера для линукс... ну вот... как-то так...

Спек для сборки на Альт:

За файл спек большое спасибо ( видимо тут будут вопросы, но это позже ).

А можете на github выложить?

Проект создан: github gtv
« Последнее редактирование: 08.11.2017 12:57:53 от vl-nix »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Цифровое телевидение ( Digital TV )
« Ответ #4 : 27.11.2017 20:41:24 »
Пакет gtv-dvb версии 1.0 в p8.

Оффлайн vl-nix

  • Давно тут
  • **
  • Сообщений: 30
    • Email
Re: Цифровое телевидение ( Digital TV )
« Ответ #5 : 28.11.2017 16:32:39 »
Спасибо Антон, за проделанную работу.

Готовится версия 1.1.
Основная особенность  - аудио и видео - эквалайзеры.
Также несколько мелких улучшений.


Можно внести изменения в файл спек ( на Ваше усмотрение ):

Summary: Dvb player

%description
DVB-T/T2, DVB-S/S2, DVB-C
Graphical user interface - Gtk+3
Audio & Video & Digital TV - Gstreamer 1.0


Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Цифровое телевидение ( Digital TV )
« Ответ #6 : 28.11.2017 17:37:57 »
Можно внести изменения в файл спек ( на Ваше усмотрение ):

Хорошо, как выйдет 1.1, внесу.

Просьба. Поддерживать перевод и на русский язык. У меня в ближайшие месяцы времени может даже и на это не быть...

Оффлайн vl-nix

  • Давно тут
  • **
  • Сообщений: 30
    • Email
Re: Цифровое телевидение ( Digital TV )
« Ответ #7 : 10.12.2017 22:03:49 »
DVB карты и Gstreamer.

Если возникает ошибка ( текст ошибки, может быть переведен на текущий язык системы ):
“Cannot enumerate delivery systems from frontend device” - это преодолимо.
Начиная с версии 1.1 программы  Gtv-Dvb, такая ошибка возникать не должна, но если будет возникать, то решение описано ниже. Также описанное ниже может быть полезным для других программ, которые используют Gstreamer.


Ошибку генерирует dvbsrc:
   GstElement <struct GstDvbSrc> dvbsrc - управляет DVB устройством.

Чтобы не терять время на объяснения, достаточно сравнить две функции (  из dvbsrc и libdvbv5 ):

Файл:  sys/dvb/gstdvbsrc.c ( gst-plugins-bad-1.12.3 )
    функция: gst_dvbsrc_open_frontend
    строки:  1616 - 1624

  LOOP_WHILE_EINTR (err, ioctl (object->fd_frontend, FE_GET_PROPERTY, &props));
  if (err) {
    GST_ELEMENT_ERROR (object, RESOURCE, SETTINGS,
        (_("Cannot enumerate delivery systems from frontend device \"%s\"."),
            frontend_dev), GST_ERROR_SYSTEM);

    close (object->fd_frontend);
    g_free (frontend_dev);
    return FALSE;

Файл:   lib/libdvbv5/dvb-fe.c ( v4l-utils-1.12.5 )
     функция:  dvb_fe_open_fname
     строки:  227 – 230

/* Detect a DVBv3 device */
if (xioctl(fd, FE_GET_PROPERTY, &dtv_prop) == -1) {
parms->dvb_prop[0].u.data = 0x300;
parms->dvb_prop[1].u.data = SYS_UNDEFINED;

Две функции делают одно и то же:
   1. открывают устройство
   2. узнают имя устройства
   3. выясняют тип устройства ( этот фрагмент кода находится выше )

В чем разница?

    Libdvbv5 использует ошибку как детектор версии DVBv3, и не закрывает устройство, как это делает dvbsrc...

Вывод:
   строки - 1622 1623 1624 - нужно закомментировать, исходя из примера  libdvbv5

    close (object->fd_frontend);
    g_free (frontend_dev);
    return FALSE;

Алгоритм действий:
   1. скачать архив gst-plugins-bad-1.* исходного кода ( лучше выбрать такую же версию как в системе )
   2. закомментировать строки - 1622 1623 1624 ( файл  sys/dvb/gstdvbsrc.c )
   3. выполнить команды ( если есть понимание того, как это сделать, то достаточно собрать и установить только одну секцию - dvb, а не весь проект )
      ./configure ( нужно откорректировать префикс )
      make
      make install
      
   4. очистить кэш
      rm -r ~/.cache/gstreamer-1.0
   
Кэш хранится в памяти, поэтому лучше перезагрузить компьютер.
« Последнее редактирование: 10.12.2017 22:41:57 от vl-nix »

Оффлайн vl-nix

  • Давно тут
  • **
  • Сообщений: 30
    • Email
Re: Цифровое телевидение ( Digital TV )
« Ответ #8 : 23.12.2017 09:15:23 »
Вышла версия 1.1 - Gtv-Dvb 1.1 stable.



Изменения для файла спек:

Summary: Dvb player

%description
DVB-T/T2, DVB-S/S2, DVB-C, ATSC, DTMB
Graphical user interface - Gtk+3
Audio & Video & Digital TV - Gstreamer 1.0
« Последнее редактирование: 23.12.2017 10:47:25 от vl-nix »

Оффлайн vl-nix

  • Давно тут
  • **
  • Сообщений: 30
    • Email
Re: Цифровое телевидение ( Digital TV )
« Ответ #9 : 23.12.2017 09:17:24 »
Просьба. Поддерживать перевод и на русский язык.

Сделано.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Цифровое телевидение ( Digital TV )
« Ответ #10 : 23.12.2017 11:41:54 »
Цитата: Антон Мидюков от 28.11.2017 17:37:57

    Просьба. Поддерживать перевод и на русский язык.


Сделано.

Спасибо.

Изменения для файла спек:

Summary: Dvb player

%description
DVB-T/T2, DVB-S/S2, DVB-C, ATSC, DTMB
Graphical user interface - Gtk+3
Audio & Video & Digital TV - Gstreamer 1.0

Сделано.

Вышла версия 1.1 - Gtv-Dvb 1.1 stable.

Собрал и отправил в Сизиф и p8.

Оффлайн vl-nix

  • Давно тут
  • **
  • Сообщений: 30
    • Email
Re: Цифровое телевидение ( Digital TV )
« Ответ #11 : 28.03.2018 07:25:34 »
Вышла версия 1.1.8 ( одно критическое исправление ).
Gtv-Dvb 1.1.8 stable.
« Последнее редактирование: 28.03.2018 07:45:40 от vl-nix »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Цифровое телевидение ( Digital TV )
« Ответ #12 : 28.03.2018 13:49:31 »
Вышла версия 1.1.8 ( одно критическое исправление ).

Собрал в Сизиф и p8.

Оффлайн vl-nix

  • Давно тут
  • **
  • Сообщений: 30
    • Email
Re: Цифровое телевидение ( Digital TV )
« Ответ #13 : 28.03.2018 16:06:49 »
Собрал в Сизиф и p8.

Спасибо! ( очень быстро ).

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Цифровое телевидение ( Digital TV )
« Ответ #14 : 28.03.2018 16:19:00 »
Спасибо! ( очень быстро ).

В Альте обновление пакетов хорошо автоматизируется просто :-)