Home

Timeshift play/pausa

pepebio

Presentado
Forero
12 Sep 2018
2
0
0
49
Hola,
Llevo un par de meses con un Vu+Zero 4k y nunca me han funcionado correctamente las "keys" play/pausa dentro del timeshift. Hasta ahora no he podido mirármelo a fondo antes de preguntaros si sólo es cosa mia o quizás un problema de la imagen. Me parece que en otras imagenes como openatv tambien les habia pasado algo similar por lo que he leido en algunos foros. Me explico:

Cuando entro en el Timeshift (con play o con pausa) este se inicia de forma correcta dejando la reproducción en pausa. Hasta aqui todo normal. Pero cuando quiero reanudar la reproducción del TimeShift usando las keys play o pausa se reanuda la reproducción e inmediatemente se vuelve a poner en pausa. La unica forma que he visto que reanuda la reproducción es con la tecla "ok".
Hoy he podido mirarmelo un poco con más detalle iniciando enigma desde una session SSH y he podido ver que:
  • Cuando se inicia el modo Timeshift con las keys play/pause se ejecuta la funcion definicda en el keymap "InfobarTimeshiftActions timeshiftStart"
  • Una vez iniciado el Timeshift y estando en pausa, cuando se pulsa play o pausa se ejecuta el mapeo de "InfobarSeekActionsPTS playpauseService" o "InfobarSeekActionsPTS pauseService" dependiendo de la tecla pulsada que lo que hace es reanudar la reproducción. Seguidamente se procesa la ejecución de estas teclas que por defecto tienen un mapeo a "InfobarTimeshiftActions timeshiftStart" que vuelve a iniciar el Timeshift generando el mensaje "startTimeshift [TIMESHIFT] - hu, timeshift already enabled?" y que vuelve a dejar la reproduccion en pausa. Os adjunto un log de una sola pulsación de la tecla "play" estando en Timeshift en pausa que como se puede ver se procesa una vez para cada evento dejandolo finalmente en pausa.
Enriquecido (Código BB):
10:08:58.0065 driver/rcinput.cpp:38 handleCode [eRCDeviceInputDev] 1 cf 1
10:08:58.0086 Screens/InfoBarGenerics.py:202 actionA  KEY: 207 0 KEY_PLAY PLAY
10:08:58.0089 Components/ActionMap.py:46 action  [ActionMap] InfobarSeekActionsPTS playpauseService
10:08:58.0093 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.0094 service/servicedvb.cpp:1613 unpause [eDVBServicePlay] unpause
10:08:58.0095 dvb/decoder.cpp:836 setState [eTSMPEGDecoder] decoder state: play, vpid=00a5, apid=006e
10:08:58.0095 dvb/decoder.cpp:484 setSlowMotion [eDVBVideo0] VIDEO_SLOWMOTION 0 ok
10:08:58.0138 dvb/decoder.cpp:499 setFastForward [eDVBVideo0] VIDEO_FAST_FORWARD 0 ok
10:08:58.0186 dvb/decoder.cpp:472 unfreeze [eDVBVideo0] VIDEO_CONTINUE ok
10:08:58.0225 dvb/decoder.cpp:203 unfreeze [eDVBAudio0] AUDIO_CONTINUE ok
10:08:58.0315 Components/Pixmap.py:139 setPixmapNum  setPixmapNum(0) failed! defined pixmaps: []
10:08:58.0318 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.0319 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.0320 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.0321 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.0326 Screens/Screen.py:151 show  [SCREENNAME]  TimeshiftState
10:08:58.0328 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.0329 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1308 driver/rcinput.cpp:38 handleCode [eRCDeviceInputDev] 0 cf 1
10:08:58.1326 Screens/InfoBarGenerics.py:202 actionA  KEY: 207 1 KEY_PLAY PLAY
10:08:58.1329 Components/ActionMap.py:46 action [ActionMap] InfobarTimeshiftActions timeshiftStart
10:08:58.1330 Components/ActionMap.py:53 action  [ActionMap] unknown action InfobarTimeshiftActions/timeshiftStart! typo in keymap?
10:08:58.1330 Components/ActionMap.py:46 action  [ActionMap] InfobarTimeshiftActions timeshiftStart
10:08:58.1332 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1333 Components/Timeshift.py:432 startTimeshift  [TIMESHIFT] - hu, timeshift already enabled?
10:08:58.1334 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1335 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1336 service/servicedvb.cpp:1600 pause [eDVBServicePlay] pause
10:08:58.1336 dvb/decoder.cpp:836 setState [eTSMPEGDecoder] decoder state: pause, vpid=00a5, apid=006e
10:08:58.1337 dvb/decoder.cpp:484 setSlowMotion [eDVBVideo0] VIDEO_SLOWMOTION 0 ok
10:08:58.1380 dvb/decoder.cpp:499 setFastForward [eDVBVideo0] VIDEO_FAST_FORWARD 0 ok
10:08:58.1429 dvb/decoder.cpp:460 freeze [eDVBVideo0] VIDEO_FREEZE ok
10:08:58.1467 dvb/decoder.cpp:191 freeze [eDVBAudio0] AUDIO_PAUSE ok
10:08:58.1508 Components/Pixmap.py:139 setPixmapNum  setPixmapNum(1) failed! defined pixmaps: []
10:08:58.1510 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1512 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1513 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1514 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1518 Screens/Screen.py:151 show  [SCREENNAME]  TimeshiftState
10:08:58.1519 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1520 service/servicedvb.cpp:1743 timeshift [eDVBServicePlay] timeshift
10:08:58.1525 Screens/Screen.py:151 show  [SCREENNAME]  InfoBar

La única solución que he podido aplicar con mis leves conocimientos para que la tecla "play" permita reanudar el Timeshift es quitando el mapeo de esta tecla para "InfobarTimeshiftActions" en el fichero keymap.xml dejandolo de la siguiente forma para que cuando está en pausa no procese de nuevo la funcion "timeshiftStart" y lo deje en pausa de nuevo:
Enriquecido (Código BB):
    <map context="InfobarTimeshiftActions">
        <device name="dreambox advanced remote control (native)">
            <!--QUITADO POR MI <key id="KEY_PLAY" mapto="timeshiftStart" flags="b" />-->
            <key id="KEY_TV" mapto="timeshiftStop" flags="m" />
            <key id="KEY_STOP" mapto="timeshiftStop" flags="m" />
        </device>
        <device name="dreambox remote control (native)">
            <key id="KEY_YELLOW" mapto="timeshiftStart" flags="b" />
            <key id="KEY_TV" mapto="timeshiftStop" flags="m" />
        </device>
        <device name="dreambox ir keyboard">
            <key id="KEY_YELLOW" mapto="timeshiftStart" flags="b" />
            <key id="KEY_PAUSE" mapto="timeshiftStart" flags="b" />
            <key id="KEY_TV" mapto="timeshiftStop" flags="m" />
            <key id="KEY_STOP" mapto="timeshiftStop" flags="m" />
        </device>
        <key id="KEY_PLAYPAUSE" mapto="timeshiftStart" flags="b" />
        <!--QUITADO POR MI <key id="KEY_PLAY" mapto="timeshiftStart" flags="b" />
        -->
        <key id="KEY_PAUSE" mapto="timeshiftStart" flags="b" />
        <key id="KEY_STOP" mapto="timeshiftStop" flags="m" />
        <!--key id="KEY_TIME" mapto="timeshiftStart" flags="m" /-->
        <key id="KEY_RECORD" mapto="instantRecord" flags="b" />
        <key id="KEY_PREVIOUS" mapto="jumpPreviousFile" flags="m" />
        <key id="KEY_NEXT" mapto="jumpNextFile" flags="m" />
        <key id="KEY_STOP" mapto="instantRecord" flags="l" />
    </map>

Después del rollo soltado, quería preguntaros:

1-¿Es normal que se procese una tecla en dos eventos, una que lo reanuda y otro que vuelve a iniciar el Timeshift dejando en pausa?
2-¿Sólo me pasa a mi?
3-¿Hay alguna otra forma de solucionarlo o la solución que he aplicado es suficiente, aunque no me deje iniciar el TimeShfit con la tecla "play" (un mal menor)?

Tengo instalada la version 7.3.001.

Saludos y gracias de antemano.
 
Última edición: