Mercurial > mplayer.hg
view TOOLS/countquant.pl @ 9579:89d27a306886
*signed int vlc (needs only 5 lines of code so its no increase of complexity)
*moving subpacket shuffle type to the header
*encoding packet timestamps as signed difference from the msb_timestamp this is more flexible & cleaner
*optionally storing the keyframe flag for subpackets (in RLE)
*storing the timestamps differences for subpackets (in RLE)
*storing the signed differences of subpacket sizes instead of unsigned diff from some base size
*more compact encoding of common name/type for info packets
*removing fixed entries at the start of info packets (simpler)
*removing stuffing packet (uneeded, vlc itself allows padding)
*fixing sample code
author | michael |
---|---|
date | Thu, 13 Mar 2003 15:32:48 +0000 |
parents | 85ebbeeb913b |
children | 32725ca88fed |
line wrap: on
line source
#!/usr/bin/perl -w sub display_quants { $frames = 0; foreach $key (sort(keys(%quants))) { $frames += $quants{$key}; } foreach $key (sort({ $a <=> $b } keys(%quants))) { printf("q=%d:\t% 6d, % 6.2f%%\n", $key, $quants{$key}, $quants{$key} * 100 / $frames); } print("$lines lines processed, $frames frames found\n"); printf("average quant. is: %f\n", $quant_total/$frames); } $lines = 0; $thislines = 0; $quant_total = 0; while (<STDIN>) { $lines++; $thislines++; if (/ q:([0-9]+) /) { $quants{$1}++; } elsif (/ q:(([0-9]+)\.[0-9]+) /) { $quants{$2}++; $quant_total += $1; } if ((scalar(@ARGV) > 0) && ($thislines > $ARGV[0])) { display_quants(); $thislines = 0; } } display_quants();