Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Vnsi4 #186

merged 63 commits into from

5 participants


1) Full timeshift support

  • configurable as buffer in RAM or file
  • addmin dialog in LiveTV settings - client specific
  • pause of live stream
  • navigation in buffer, seek, ff/rw

2) Playback of recordings in progress

  • If a recording is in progress, simple click the channel just as you would start live playback
  • When the recording is finished, it switches to live automatically.

3) Priorities

  • Setting of priorities for live view in addon settings dialog (default 0)
  • Higher priorities can interrupt lower ones. Default priority for recordings is 50 (LiveTV settings - recordings)
  • If you have multiple clients, those with higher priority can interrupt live view of others.


FernetMenta added some commits
@FernetMenta FernetMenta vnsi: vdr osd 2493f0f
@FernetMenta FernetMenta vnsi: trigger epg update fbadb7e
@FernetMenta FernetMenta vnsi: osd - check if wndId is out of bounds ebfd307
@FernetMenta FernetMenta vnsi: drop dead code: SendPing c15e42b
@FernetMenta FernetMenta vnsi: osd - correct colors 3b9bd85
@FernetMenta FernetMenta vnsi: close connection on packet sync error 3cdca07
@FernetMenta FernetMenta vnsi: osd - update vs project bd47144
@FernetMenta FernetMenta vdr-plugin-vnsiserver: timeshift 42906e8
@FernetMenta FernetMenta vnsi: timeshift support c8bc726
@FernetMenta FernetMenta vnsi: add settings page for setup 3ccd3f9
@FernetMenta FernetMenta vnsi: add osd rendering for DX 47c710f
@FernetMenta FernetMenta vnsi: bump protocol version to 4 4dc3be0
@FernetMenta FernetMenta vnsi: timeshift, tag mux packets with a serial 1fe11b9
@FernetMenta FernetMenta vdr-plugin-vnsiserver: tag mux packet with a serial b2bac2c
@FernetMenta FernetMenta vdr-plugin-vnsiserver: bump version to 0.9.2 a67e531
@FernetMenta FernetMenta vdr-plugin-vnsiserver: parse setup parameter before saving ca282e3
@FernetMenta FernetMenta vdr-plugin-vnsiserver: add file buffer for timeshift 90ad8d0
@FernetMenta FernetMenta vnsi: add file buffer for timeshift e312da9
@FernetMenta FernetMenta vdr-plugin-vnsiserver: replay recording in progress bac0a9b
@FernetMenta FernetMenta vdr-plugin-vnsiserver: set priority for livetv, allow interrupt by ro…
@FernetMenta FernetMenta vnsi: set priority for live tv 09b13dd
@FernetMenta FernetMenta vnsi: check version of guiaddon lib fb83088
@FernetMenta FernetMenta vdr-plugin-vnsiserver: limit rescan for recording in progress 72f9f6c
@FernetMenta FernetMenta vnsi: dont scan timer titles for directory delimiters 106da27
@FernetMenta FernetMenta vdr-plugin-vnsiserver: fix subtitle errors in xbmc log f6a1c21
@FernetMenta FernetMenta vdr-plugin-vnsiserver: increase read cache 68d259a
@FernetMenta FernetMenta vdr-plugin-vnsiserver: optimize file buffer method for timeshift d81e1e6
@FernetMenta FernetMenta vdr-plugin-vnsiserver: add buffer status message d679f4d
@FernetMenta FernetMenta vdr-plugin-vnsiserver: optimize recplayer 8846a85
@FernetMenta FernetMenta vnsi: add timeshift buffer status 2b4f609
@FernetMenta FernetMenta vdr-plugin-vnsiserver: add config option for timeshift buffer directory 47f9897
@FernetMenta FernetMenta vnsi: add gles rendering for vdr ui 298fcd3
@FernetMenta FernetMenta rbp: set rpath-link needed by automake 86ec58e
@FernetMenta FernetMenta configure check for gles2 0f146ba
@FernetMenta FernetMenta vnsi: add skin file for aeon.nox 31f57ee
@FernetMenta FernetMenta vnsi: rework settings dialog for skin clonfluence 3b49da3
@FernetMenta FernetMenta vnsi: fix fallback method for skins 4093104
@FernetMenta FernetMenta vdr-plugin-vnsiserver: raise max value for timeshift buffers d47dbc2
@FernetMenta FernetMenta vnsi: raise max value for timeshift buffers 437ab95
@FernetMenta FernetMenta vnsi: bump version to 1.8.0 b0edaae
@FernetMenta FernetMenta vdr-plugin-vnsiserver: update headers 86012c3
@FernetMenta FernetMenta vdr-plugin-vnsiserver: fix compile error for loder vdr versions 9049cd0
@FernetMenta FernetMenta vdr-plugin-vnsiserver: do not transmit packates older than first fram…
…e, avoids large disconts on start of playback
@FernetMenta FernetMenta vdr-plugin-vnsiserver: cleanup and fixes in pes parser 06f939e
@FernetMenta FernetMenta vdr-plugin-vnsiserver: only observe pts wraps on audio and video streams a1a4c4d
@FernetMenta FernetMenta vdr-plugin-vnsiserver: fix test harness e7a58bb
@FernetMenta FernetMenta vdr-plugin-vnsiserver: rework and fixes on video parsers 4c29a8e
@FernetMenta FernetMenta vdr-plugin-vnsiserver: fix getting stuck by reading eof at end of seg…
@FernetMenta FernetMenta vnsi: correct vs project after adding dx dea3066
@FernetMenta FernetMenta vdr-plugin-vnsiserver: fix occasional incorrect timestamps after 505336e
@FernetMenta FernetMenta vdr-plugin-vnsiserver: fix segfault when feeded with scrambled packets 7f4a00c
@FernetMenta FernetMenta vdr-plugin-vnsiserver: atsc does not suppport mpeg2 audio, interpret …
…pmt accordingly
@FernetMenta FernetMenta vdr-plugin-vnsiserver: increase max buffer size for pes packets 3ce5859
@FernetMenta FernetMenta vnsi: disable callback PVRRecording, fixes deadlock efd4395
@FernetMenta FernetMenta vdr-plugin-vnsiserver: recplayer, drop NOATIME flag on open 676c881
@FernetMenta FernetMenta vdr-plugin-vnsiserver: fix potential segfault when reading incorrent …
…pes header size
@FernetMenta FernetMenta vdr-plugin-vnsiserver: present specific parser errors to user 44ab334
@FernetMenta FernetMenta vdr-plugin-vnsiserver: squash to specific errors 911d3c0
@FernetMenta FernetMenta vdr-plugin-vnsiserver: fix layer for mpeg audio 835fe1e
@FernetMenta FernetMenta vdr-plugin-vnsiserver: silence compiler warning 66aa5cc
@FernetMenta FernetMenta vdr-plugin-vnsiserver: allow timeshift buffer in RAM to larger than 2…
… GB, change size_t to off_t
@FernetMenta FernetMenta vdr-plugin-vnsiserver: h264 parser - reset stream data on error 00a56e9
@FernetMenta FernetMenta vdr-plugin-vnsiserver: do not assume a pes header right after pusi fo…
…r video streams
@opdenkamp opdenkamp merged commit b02bdc8 into opdenkamp:master

it seems that this breaks compile for android ... not sure why:

src/VNSIAdmin.cpp:462:21: error: 'GL_UNPACK_ROW_LENGTH' was not declared in this scope
src/VNSIAdmin.cpp:481:21: error: 'GL_UNPACK_ROW_LENGTH' was not declared in this scope
src/VNSIAdmin.cpp:482:21: error: 'GL_UNPACK_SKIP_PIXELS' was not declared in this scope
src/VNSIAdmin.cpp:483:21: error: 'GL_UNPACK_SKIP_ROWS' was not declared in this scope


I don't have any idea either and no android. as a quick fix, could you add this to line 89:

#if !defined(GL_UNPACK_ROW_LENGTH)
#undef HAVE_GLES2

This is really frustrating to see, it essentially invalidates the purpose of a plugin. It is now hard-coded to a specific xbmc build.

The GL_UNPACK_ROW_LENGTH extension is only available on certain Android devices, such as those with Nvidia Tegra SOCs. How other Android GL drivers do it is that they check against these extensions by using glGetString, and if they are supported, they will opt for the GL_PACK/GL_UNPACK routines (presumably faster than doing it manually in a for loop).

c/p from google :) see


I didn't mean the GL_UNPACK_ROW_LENGTH, i meant the gles renderer in its entirety. This means that the linux plugin can't be shipped by any repository, because we don't know if the target will be using gl/gles.


Btw, that's not meant to be an empty gripe with no proposed alternative. This would be solved with xbmc/xbmc#2681.


right, so suggestions for now? revert and wait for xbmc/xbmc#2681 to go in first or fix this?


I don't see how 2681 should help in this case. Currently a plugin does not have any access to rendering other than the rendering control.
For now it should be sufficient just to disable rendering here by undef GLES2

so the additions from 298fcd3#commitcomment-3385588 ?


@opdenkamp yes, I think that should do. It also disables vdr gui on rpi but I don't have a any other quick solutions.

@theuni the project of bringing the vdr ui to XBMC is 7 or 8 months old. If you provide a better solution for an addon to use rendering I am happy to use it. I have absolutely no problem in adapting to 2681 when it's ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Apr 24, 2013
  1. @FernetMenta

    vnsi: vdr osd

    FernetMenta authored
  2. @FernetMenta

    vnsi: trigger epg update

    FernetMenta authored
  3. @FernetMenta
  4. @FernetMenta
  5. @FernetMenta

    vnsi: osd - correct colors

    FernetMenta authored
  6. @FernetMenta
  7. @FernetMenta
  8. @FernetMenta
  9. @FernetMenta

    vnsi: timeshift support

    FernetMenta authored
  10. @FernetMenta
  11. @FernetMenta
  12. @FernetMenta
  13. @FernetMenta
  14. @FernetMenta
  15. @FernetMenta
  16. @FernetMenta
  17. @FernetMenta
  18. @FernetMenta
  19. @FernetMenta
  20. @FernetMenta
  21. @FernetMenta
  22. @FernetMenta
  23. @FernetMenta
  24. @FernetMenta
  25. @FernetMenta
  26. @FernetMenta
  27. @FernetMenta
  28. @FernetMenta
  29. @FernetMenta
  30. @FernetMenta
  31. @FernetMenta
  32. @FernetMenta
  33. @FernetMenta
  34. @FernetMenta

    configure check for gles2

    FernetMenta authored
  35. @FernetMenta
  36. @FernetMenta
  37. @FernetMenta
  38. @FernetMenta
  39. @FernetMenta
  40. @FernetMenta
  41. @FernetMenta
  42. @FernetMenta
  43. @FernetMenta

    vdr-plugin-vnsiserver: do not transmit packates older than first fram…

    FernetMenta authored
    …e, avoids large disconts on start of playback
  44. @FernetMenta
  45. @FernetMenta
  46. @FernetMenta
  47. @FernetMenta
  48. @FernetMenta
  49. @FernetMenta
  50. @FernetMenta
  51. @FernetMenta
  52. @FernetMenta
  53. @FernetMenta
  54. @FernetMenta
  55. @FernetMenta
  56. @FernetMenta
  57. @FernetMenta
  58. @FernetMenta
Commits on Apr 28, 2013
  1. @FernetMenta
  2. @FernetMenta
  3. @FernetMenta
  4. @FernetMenta
Commits on May 29, 2013
  1. @FernetMenta
Something went wrong with that request. Please try again.