[vdr] Transfer Buffer Overflow

Thomas Lagemann thomas.lagemann at stud.tu-ilmenau.de
Fri Feb 2 13:38:51 CET 2007


Hi there,
im currently trying to write a Plugin that reads a DVB-TS-File from hard 
disk acting as a VDR input device.
To do this i derived my own device from cDevice, reading the file into a 
TSBuffer and return it package wise in GetTSPacket.
This somehow works. But the playback is only ok for 2 seconds, and after 
that it starts hanging and skipping and i get these "transfer buffer 
overflow" messages.
It seems like the data from the file is provided too fast, because the 
parts that are skipped are much longer than the time playback is stuck.
Also i can record from the device, and the resulting File is ok, but if 
the recording runs for 10 seconds i get a file that is 40 seconds long.

But shouldn't the rate at which the TS-packets are gathered from the 
input device be controlled by the output device?

I tried this on two systems, both without DVB hardware:
1: vdr-1.3.44, xine-plugin 0.7.9
2: vdr-1.4.4, xineliboutput-plugin 1.0.0pre5

--------------------------------------------------------------------------------------------------------

    USER       PID  SPID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      9118  9118  0.0 11.9  78228 61664 ?        Sl   12:29   0:00 ./vdr -Px
    root      9118  9121  0.0 11.9  78228 61664 ?        Sl   12:29   0:00 ./vdr -Px
    root      9118  9122  0.0 11.9  78228 61664 ?        Sl   12:29   0:00 ./vdr -Px
    root      9118  9123  0.0 11.9  78228 61664 ?        Sl   12:29   0:00 ./vdr -Px
    root      9118  9132  6.0 11.9  78228 61664 ?        Sl   12:29   0:03 ./vdr -Px
    root      9118  9133 10.3 11.9  78228 61664 ?        Sl   12:29   0:06 ./vdr -Px
    root      9118  9134 19.8 11.9  78228 61664 ?        Rl   12:29   0:12 ./vdr -Px



    Feb  2 12:29:06 linux vdr: [9132] transfer thread started (pid=9118, tid=9132)
    Feb  2 12:29:06 linux vdr: [9133] receiver on device 6 thread started (pid=9118, tid=9133)
    Feb  2 12:29:06 linux vdr: [9134] TS buffer on device 6 thread started (pid=9118, tid=9134)
    Feb  2 12:29:06 linux vdr: [9134] buffer usage: 90% (tid=9133)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 70% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 80% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 90% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:06 linux vdr: [9132] clearing transfer buffer to avoid overflows
    Feb  2 12:29:06 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 0% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 70% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 80% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 90% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:06 linux vdr: [9132] clearing transfer buffer to avoid overflows
    Feb  2 12:29:06 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 0% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 70% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9133] buffer usage: 80% (tid=9132)
    Feb  2 12:29:06 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:06 linux vdr: [9132] setting audio track to 33 (0)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9133] buffer usage: 0% (tid=9132)
    Feb  2 12:29:07 linux vdr: [9133] buffer usage: 70% (tid=9132)
    Feb  2 12:29:07 linux vdr: [9133] buffer usage: 80% (tid=9132)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9133] buffer usage: 0% (tid=9132)
    Feb  2 12:29:07 linux vdr: [9133] buffer usage: 70% (tid=9132)
    Feb  2 12:29:07 linux vdr: [9133] buffer usage: 80% (tid=9132)
    Feb  2 12:29:07 linux vdr: [9133] buffer usage: 90% (tid=9132)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9132] clearing transfer buffer to avoid overflows
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9133] buffer usage: 100% (tid=9132)
    Feb  2 12:29:07 linux vdr: [9133] ERROR: 1 ring buffer overflow (177 bytes dropped)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:07 linux vdr: [9134] buffer usage: 0% (tid=9133)

    [...]

    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 70% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 80% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 60% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 70% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:14 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 0% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 70% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 80% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 90% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9134] buffer usage: 0% (tid=9133)
    Feb  2 12:29:14 linux vdr: [9134] buffer usage: 100% (tid=9133)
    Feb  2 12:29:14 linux vdr: [9133] buffer usage: 100% (tid=9132)
    Feb  2 12:29:14 linux vdr: [9133] ERROR: 166595 ring buffer overflows (31319794 bytes dropped


      




More information about the vdr mailing list