[vdr] VDR test series about frame detector

cedric.dewijs at telfort.nl cedric.dewijs at telfort.nl
Wed Jan 15 11:35:29 CET 2014


>Then you compile the attached C++ file (unziped, of course):
>> g++ -c framedetectortest.cpp
>
>Then you're linking it:
>g++ -o framedetectortest framedetectortest.o remux.o ringbuffer.o thread.o tools.o i18n.o sections.o channels.o device.o audio.o ci.o receiver.o transfer.o player.o osdbase.o 
>status.o skins.o osd.o config.o font.o sources.o menu.o recording.o videodir.o timers.o epg.o dvbplayer.o menuitems.o remote.o keys.o interface.o plugin.o cutter.o themes.o 
>svdrp.o eit.o eitscan.o shutdown.o filter.o sourceparams.o dvbsubtitle.o pat.o sdt.o nit.o dvbdevice.o diseqc.o recorder.o dvbci.o libsi/libsi.a -lfontconfig -lfreetype -lpthread -ldl -
>ljpeg
>
>Now you've got an application called framedetectortest, which you can feed your vdr recordings (*.ts files) to:
>> ./framedetectortest 00002.ts
>
>The output looks about like this:
>
>Checking file at offset 0
>Without frame limit... Found I frame after 99452 bytes
>With frame limit 5... Found I frame after 220336 bytes
>With frame limit 6... Found I frame after 99452 bytes
>TS package frame size needed for this video block: 6
>Maximum TS package frame size needed for this video recording: 6
>
>I need reports which number your stream resulted in (the "Maximum TS package frame size") and what you've tested 
>(Cable? Satellite? Terrestrical? HD, SD? Your country?). The result is interesting even if it is 5 or 6.
>
>Thanks in advance,
>Eike

Hi Eike,
In vdr 2.0.4 I have to add -lrt to the link command:
$ g++ -c framedetectortest.cpp 
$ g++ -o framedetectortest framedetectortest.o remux.o ringbuffer.o thread.o tools.o i18n.o sections.o channels.o device.o audio.o ci.o receiver.o transfer.o player.o osdbase.o status.o skins.o osd.o config.o font.o sources.o menu.o recording.o videodir.o timers.o epg.o dvbplayer.o menuitems.o remote.o keys.o interface.o plugin.o cutter.o themes.o svdrp.o eit.o eitscan.o shutdown.o filter.o sourceparams.o dvbsubtitle.o pat.o sdt.o nit.o dvbdevice.o diseqc.o recorder.o dvbci.o libsi/libsi.a -lfontconfig -lfreetype -lpthread -ldl -ljpeg
tools.o: In function `cTimeMs::Now()':
/storage/home/ingeborg/Downloads/vdr-2.0.4/tools.c:674: undefined reference to `clock_gettime'
/storage/home/ingeborg/Downloads/vdr-2.0.4/tools.c:655: undefined reference to `clock_getres'
/storage/home/ingeborg/Downloads/vdr-2.0.4/tools.c:659: undefined reference to `clock_gettime'
collect2: error: ld returned 1 exit status
$ g++ -o framedetectortest framedetectortest.o remux.o ringbuffer.o thread.o tools.o i18n.o sections.o channels.o device.o audio.o ci.o receiver.o transfer.o player.o osdbase.o status.o skins.o osd.o config.o font.o sources.o menu.o recording.o videodir.o timers.o epg.o dvbplayer.o menuitems.o remote.o keys.o interface.o plugin.o cutter.o themes.o svdrp.o eit.o eitscan.o shutdown.o filter.o sourceparams.o dvbsubtitle.o pat.o sdt.o nit.o dvbdevice.o diseqc.o recorder.o dvbci.o libsi/libsi.a -lfontconfig -lfreetype -lpthread -ldl -ljpeg -lrt

I see the following when running the command on recordings from digitenne, Netherlands:
$ ./framedetectortest ~/tmp/00001.ts 
Checking file at offset 0 
Without frame limit... Found I frame after 165816 bytes
With frame limit 5... Found I frame after 165816 bytes
TS package frame size needed for this video block: 5 
Maximum TS package frame size needed for this video recording: 5 
$ ./framedetectortest ~/tmp/00001.ts 
Checking file at offset 0 
Without frame limit... Found I frame after 324864 bytes
With frame limit 5... Found I frame after 324864 bytes
TS package frame size needed for this video block: 5 
Maximum TS package frame size needed for this video recording: 5 
$ ./framedetectortest ~/tmp/00001.ts 
Checking file at offset 0 
Without frame limit... Found I frame after 276736 bytes
With frame limit 5... Found I frame after 276736 bytes
TS package frame size needed for this video block: 5 
Maximum TS package frame size needed for this video recording: 5 
$ ./framedetectortest ~/tmp/00001.ts 
Checking file at offset 0 
Without frame limit... Found I frame after 141376 bytes
With frame limit 5... Found I frame after 141376 bytes
TS package frame size needed for this video block: 5 
Maximum TS package frame size needed for this video recording: 5 
$ ./framedetectortest ~/tmp/00001.ts 
Checking file at offset 0 
Without frame limit... Found I frame after 273916 bytes
With frame limit 5... Found I frame after 273916 bytes
TS package frame size needed for this video block: 5 
Maximum TS package frame size needed for this video recording: 5 
$ ./framedetectortest ~/tmp/00001.ts 
Checking file at offset 0 
Without frame limit... Found I frame after 205484 bytes
With frame limit 5... Found I frame after 205484 bytes
TS package frame size needed for this video block: 5 
Maximum TS package frame size needed for this video recording: 5 
$ ./framedetectortest ~/tmp/00001.ts 
Checking file at offset 0 
Without frame limit... Found I frame after 243836 bytes
With frame limit 5... Found I frame after 243836 bytes
TS package frame size needed for this video block: 5 
Maximum TS package frame size needed for this video recording: 5 

Kind regards,
Cedric




More information about the vdr mailing list