Set the cut path properly when a non-default output path is specified
[atscap.git] / TODO
blobb75f5c9d49356b156ba155486dcbdb94cdb1fda8
1 Updated 2008-Jan-01
3 Happy Birthday to Xtscut. It's 2 years old and cuts better than ever!
4 Happy Birthday to atscap. It's 4 years old and caps better than ever!
6 These are the aggregated TODO's for the whole atscap-1.1 package.
7 Some of these are low priority and others may not need to be done.
8 What is in [] may describe the status of the item.
10 all:
12     librt, some apparently don't have it. Make conditional compile atscap.
14 atscut:
16     STT related:
18          STT display (-a64 option) is cryptic and obtuse. Make human-readable.
20     EPG related:
22 DONE     In -g -q guide output: all EITs are showing up but some ETTs are not.
23         -q -g options show only changed tables and the EPG at the end.
24         [Fix is version number for ETT is not set if no existing ETMID.]
26 xtscut:
28     Display:
31 TEST     Keep aspect ratio after changing width and/or height.   
32         XVideo back end scaler seems to look smooth no matter what size.
33         x_resize_display crashes right now, but that's what will be used.
34         This will likely look terrible when using imlib rendering.
36     XFS/performance related:
38 TEST    Needs duty cycle limiter like atscut. Has one but doesn't work?
40 TEST    XFS->XFS on 2006 generation 300G PATA drives maxes at 110 MByte/sec.
41         Need performance data from users with new SATA 3G drives.
44     X widgets (buttons or other display objects):
46          Render via mpeg2 libvo abstractions to other than video_out_x11.
47         It has imlib2, XShm and XvShm output now, but more could be done.
49         Cut list display (will add LOTS of cycles to frame render)
50             Make this only show until next frame renders.
52         File-> to change the output path/name
54         Write: All, Even, Odd, Dump
56         > and >>, < and << navigation
58         Quit [use q key for now, or close the xterm that calls it.]
59             If you click the render window closer, it will close.
61     X keys:
63 TEST    BETTER? Right mouse always sets current threshold from pkt count,
64                 and then two other keys jump forward or back to next
65                 I frame that is at or below the threshold.
66         NO.     Does not seem to work as well as I hoped it would.
67                 Keep testing and trying ideas.
69 atscap:
71     TCP/IP socket related:
73          See about getting a registered TCP port number for atscap.
75          Method for activating live UDP broadcast from web UI.
76         The problem with UDP broadcast: it's bursty for single program cap,
77         with NULL and PSIP and possible secondary stream removal. -n should
78         help keep the bitrate constant and the player buffers full.
80          Use MSG_NOSIGNAL for all send() calls [DONE]
81         and check for EPIPE error for all send() [NOT ALL DONE YET].
82         [Still getting the occasional blank page.]
84          Instead of copying hosts.allow back and forth with -E specified,
85         extract only the atscap: entries from /etc/hosts and write the
86         result to the /dtv/ram/hosts.allow file. Do not copy this back
87         to the /etc/ directory. Also, load_config or test_epgs should
88         check for /etc/hosts.allow modifified and re-extract to /dtv/ram.
89         This might interfere with -E keeping the hard drive spun down.
90         [Only stopped doing the copy back from tmpfs to /etc/ so far.]
92          Use waitpid() to know when all web server threads have terminated.
93         This should fix the valgrind unfreed memory error on exit.
94         [The obstacle seems to be, with NPTL, pid is same for all threads?]
96     EPG related:
98          Standardize time staging colors for EPG and timers.
100 DONE     Spam add bug sometimes resets the spam list to 0 entries.
102          Grid shows FOX NFL at 3pm as n/a, but is correct at 4pm.
104          EPG grid weekday pagination should stay on current selected hour.
105         Need to play with the math a bit more to find the right combination.
107          EPG grid doesn't know what day is the last day in the EPGs until it
108         has read all the EPGs. Move weekday list to bottom of the grid.
110          Need form and list for small tiles too, but not tiny tiles.
111         Also need to put similar form and list in HTML3 EPG.
112             NO: make separate [timers] page with all this listed.
114          Make current scan chan in HTML3 chanlist italic. Bold is confusing.
116          dump epg html4 signal area div needs class for padding away from form
117             [ minor cosmetic detail, form is being moved to [timers] page ]
119          Need a form to enter weekday or volatile timers in HTML3
120          Need a list of search timers in big CSS EPG and HTML3
121          Need a list of volatile and weekday timers in HTML3
122             [ will eventually be in [timers] page for one-stop check ]
124          Buttons for CSS EPG, probably move the ones from main server page.
125         [Still deciding exactly how big the buttons should be.]
126         ?which buttons again?
128 TEST     Cellphone resets: multi-day EPG runs out of memory. Add 1-day toggle.
129         [Still runs out of memory unless junk filter used. IMS fixed it?]
131 TEST     After putting a timer on an event marked as junk, then using the
132         HTML EPG junk filter, the timer disappears from EPG because
133         build_pg_epg is removing the junk event from the list before EPG check.
134         [ Change HTML event loop to test every event and not use pg index. ]
136 TEST     Toggle [h]ide junk off in console EPG sets hide junk on, in 1s.
137         [Some place in the code pgm.hide is getting set to pgm3.hide.]
138         [ This may have been found finally. Look for lots of //////. ]
140     Timer related:
142 TEST     Manual load config via [_] key doesn't set channel. The wrong
143         channel shows up in other places in the console UI, too, which
144         is related to this problem.
145             [ artifact of LCN migration ]
147          Console key [o] for manual overtime override doesn't remove volatile
148         or reschedule weekday timer. Hitting [BKSP] stops the manual capture,
149         but if original timeslot isn't expired it starts same timer.
150         [ Normally, user wouldn't hit BKSP before original timeslot expires.
151           The real solution is to make it easy for the user to make the
152             timer longer, without having to resort to editing the config. ]
154     Channel related:
156          Peter Knaggs reports the Inscrutable Scrubs/Asian Channel Bug.
158     Console related:
160          Peter Knaggs reports running in user mode after reboot doesn't
161         create or give rights to atscap user for /var/run/atscap/ directory.
162         [ Fix init.d/rc.local to create directory and chown. ]
163         [ Need to add some help like this to the atscap man page. ]
166 TEST     Channel scan list is broken now. csp is starting at the wrong place.
167         No one really uses it much anymore. Those who have good reception
168         never need it and those who don't gave up a long time ago.
170     Capture related:
172          -s n: capture for n seconds should use ch.program number 
175 TEST     Restore old code that sets cap_vc from cap_pn in parse PAT.
176         It's restored but still testing to see if it's helping.
177         It may be cause of the Mysterious Asian Channel Bug.
179 TEST     -E EPG cap doesn't need volume check and shouldn't wake volume.
181          WebUI: Config page hrefs for select VC and manual cap start/stop.
182         [ Select VC is done but no manual cap control yet. ]
184          WebUI: Master Guide Table display. [Low priority, lots of items.]
185          WebUI: Virtual Channel Table display. [May be more items than MGT.]
187         Cable INFO caplog is generating footer EPG html but nothing else.
188         [There isn't going to be anything in the file worth seeing anyway.]
190 ********************************* Small Memory Model Implementation Notes
192           Since switching to dynamic allocation for FIFO and EIT/ETT,
193         rapidly selecting [p][enter] to capture current event from current
194         guide capture while the guide capture is in progress may crash it.
196           This one is intermittent. Making EIT+ETT static allocation helps
197         somewhat, but the SEGV moves from the freed EIT/ETT to the freed FIFO.
198         When both EPG and FIFO are static allocations, it doesn't crash.
199         The problem is caused by delays in thread synchronization.
201           Single CPU test shows the failure in atsc_parse_ett/eit and also
202         in atsc_build_payload. Dual CPU test shows the error occuring in
203         memcpy() with no usable backtrace to tell where it happened.
205           Workaround is to prevent [enter] in console EPG, during EPG capture.
207          It might still crash via http. Fix would be to force both [enter]
208         in console EPG and select from web page to advance the start time, if
209         currently capturing the EPG, same as adding a timer in console EPG.
210         This might cause some non-matching filename tests in the WebUI EPGs.
211         build_outnames uses the start time. Maybe a start time offset?
213           FIX: disabled [enter] in console EPG while capturing EPG.
215             or
217           FIX: use EIT + ETT + FIFO as static allocation.
218             Drawback: +17MB per instance capturing or not, small EPG model.
219                       Even more if using the large EPG model.
221         [Most of these issues are grouped under conditional USE_DYNAMIC.]
223          Conditional compile USE_CABLE will only allocate enough EPG for
224         one VC. This should reduce EPG memory use to 1/8th of broadcast
225         and get the overall idle footprint under 4MB. However, cable has
226         no EPG at all. The 1 VC wide epg[] is for importing broadcast EPG
227         from a single broadcast program number source and EPG file.
228         Someday an EPG source may be found for non-broadcast stations.
229         [It looks like, via top, cable 1 VC setting uses 2M idle footprint.]
231 ******************************************* End of Small Memory Model Notes
234 Outstanding requests or ideas:
236 DECIDE   How useful would a 50x50 polar chart be? Illegible data points?
237         [SNR toggle added to CSS server page, console users hit [w] key]
239 OLD:    New hg/CVS from linuxtv.org still fails with Bullet-Proof fixes
240 NEEDS   ported forward from old v4l-dvb Bullet-Proof HD3000 driver, but
241 NEW     backporting new features from hg/CVS to old 20060115 tree works fine.
242 TEST    Something is seriously broken in the new hg/CVS tree. Still looking.
243          [Chasing revisions is pointless waste of time. Staying on 2.6.16.x.]
245     Logging:
246         
247          Add log level bits to -l so user can decide how much to log.