3 This may not work on memory-poor systems. More testing is needed.
5 It is recommended that you have at least 64MB RAM per DVB device,
6 not only for memory use of atscap but also for write caching to storage.
8 The maximum working set atscap requires for a 4 DVB-device system
9 is over 80MB. A single DVB-device can get by with around 20MB of maximum
10 memory usage, plus what is needed for hard drive cache to write files.
11 This is in addition to the kernel and various OS libraries, of course.
13 It's possible to build a system that boots to atscap instead of
14 login/bash, as long as all the modules are loaded and ready to run,
15 and all the libraries can be found (libc, libpng, librt, libatsc[?]).
16 A slow (400Mhz) CPU with 256M RAM should handle 4 DVB-devices nicely.
18 It's not much fun booting to single-user from my own testing of the
19 environment. It would be better to have PAM and a login for root to do
20 similar. This way a capture machine is not a useless piece of HDTV junk
21 and you can actually login to it and do other things with it.
22 This will help eventual goal of tiny system CD/USB boot.
25 Here are the latest memory usage stats on my machine.
31 EPG + helpers 3,145,824 (8192 events x 376)
32 ATSC + helpers 345,856 (4 tables + vc 83616 + mg* 245760)
33 MPEG + helpers 222,128 (3 tables + pa 74432 + pids 106496)
34 Text + helpers 429,672
35 Chans & Timers 143,360
37 Total static: 4,326,776 bytes
40 Total dynamic: 24,972 bytes
41 Total memory: 4,351,748 bytes
44 This is when capturing Letterman (static is same as above):
53 Total dynamic: 13,543,788 bytes
54 Total memory: 17,870,564 bytes
57 Old pchdtvr 1.0 was over 24M and older atscap versions were over 28M
58 of static memory usage. The static idle usage is much better now, with
59 the dynamic usage providing a little bit of memory help when not busy.
60 This is only something that users with 512M or less might notice.
62 Memory usage during cap is reduced with the smaller EPG, and some
63 creative bit shearing on the frames[] and sequences[] internal storage.
69 6,619,068 CAP INFO MANUAL
71 9,699,260 CAP INFO AUTOMATIC
73 15,105,764 CAP MANUAL FULL CAP
75 17,870,564 CAP VC TIMER and CAP VC MANUAL
77 Idle uses minimum memory because of no FIFO, EIT/ETT or frame/sequences.
78 Manual EPG info uses small FIFO and no frames/sequences or copy of EPG data.
79 Automatic EPG info uses same as manual with copy of EPG for multi-channel.
80 Full cap does not allocate frames/sequences but needs EIT/ETT plus big FIFO.
81 VC cap uses EIT/ETT for EPG, frame and sequence for xtscut, plus big FIFO.
83 HTTP usage adds some dynamic allocations but they are too fast to see.
84 It is important when designing small systems to keep these in mind because
85 some of them are large enough to push you over a 32M total allocation.
87 You need a 9M FIFO or else you can't edit and cap to the same volume at
88 the same time, but EPG info cap seems happy enough with the smaller FIFO and
89 editing. If you always edit to a different volume, you can probably reduce the
90 normal capture FIFO to 4M or so. Or simply edit files only when it's idle. :)
92 2.5MB is the minimum recommended FIFOZ but even with that you're going to
93 have problems if using the volume for any intensive compiles or copies. XFS to
94 a real-time partition might help but it's a lot of bother for so little return.
97 WHY is FIFO% always non-zero even with a small fast RAM-only EPG info cap?
99 Tupari reported a dvico nano DVB driver post-AOS bug that requires it
100 to wait a bit before reading the DVB demux output. This is why the FIFO
101 always starts out with non-zero FIFO max%. In case you were curious, it also
102 limits how small you can make FIFOZ for EPG info cap. Keep in mind that the
103 size of the DVB kernel buffer may make a FIFOZ of less than that size useless.