Jo2003 / vlc-record

Automatically exported from code.google.com/p/vlc-record
0 stars 0 forks source link

Kartina: время передач показывается всегда по московскому времени. #26

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Kartina API всегда возвращает время передач с 
учетом настройки "Задержка вещания" и 
"Часовой пояс", в вашей программе время 
передач всегда Московское, что крайне не 
информативно.

Original issue reported on code.google.com by asp...@gmail.com on 30 Oct 2014 at 2:47

GoogleCodeExporter commented 9 years ago
Можно быть чуть чуть точнее?
Часовый пояс не интересно для програмы. 
Есть возможность задержки (в настройках). 
То, что не правильно работает - это время в 
списке каналов когда используешь задержку. 
Но это баг в АПИ Картины. Что еще не так?
Скриншот?! 

Original comment by Olenka.Joerg@gmail.com on 6 Nov 2014 at 8:59

GoogleCodeExporter commented 9 years ago
У Картины с API все нормально, я вижу 
нормальное время и на андроид приложении и 
в gson ответе channel_list. Для примера - локальное 
время 12:14 (в настройках часовой пояс - 1, 
задержка вещания - 2 (Германия). В channel_list для 
канала Первый - 2 начало передачи Новости в 
unixtimestamp epg_start = 1415271600 = 06.11.2014 - 12:00:00, 
окончание - epg_end = 1415272800 = 06.11.2014 - 12:20:00. 
(онлайн конвертор (http://www.unixtime.de/). У вас в 
программе время передачи - 14:00 - 14:20. Т.е. 
впечатление, что при конвертации из unixtimestamp 
вы добавляете 2 часа задержки вещания :)

Original comment by asp...@gmail.com on 6 Nov 2014 at 11:21

GoogleCodeExporter commented 9 years ago
Вот тут: ctimerrec.cpp -> SetRecInfo вы таймшифт не 
прибавляете? 

   // check if timeshift is available for this channel ...
   int iTs = pChanMap->timeShift(cid);

   ...

   // set timeshift stuff ...
   if (iTs)
   {
      uiStart = tmSync.gmtToTs(uiStart);
      uiEnd   = tmSync.gmtToTs(uiEnd);
   } 

Original comment by asp...@gmail.com on 6 Nov 2014 at 1:44

GoogleCodeExporter commented 9 years ago
У Картины с АПИ НЕ все в порядке. Времени в 
списке каналов должны быть в ГМТ но они уже 
считали с задержкей (1-ая проблема). Вопрос 
на epg_current никогда не дает передачи которые 
идет в данный момент если используешь 
задержку (2-ая проблема). 

Если для 1) еще мог бы делать фикс - для 2) 
никак не идет.

В каком смысле тут таймер рекорд?

Original comment by Olenka.Joerg@gmail.com on 6 Nov 2014 at 2:10

GoogleCodeExporter commented 9 years ago
1. Да, channel_list дает время уже с задержкой (т.е. 
локальное пользователя)
2. epg_current отдает текущую передачу и 2 
следующие (только что проверил):

{
    "epg": [{
        "cid": 1053,
        "epg": [{
            "ts": "1415282400",
            "progname": "\u0417\u0434\u0435\u0441\u044c \u0438 \u0441\u0435\u0439\u0447\u0430\u0441: \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438."
        }, {
            "ts": "1415286000",
            "progname": "\u041a\u043e\u0437\u044b\u0440\u0435\u0432 online."
        }, {
            "ts": "1415289600",
            "progname": "\u0414\u0435\u043d\u044c\u0433\u0438: \u041f\u0430\u0440\u0445\u043e\u043c\u0435\u043d\u043a\u043e."
        }]
    }],
    "messages": 0,
    "servertime": 1415283612
}

Original comment by asp...@gmail.com on 6 Nov 2014 at 2:27

GoogleCodeExporter commented 9 years ago
Да, epg_current дает текущую передачу. Но это 
ведь не подходит если задержка например 4ч. 
Тогда мне надо передачи которые шли 4ч. 
назад но НЕ текущая передача! Верно?!

Original comment by Olenka.Joerg@gmail.com on 6 Nov 2014 at 2:35

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
epg_current возвращает текущую передачу со 
временем, которое уже учитывает задержку! 
Т.е. если задержка 4 часа, то epg_current вернет 
передачу, которая шла 4 часа назад. В итоге 
задержку вообще надо исключить из 
рассчетов.

Original comment by asp...@gmail.com on 6 Nov 2014 at 3:12

GoogleCodeExporter commented 9 years ago
Ну да, так должно быть. Но так и нет. epg_current 
дает текущую передача и НЕ считает 
задержку. Как насчет пример на вверху? 

Юникс таймстэмп там 1415283612 (GMT: Thu, 06 Nov 2014 14:20:12 
GMT). Задержка у тебя 2 часа. Как возможно что 
тогда следухущие передачи в epg_current в 
будущее а не в прошлым:
Server Time: 1415283612 (GMT: Thu, 06 Nov 2014 14:20:12 GMT)
Current show: 1415282400 (GMT: Thu, 06 Nov 2014 14:00:00 GMT)
"Здесь и сейчас: Информационные выпуски."
Next show: 1415286000 (GMT: Thu, 06 Nov 2014 15:00:00 GMT)
"Козырев online."
Next show: 1415289600 (GMT: Thu, 06 Nov 2014 16:00:00 GMT)
"Деньги: Пархоменко."

Original comment by Olenka.Joerg@gmail.com on 6 Nov 2014 at 7:27

GoogleCodeExporter commented 9 years ago
ну так все правильно, я в 14:20 смотрю 
передачу, которая идет с 14:00, следующая 
передача в 15:00 и в 16:00. Что не так - текущая и 2 
в будущем? Все в локальном времени, и не 
надо ничего прибавлять или отнимать.

Original comment by asp...@gmail.com on 6 Nov 2014 at 7:46

GoogleCodeExporter commented 9 years ago
А где тогда задержка которая там уже должна 
быть? 

Пример:
Передача 1) начинается в 6:00 ГМТ. 
Передача 2) начинается в 7:00 ГМТ
Передача 3) начинается в 10:00 ГМТ
Передача 4) начинается в 11:00 ГМТ.

Задержка я поставил на 4ч. Начинаешь 
посмотреть в 10:00 ГМТ но т.к. задержка 4ч. 
будешь посмотреть передача 1).
epg_current показывается тебе теперь, что 
текущая передача номерь 3) а следующая 
номерь 4). А это ведь не правильно!

Если не поверишь ничего не могу делать - 
проблема есть - поверишь ли ты или нет. Я уже 
давно говорил с разрабочиком АПИ. И он 
знает и скажет что есть та ошибка. 
Он делает фикс - но не раньше чем в Январе. 

Original comment by Olenka.Joerg@gmail.com on 6 Nov 2014 at 8:10

GoogleCodeExporter commented 9 years ago
А, я кажется, понял - что задержка в 
настройках Картина ни на что не влияет, 
выставил 0 - и время стало в программе 
передач нормальным. Сорри, похоже, запутал 
(ся). Не ясно - зачем тогда эта настройка.

Original comment by asp...@gmail.com on 6 Nov 2014 at 8:11

GoogleCodeExporter commented 9 years ago
Hurra! 

Original comment by Olenka.Joerg@gmail.com on 6 Nov 2014 at 8:14

GoogleCodeExporter commented 9 years ago
Я понял, что меня сбило с толку - по идее, 
если бы timeshift работа правильно, то время в 
вашем приложении все равно должно быть 
показано локальным (а не сдвинутым на 
значение timeshift).  Для примера, если мы 
говорим о GMT+1 для пользователя (2 часа 
разницы с Москвой), то включив программу в 
8:00 и не имея тамшифта (= 0) мы смотрим 
программу, которая началась в 10:00 по Москве, 
но если мы включаем timeshift = 2 часам и тем 
самым хотим смотреть программы, которые 
шли в тоже время, т.е. в 8:00 мы хотим смотреть 
программу, которая шла в 8:00 по Москве - то в 
программе мы все равно видим свое 
локальное время, а не московское. Верно? 

Original comment by asp...@gmail.com on 7 Nov 2014 at 12:09