1 REVISION HISTORY aka CHANGELOG for atscap.
3 [text] may be bug finder or request source, or might be the key [key]
6 ------------------------------------------------------------------------------
11 All features are in place and working here.
12 There are still some minor cosmetic bugs that
13 will be worked out in future 1.1.x releases.
15 ------------------------------------------------------------------------------
16 atscap 1.1 release candidates
21 added spam toggle to console EPG
22 added VC select to html3 config/stats page
23 added irealloc() for future use (EIT ETT EPG)
24 added more sanity checks to fifo with error logging
25 added more hold downs to various functions when in -S mode
26 TEST added tsid_mutex: may be useless, never called by threads?
27 added sort_tsids to save_tsids
28 added build args to load config parse_search parse_ztime
29 added to find_stations: ATSC or NTP time setting w/o TZ set
31 changed console EPG only shows current selected program
32 changed console headers to reflect current view (non-cap)
33 changed spamlist tracks time of spam event not found time
34 changed find_spam to test_spam_name
35 changed test_spam to test_spam_event
36 changed *alloc strategy to match common.h
37 changed init_atsc memsets, bad idea, changed it back
38 changed find_stations save config doesn't blank-pad fields
39 changed other load_config options to use build_args
40 changed load tsids calls save tsids (and sort_tsids)
41 changed ts capture doesn't call save_tsids (temporary fix)
42 changed find_stations exit doesn't show "DVB closed" message
43 changed find_stations queries the user for auto EPG
44 changed log_path set to same as out_path (or -p path)
45 changed test_luser more checks and directory creates
46 changed test_event_status checks if .tsc file not 0 bytes
47 changed index html3/4 to check if .tsc file not 0 bytes
49 TODO fix default color for html4 hrefs dark blue, add style
51 fixed rapid http spam list entry resets spamlist to 0 items
52 fixed build_stats_html3 only displays VC info if capturing
53 fixed build_stats_html3 to use s->pkt for per channel stats
54 fixed If-Modified-Since: 304 Not Modified handling errors
55 fixed find_stations pkt.count /0 error when bad reception
56 fixed USE_DYNAMIC ts_capture freeing eit/ett too soon [pknaggs]
57 fixed ts_capture frees fifo before both threads done [pknaggs]
58 fixed -S doesn't try to set the time, only shows calc [ivary]
59 fixed -S ATSC STT time average, try #2, looks better: +27s out
60 fixed fifo problems with USE_DYNAMIC defined and undefined
61 fixed show_static_mem didn't count static eit[] ett[] tables
62 fixed allocations too large for eit[] ett[] w/o USE_DYNAMIC
63 fixed load_tsids ignores bogus lines
64 fixed parse_volatile_timer didn't work from Web UI
65 fixed html4/3 epg gets some wrong weekday links at end of year
66 fixed cursor in wrong place when find_stations exits
67 fixed find_stations quits instead of running atscap [pknaggs]
68 fixed http_add_epg_timer NOW timer crashes EPG cap [pknaggs]
69 fixed load config trying to parse junk data
73 extracted common.h code for atscut and xtscut
75 fixed -y option Video ES extract (still has some PES/UPS junk)
78 added show keyhelp and show config to video overlay [?] key
79 added some shading and smooth corner algorithms
80 added support for fast XVideo Intra frame rendering
81 added support for Video Elementary Stream cutting (.es files)
82 added build_esx/tsx (build_tsx fallback is "atscap -s" )
83 added stream position visual indication, should match MMB
84 added -g option [g] key sets GOP broken flag (TS only)
85 added load/save configuration to /etc/atscap/xtscut.conf
87 fixed I and P frames drawing on same line, missing break;
88 fixed GOP broken link wasn't detecting every time
89 fixed input scan wasn't detecting video PID properly
91 changed P & B lines drawn with 2 calls to XDrawSegments
92 changed -k0 method to try to find good partial last Sequence
93 changed to dynamic frame allocation for larger files
94 changed xtscut -h usage text to reflect new options
95 changed xtscut man pages to reflect new options
97 ------------------------------------------------------------------------------
101 added test epgs system(ntpdate) with non-numeric Z-line config
103 fixed DST change gets weekday timer start time wrong
104 fixed load_tsid parameter list pointers off by 1 [ivary]
105 fixed find_stations write config has wrong data in fields
108 sequence write display at end of -s was off by +1 (-1LL term)
111 code cleanups and imlib2 support
112 cosmetic changes from sf users, see xtscut.c: 1.2.8 - 1.3.0
113 new options -a -k -n -o, new keys [1] [a] [s] [t]
116 added clock_gettime uses optional compile -DUSE_LIBRT
117 added -DUSE_IMLIB* and imlib*-config scripts to set MFLAGS*
119 ------------------------------------------------------------------------------
123 added dump_epg_grid html3/4 to show 3 hour grid of all epgs
124 added weekdays to dump epg grid header
125 added mutex for dump epg grid
127 added [g] key: show master guide has size/no-VN errors in red
128 (This is only for compliance testing. It's not used.)
130 changed log output redux
132 fixed timer add in HTML3 EPG: new format is minutes not seconds
135 added x_set_font to allow different sized fonts
137 changed font size for timestamps at top and cuts at bottom
138 changed I-frame timestamp display to handle variable sequences
140 It gets timestamp wrong for some 3:2 pulldowns with
141 Repeat Last Field set in the frame header, like FOX does,
142 but the timestamps are only used for display, so it's OK.
144 -----------------------------------------------------------------------------
148 added t->etmid to get_timer_add_event
149 added mutex hold to serialize dump_cap_log
150 added 'All' button: build_epg_top for CSS multi-day/pgm format
151 added console timer list, [enter] key adds current EPG event
152 added weekday/volatile href to delete what epg form adds
153 added volatile timers w/o etmid weekday timer list
154 added build_args and build_form_args to help with parsing
155 added epg form for weekday/volatile timer entry to CSS EPG
156 added save config has more descriptions of parameters
158 changed HTML EPG add search uses channel info
159 changed dump epg html4 divider logic for s->yday -1 or >
160 changed default WWW_PORT to 1380
161 changed dump epg html4 output redux, shows 1 day/1 pgm
162 changed test epgs uses get next meridian
164 fixed weekday divider disappears when aged filter enabled
165 fixed load_epg HTML epg limiter s->yday (split year logic)
166 fixed [w] key missing refresh for headers and channels
167 fixed show_channels frequency field missing a digit
168 fixed show_channels clears scan_freq, loads epg too often
169 fixed parse_weekday_timer didn't clear qstat
170 fixed bug in big CSS EPG weekday select in weekday timer
171 fixed load epg sets sig.yday to first event yday
173 TODO? move above comments about cable to atscap man page
175 removed USE_EPG_MID, only using get next meridian now
178 fixed test_eit_descriptors only tested first EIT descriptor
179 (A/52 audio descriptor seems broken, reports as channels 1/0)
181 ------------------------------------------------------------------------------
182 1.1-rc9p-q 20070821 looking good so far
184 added last cap time to sig_s to improve stats math
185 added more output redux in refresh.* for remote console
186 added video and audio sizes/rates to idle CSS cfg stats page
187 added PMT second loop parses audio descriptor
188 added frame rate parse to SEQ header mpeg2_video_pes test
189 added auto-TSID list build to find new stations on cable
190 added load/save tsid for find stations and save on ts capture
191 added VC selection to web server config page
192 added [c] key to VCT display, selects next usable VC w/in PTC
193 added dump cap log shows video frame summary
194 added epg download S config option for remote epg via wget
195 added atscap.tsid.vsb/qam so -S will keep user supplied names
196 added FE_READ_BER to [w] key display to help tune antenna
197 added console packet stats are saved per channel
198 added dmx_reset to possibly solve tupari's DViCo nano issue
199 added test_luser creates index.html in cap and cut dirs
201 TODO? change parse channel to put .pn,an after ptc
202 TODO? change save config to use new parse channel format
204 TODO changed scroll show channels and chanlist, needs more work
206 changed atscap.1 man page to reflect current options
207 changed CSS cfg page, build stats dl bolds the list header
208 changed CSS for build head html4 and epgtop filters/help
209 changed parse_channel cleanup; add pnx and pnxf fields
210 changed test_epgs copies previous ch.epx if pnxf matches
211 changed test_epgs copies previous ch.vc if PTC matches
212 changed ts capture to save guide if epg test doing cap
213 changed find stations uses TSID to setup logical config
214 changed timers save as logical channel order
215 changed parse channel ptc[] load order to logical not physical
216 changed cable reserved bits handling
217 changed build_cnav/sigs_html4 italicizes current channel
218 changed init_globals clears event name and description
219 changed reschedule_timer clears event name and description
221 fixed get timer add allows timer for tomorrow if after 'now'
222 fixed parse volatile yyyymmdd format checks for dst
223 fixed web interface sets timer with wrong pgm# but ch ok
224 fixed show channels CPU hog on idle and > user_lines display
225 fixed vc.name/vc.cname reflects vct and pmt component names
226 fixed a /0 in dump_cap_log preventing init cap marker dump
227 fixed ?v= http_scan_one for logical channel number
228 fixed first capture before vc loaded has junk at start
229 fixed test_packets checks cap_pn not vc, cleans junk at start
230 fixed build_pat created wrong program number and pmt pid
231 fixed build_pat sets syntax, reserved bits in r[1]:7,5-4
232 fixed build_pmt sets syntax, reserved bits in r[1]:7,5-4
233 fixed handling for local comcast cable, YMMV
234 fixed http_index_html3/4 .tsx check wrong filename
235 fixed? http_index_html3 missing alt tag for XTC
237 fixed missing close after shutdown when accept refused
238 fixed FOX and MNT sending insane number of Intra frames
240 cleanup whitespace; added some, removed other comments
242 removed frequency return display from [w] keys
244 ------------------------------------------------------------------------------
246 1.1-rc9o 20070618 Web EPG and server page have Cascading Style Sheets
248 added more checks to test_luser: /etc/atscap /var/run/atscap
249 added build_head_html3: single channel scan href to match html4
250 added build_stats_html4: black header is no packets received
251 added CSS version of ATSC + MPEG stats to new CSS server page
252 added free space check at start of capture
253 added SNR signal display option to new CSS server page
254 added scan png fades in sigchart to uncover APG ON/OFF in scan
255 added touch signal charts to toggle scanning one channel
256 added gradient chrome effect to buttons and epg tiles
257 added server config CSS buttons to main server page
258 added test_var_procpid to check for running instances
259 added build_*nav_html and other pieces for CSS server page
260 added console_getch to chaos to SIGINT during chaos
261 added calc_first_weekday to help daybits change in CSS EPG
262 added build_epg_weekdays to check status or change daybits
263 added USE_POWERDOWN scope: DVB open/close
264 added test_luser and moved access checks from parse_args
265 added defines for CSS_KERN sizes for large/small/tiny tiles
266 added build epg filler for CSS EPG grid mode
267 added truncate_text_kern_box san-serif for CSS EPG tiles
268 added chaos_loop to make chaos try harder if enabled
269 added dump_epg_xhtml and toggle for HTML or CSS EPG
270 added style.css styleheet for XHTML EPG via CSS
271 added large, small and tiny tiled EPG via CSS
272 added text/css content type reply for .css files
274 changed build_head_html3 to reflect latest format
275 changed free check prevents timer+manual captures if <1G free
276 changed/fixed atsc+fifo free to conditional on USE_DYNAMIC
277 changed macro cleanups for AOS strength [tupari]
279 fix for XGL + xtscut + imlib:
280 set envar XLIB_SKIP_ARGB_VISUALS=1
282 TEST timer[0].pn is 0 during any timer cap, but cap pids looks ok
284 fixed HTTP security hole: hosts.allow ram copy is not GET-able
285 fixed lltoasc to not count - sign as part of commas
286 fixed main config new CSS object floating, no cfgleg div
287 fixed two files being held open that didn't need to be
288 fixed sort_timers skips timer[0] if timer[0] is streaming
289 fixed if web hits scan while console in epg, scan doesn't run
290 fixed parse weekday timer didn't set t->pn, isdigit breakage
291 fixed load spamlist updates less often, logging reduced
292 fixed test_epgs doesn't run immediately after capture
293 fixed channel not set when starting with active timer
294 fixed test_luser re-arrangement and cleanup
295 fixed write_pkt_block stops capture on write error [teknutz]
296 fixed filecopy opens source files read only [pknaggs]
297 fixed -E energy save: stylesheet not copied to tmpfs [pknaggs]
298 fixed test epgs retrying bad guide cap too often
299 fixed find_search_event missing weekday and channel filters
300 fixed build outnames not called before AOS, wrong name logged
302 removed all USE_DVB_* except USE_DVB_EXPERIMENTAL
303 removed redundant code in show_fe_status
304 removed sub dir_index nav build_index_html
305 removed isdigit. locale is not currently set.
307 validated Transitional level for XHTML 1.0 plus CSS
308 (Ampersand in event text are the only warnings.)
310 ------------------------------------------------------------------------------
314 =============================================================================
315 TODO: tupari reports DViCo Nano DVB API driver is broken and needs
316 close_device/open_device at start of capture.
318 Can use -E option to open/close the device, but back-to-back
319 captures will leave the device open. Someone needs to fix the nano
320 driver instead of trying to build a work-around for it in atscap.
321 =============================================================================
323 added mutex to http_index_html to help with race condition
324 added http_glob_sort and http_cgi code to set idx_sort
325 added title, legend toggle & scan icon to dump_html_stats
326 added build_html_foot for consistent html footers
327 added gigabytes free to http_index_html
328 added wait for start of timer since chaos() ends early now
329 added -a AOS check to be inverse of old arg -b bogus
330 added check for no auto epgs to test_epgs
331 added SIGSEGV to handler and and sig_kill nz to signal_test
333 changed http_index_html to sort by date or name
334 changed [z]ap key forces 60s test epgs hold down
335 changed dump_cap_log code cleanup, float precision
336 changed web_legend enabled for new users
337 changed dump_epg code cleanups for w3c validate
338 changed dump_html_stats code cleanup for w3c validate
339 changed build_html_stats removed <hr> from <pre> section
340 changed chaos() only does AOS check if -a specified
341 changed send() to use MSG_NOSIGNAL to prevent SIGPIPE
342 changed loglevel for http_request to reduce log clutter
343 changed sig_kill check in console_scan to stop immediately
344 changed 'No EITs' to 'No EPG' to clarify status
345 changed cap log rate display and shorter device
346 changed 'EIP' to 'addr' in backtrace dumps
348 disabled EPG [enter] during EPG capture because of SIGSEGV
350 fixed ch.html needs touch because missing file is ignored
351 fixed refresh.vstats cap_pids not updating with new PMT
352 fixed test_epgs timer0 hold down, log the hold down
353 fixed frequency offset negative when no signal lock
355 moved test_epgs hold down code to test_epg_hold
357 removed -b and inverted meaning arg_bogus
358 removed fine tuning adjust, not fine enough
360 validated with w3c validator: dump_cap_log, added png
361 validated with w3c validator: dump_html_stats, added png
362 validated with w3c validator: dump_epg, added png
363 validate failed but still OK: http_index_html uses <pre><img>
365 ------------------------------------------------------------------------------
368 tupari request: x86_64 needs RIP not EIP for backtrace dump
369 tupari request: set channel delay reverted for DViCo driver
370 tupari request: strength threshold and channel delay defines
371 fixed [l] - [p] - [enter] crash during EIT & ETT parse
372 moved experimental FE_GET_FRONTEND ioctl to get signal lock
373 moved all luser checks inside 0 != getuid() check
374 removed v4l defines, vapi_text, obsolete v4l comments
375 removed C style comments and extract flags from this file
377 ------------------------------------------------------------------------------
380 missing break in show signal caused log to fill up
382 ------------------------------------------------------------------------------
385 added SNR dB display after signal strength [w] key
386 removed all old v4l code
387 removed delay on set channel, is in latest driver patch now.
389 ------------------------------------------------------------------------------
392 changes for latest driver additions [w] freq offset
393 revert to low signal strength % instead of NO LOCK/NO SIG
395 ------------------------------------------------------------------------------
398 fixed display of event start time if across a DST meridian
399 revert to save config start times in machine readable
401 ------------------------------------------------------------------------------
404 prefix atsc_ to ATSC related function names
406 ------------------------------------------------------------------------------
409 changed parse args to test non-root luser access rights
410 changed Makefile to use libtz to address new DST rules
411 fixed save spamlist checks for NULL return, logs access error
412 tested DST rule changes
414 ------------------------------------------------------------------------------
417 added optional compiles for backtrace dump as .bt or .sh
418 fixed vanishing config file from mistakes in signal handler
419 fixed find stations finding small subset of all stations
420 reverted save_tmpfs to use system( cat >> ) to append log
422 Find why copy_file with append flag set appends endlessly.
424 -----------------------------------------------------------------------------
428 added btfd.sh script dump for QA testing of SIG* faults
429 added signal handler for SIG* faults to help QA testing
430 added reset_mg to correct problems with KHCW rolling MGT
432 changed variable name eit_locks to epg_locks
434 fixed KHCW rolling MGT version does not trash EPG anymore
437 ------------------------------------------------------------------------------
441 MEMORY OPTIMIZATIONS:
442 A lot of memory has been dynamically allocated with atscap-1.1rc9a.
443 Some more work needs to be done to reduce the idle footprint below 4MB.
445 added sort pgx for stations with non-chronological EITs KFTH & KTFK
446 added copy file (w/glob & append) replaces system() in load/save tmpfs
447 added timer zap and timer reschedule for console scan simplification
448 added legend and extra edit indicators to http index html
449 added [cut] directory to build html head, if [/dtv/]cut exists.
450 added NULL to end of stream on/off ioctl to silence valgrind complaints
451 added memsets to some pthread structs to silence valgrind complaints
452 added pedantic char typing for a few places Peter reported
453 added some descriptive help for master guide and cap log display
454 added [m] key to display memory stats from [?] help screen
455 added mutex to build sig png
456 added sig pngs and scan-all option to build html stats
457 added man page documentation for 1.1 release
458 added conditional compile for non-html epg output, is not being used
459 added signal graph .png output idea from old XPM idea
460 added signal red/green scan href for signal scan on/off
462 changed config file name format to atscap#.conf, removed extra .
463 changed signal strength png filename to include instance#
464 changed free space display to http index html to help -E sleep
465 changed http index html zap or rec img href, zap to left now
466 changed zap/edit only allowed for *.ts in [cap] or [cut] dirs
467 changed test spam to use utsnow for spam time; spam age-out disabled
468 changed FIFO size is dynamic now, EPG cap small, timer/manual large
469 changed EIT and ETT payloads to dynamic allocate for capture only
470 changed frames and sequences allocated for single pgm cap only
471 changed cpu and output redux in refresh .pstats, .vstats and .estats
472 changed volume wakeup to test wakeup and tuned to one wakeup
473 changed config C line GTO to enable/disable instead of minutes
474 changed epg3/2 swap: epg2 test guides isn't optional, epg3 http is
475 changed KHCW rolling mgt hold disabled, epg/eit/ett clears with MGT
476 changed STT display to use the Z:delta so only see new variance
477 changed parse stt variable names and simplify the hold downs
478 changed test packet NULL packet processing returns sooner
479 changed test packet vc cap only counts CC errors if pid in cap pids []
480 changed program number instead of VC # in dump epg navigation hrefs
481 changed dump epg only called by http request and test epgs
482 changed color and swapped meaning of (epg*)reload.png and scan*.png
483 New colors for each image are: Green is start, Red is stop.
484 The antenna is now for signal scan to adjust your antenna.
485 The 'remote' image with the circle is EPG load/stop now.
486 Zap48 is replaced with EPG stop img.
488 fixed NULL check after sequences allocate from peter knaggs
489 fixed fifo write NULL: EPG finds search event matches now, then segv's
490 fixed [r]eschedule not timer0 was stopping current cap
491 fixed build html head uses <th> instead of <td> to center sig data
492 fixed missing fflush at end of save spamlist
493 fixed more links as relative links for file->open browsing (no cgi)
494 fixed EPG ts capture sets cap pn/vc/va to -1 after set channel
495 fixed test mpeg2 cap pn check incorrect for EPG capture
496 fixed console refresh of EPG when leaving help screen
497 fixed dump cap log EPG vs event cap location wrong
498 fixed test epgs epg2 imalloc pointer return
499 fixed bug in ifree: id text not moved up the list
500 fixed EPG load now 3hr meridian dependent, not EIT-01 event 1
501 fixed missing png on new start: created in parse channel
502 fixed missing html on new start: created in http init
503 fixed TIMER NAME MAX too short, truncated .p from GhostWhisperer@
504 fixed missing port# in Location: reply that is *not* relative href
505 fixed missing ram path adjust in http request
506 fixed dump epg html past end of year day#, can't href past dec31
507 fixed dump epg html 7 days forward didn't show month and mday
509 revert sigscan does not prevent auto-epg capture
511 removed zap file from EPG, but kept zap timer for current cap
512 removed mgx structure, nothing was using it
513 removed refresh href. may need it restored for no-dressing browsers
514 removed http_close_sockets until know why sigterm is broken
516 tested: sig chart .png Z_BEST_COMPRESSION against Z_NO_COMPRESSION:
517 results: BEST compression for small file size & fast page reloads.
520 The new wakeup code should work equally well to wake up the volume,
521 as well as the DVB device. This is not yet completed, but may be soon.
522 Most of the code+ideas are in place to do it but the failures with the
523 DVB drivers, that have been mostly solved now, prevented further work.
524 Some work on HD3000 driver may be needed to power down cx88+or51132,
525 if closing the device is is not good enough. It should be.
528 Add a weekday timer for today after now requires config reload.
529 Moths must have flown in when trying to fix it last time around.
530 Regression testing is needed on console weekday timer addition.
532 Still tracking intermittent event/description mis-match.
533 It hasn't occurred in a few weeks. Fixed it? Keep collecting data.
535 Adding/remove event from web ui sometimes gets event wrong.
536 This one cropped up recently and not sure of the interaction yet.
537 It happened once after adding sort_pgx. Forgot to make eclean?
539 --------------------------------------------------------------------------
544 added volume spin-up wakeup to test timer T0 minus 30s
545 added -e option for energy saver support via tmpfs for epg and log
546 added support for optional STT seconds offset on Z config line
547 added http 1.0/1.1 request uses select for 1s keep-alive timeout
548 added E_MTX to disable EPG unlink if no timer and event.ts is new
549 added astrncpy, is more efficient than strncpy() writing zeros
550 added ascii_xlate to event truncate for file system normalization
551 added xtc:// to build html index to invoke xtscut, smiley img
552 added get dvr count for html header
553 added spamlist age out to remove 30-day old spam events
554 added thread for dvrlog to serialize it
555 added validate config duplicate timer check
556 added more table size checking to build mgt text, is display only
558 changed volume status update to reduce cap drive spin-up events
559 changed volatile timer save format to human readable, plus examples
560 changed usage/comments to reflect latest options. Forget anything?
561 changed http test allows checks both ip address and name
562 changed -b does not load guide indefinitely, but does skip AOS
563 changed order of http accept tests: localhost, mask then hosts.allow
564 changed hold down on show program guide to allow filter change
565 changed signal scan headers and capture status headers
566 changed fifo input/output loop threads are detached, not joinable
567 changed test epgs stays on last channel captured
568 changed out_name checks to out_file checks
569 changed SIGINT ignored during cap
571 FIX reschedule timer restarts current timer
572 fixed parse volatile timer new format bug
573 fixed netmask default cleared instead of set
574 fixed http test allows was failing when gethostbyname failed
575 fixed build cap text z color, legend and range errors
576 fixed -r replay skips AOS in chaos()
577 fixed scrolling EPG when exit to timer list makes timer #'s negative
578 fixed -p breaks http, didn't copy directory to http arg wroot
579 fixed pid_c lost in the shuffle, used to hold down test epgs
580 fixed http local_name too short
581 fixed ubuntu padding strncpy bug in http index html
582 fixed adding timer from epg with weekday bits gives wrong start time
583 fixed signal strength color in show channels and show cap status
584 fixed ts capture thread synchronization. RIP Van Winkle/AOS hang
585 fixed dump cap log dumps blank log, utsets reset too soon
586 fixed http add timer ignores adding overlap of current timer
587 fixed move weekday timer, W not T line
588 fixed? .tsx file not generating every time
590 removed ts capture loop thread
591 removed some static variable definitions
594 Web UI performance should be much better with keep-alives.
595 AOS hang in ts capture is fixed with better synchronization.
596 Older linuxthreads-0.10 gives diff getpid() for each thread.
597 Newer NPTL gives same getpid() for each. /bin/top is diff too.
600 *** WARNING *** Some drives may fail prematurely with many spin-up/down cycles.
601 -E Energy saver RAM checklist: 20061215
604 hdparm -S60 /dev/hda /dev/hdb /dev/hdc /dev/hda
606 hdparm -S60 sets spin-down timeout to 5m of no activity.
608 atscap -E should allow capture drive to save power when idle,
609 but don't leave browser in the EPG, or it wakes up every 30m
610 to check for existence of .ts files matching event names.
625 build html stats done
629 test timer wakes up volume done
630 hosts.allow is ram copy done
632 *** TO DO *********** ALSO SEE FILE TODO *******************************
634 TODO gethostbyname for allow entry, but ip address is much faster
636 TODO Fix file type check code in http index html, not remove it.
637 Can't find now? Where did it go?
639 TODO html wish list items:
640 manual and weekday capture control, weekday imgmap/similar
641 signal graph strength vs time png, DONE, see 1.1rc9a.
643 --------------------------------------------------------------------------
647 added missing mutex inits for log and epg mutex
648 added http load/test allows for TCP-wrapper-like low-security
649 added nanosleep after pthread create in ts capture
651 changed test epgs uses mutex for hold down, pgm scan is status
652 changed port in mpeg:// url so mpeg.sh can do http playback
653 changed http request logs remote number not name
654 changed build html head to remove superfluous font/color markup
655 changed parse www bind to resolve -w hostname for use via NAT
656 changed http index html to use abstracted host name
657 changed build html head to use abstracted host name
658 changed http response to use abstracated host name
659 changed ts capture loop exit method
661 fixed compile bug when not defining USE_WWW
662 ?? fixed ts capture loop open write fail with blank filename
663 fixed cap fail scrambles stats page. init stats at top of ts cap loop
664 moved AOS loop to chaos function
666 todos from rc6 moved forward and re-evaluated
668 ----------------------------------------------------------------------------
672 Peter reports this version "puts KQED-HD back on the air".
673 This may help other users that have stations sending 2 packet PMTs.
674 The ATSC spec allows it, but very few have more than 2 audios.
676 changed xine:// to mpeg:// for -w option, more generic
677 changed get sync to try to sync on a single 21 packet block
679 fixed uintodot was truncating ip:port string
680 fixed http index html does not gen zap href until 60s after modtime
682 renamed some items in tts_s to not be same as frequently used names
684 restored write_pkt, is too laggy without it, will figure flush later
686 TODO: *** DONE in 1.1-rc7 ***
687 change www_host populated from arg_whost, no need for dtv in hosts?
688 no: if machine has two different ip address, one local and
689 one remote, need to use different /etc/hosts for each client.
690 Reinstate the name and change all IP#s to name.
692 -----------------------------------------------------------------------------
697 Cable testing: all scrambled but can see PAT + PMT. No MGT/VCT.
699 addded delete .tsc file when capture file is deleted
700 added select() check to fifo input loop and get sync, is broken? [WIP]
702 changed log level on load spamlist spamfile not found
703 changed parse pat and parse pmt do not check reserved bits unless -A
706 fixed F: missing from getopt, -F[1...5] did not work
707 fixed parse pmt needs to make separate pmt payloads for each vc
709 fixed test packet falls to test mpeg2, doesnt check table/psi=1
710 fixed parse pmt was breaking KQED-HD (post 8pm) with 2 packet PMT
711 KQED-HD is still partly broken with 1.1-rc5a-c, but it
712 seems to be xine player not liking the 2 packet PMT, too.
714 todos from -rc4 moved forward
716 -----------------------------------------------------------------------------
720 audit fifo; valgrind errors; man gcc -fstack-check for multithreaded;
721 comp.os.unix.programming mentions signals need sa_mask init.
722 -fstack-check causes it to crash in asnprintf? odd.
724 audited fifo code, found one wrong fallthrough when 0 read return
725 audited fifo again, reduced number of pthread yields
726 audited asnprintf calls, found a few missing parameters
727 audited dvrlog calls, found a few missing parameters
729 added test clock res to find most accurate clock
730 added sa_mask init to emptyset for signal init
731 added load volatile yearmmdd:hh:mm:lm:name format, save is still uts
733 changed AOS back to 9 tries for wobbly stations
734 changed find stations runs automatically if no config
735 changed find stations uses Dxx for SID, old station # tupari request
736 changed parse tvct tries harder to get callsign, not "i", paxson.
737 changed frames sequences to use differential for smaller data type
739 fixed WHO macro to stop gcc 3.4 from complaining
740 fixed the mutex variables so gcc doesn't complain anymore.
741 fixed dvrlog init removed, let dvrlog handle it.
742 fixed rip van winkle bug that was killing main thread. bad stack.
745 **** TODO **** DONE (back to around 21m resident instead of 30m)
746 6h of frames and sequences should require just under 3mb of ram.
748 frames and sequences array memory redux:
749 frames can be 16 bit, using 2 bytes instead of 8:
750 16:15 frame type 01-03, 00 is invalid
751 14:0 1-16383 packets since last frame, 0 is invalid
752 Since this is largest list it will show biggest reduction.
753 0 or -1 can mark end of list.
755 sequences is reduced from 8 to 4 bytes:
756 32:0 bytes since last sequence
758 output can save in current format for xtscut and hexdump
760 ----------------------------------------------------------------------------
765 added help on setting up for user mode to quickstart part 3
766 added defines near top for browser colors so user can change easily
768 changed sequence/frame allocation to reduce gcc pre-processor load
769 increased cap log to 12hr limit with same for sequences, frames
771 fixed wrong cap stat range check in show/dump cap log/test pkt stats
772 fixed -b allows long info cap. timer start should kick it out
773 fixed add current event while info cap doesn't start event
776 *** DONE ******* TO DO *************** all but last done in 1.1rc4
779 TODO Find why main thread is croaking, yet capture threads keep going.
780 This is the AOS#4 hang, aka Rip van Winkle sleeping bug.
781 It's still capturing but the console is dead.
782 Problem was dvrlog/asnprintf stray parameters not getting checked.
783 This caused stack to pop wrong values in main thread. Whoops.
784 Use dummy asnprintf/dvrlog to help compiler find too many/few parms.
786 DONE find stations should check first letter for K or W match
787 and try next VC name until it finds one with K or W first char
788 KBPX Boston PAX network has this problem. "i" is first VC name.
791 TODO? EPG generated in RAM only except for save at end of capture.
797 ---------------------------------------------------------------------------
800 added table of contents, moved http config to quickstart
801 added http response send support for ram epg update [WIP]
802 added http start stores MTU as wss->mtu for http response
803 added [m] key to show vct for MPEG PAT/PMT display toggle
805 changed help to reflect correct netmask usage
806 changed allow 127.x.x.x ip address for -w option
807 changed -W -R exit with error if screen is not executable
808 changed find stations to 45% signal threshold
809 changed http response to use wss->mtu for output byte count
810 changed ts capture loop to stop waiting when thread pidi/o cleared
812 disabled low QoS auto-zapper. It needs more work.
814 fixed -W exits with error message if GNU screen not found
815 fixed parse www bind to generate correct netmask
816 fixed call to http test netmask, wrong address was used
817 fixed http auto epg set wrong pgto value, was 180 now 10800
822 DONE tupari reports he can't bind to loopback. Removed 127.x.x.x check.
824 DONE tupari reports -W does not give error when screen not found.
825 Also observed here is that -W crashes on capture start, and gdb
826 is not very helpful in this scenario. No screen exits atscap now.
828 DONE tupari reports find stations ch15 bogus detects and hangs. He also
829 reported a freeze and hard lock on kill. killall might fix lockup,
830 but still need more data to see if freeze is same one I've seen:
832 The wall clock works but the capture clock doesn't. Low AOS?
834 If I recall, testing was showing input thread dying but the
835 output thread and parent thread were still running, but there
836 is code in both loops to check cap now being cleared. Join order?
838 *** TODO audit other strength checks
840 DONE Test MTU > 7200 for r8169 1g enet. Test failed. Back to 7200.
841 I guess the driver notes weren't kidding. Over 7200 is broken.
843 DONE Testing is underway with intentionally bad antenna positions
844 to see if the freeze is related to driver failure. The normal
845 observed scenario is DVB-API returns junk packets and everything
846 keeps going even if it's all being marked as junk.
849 ------------------------------------------------------------------------------
851 1.1-rc1 20060815 sent to tupari, haven't heard from rc0 recipients yet
852 gcc 3.3.5 and 2.96 audit shadows: -ansi, -pedantic compiles
853 gcc 3.4.4 audit warn discarded type: __FUNCTION__ to define WHO
855 add daily primetime href to dump epg
856 added dvrlog to replace syslog to daemon.log
857 added cap fail and epg fail error display to dump epg
858 added ATSC PSIP status indication to EPG if no current event
860 changed EPGch.html saves in pg/, changed build html stat href to match
861 changed show cap status sets timer status T_DONE if below 50% QoS
862 changed show timers removes timer with T_DONE status
863 changed show channels signals gives avg before moving to next channel
864 changed delete order, ts file last makes html refresh remove log href
865 changed http log uses dvrlog, trunc NL (chg for full request/response)
866 changed http del timer checks program number, too
867 changed epg refresh time by a few seconds to spread the load around
868 changed epg current event field to 255 char limit
870 fixed http reload epg does not work when timer list is empty
871 fixed no delete href for spam event with timer in future
872 fixed no end-of-cap QOS/AOS fail status because delete timer reset it
873 fixed endless loop on search volatile timer that has failed AOS
874 fixed add/remove search doesn't erase timer0 if timer0 match is active
875 fixed -x, extra : in getopt whoops, 1.1-rc0 use -x0 -x1 workaround
876 fixed http version number parsed incorrectly
879 TESTME dump cap log event name/description audit. Observed stale data.
881 TESTME Proxy http failure, no imgs, may be related to keep alive fail.
883 DONE Cap transfer stops on signal-dropout and hangs cap, zap still worked,
884 but show cap stats should catch QoS low and abort the capture.
885 Not sure if cap stats clock was still updating. Will test more.
886 The auto-zapper is working better now, maybe too agressive on zap.
888 DONE Endless loop on search volatile timer that has failed AOS, for
889 the same reason delete volatile search timer puts back on list.
890 See if lzpgt can be used to prevent endless loop.
891 Problem was out of order logical sequence for delete and lzpgt.
893 DONE Web epg event date more than 16 days old will give full date.
894 This is for stations that stop updating their guides, like KTBU.
896 DONE Channel scan gives avg on last ch loop, instead of possible bogus
898 DONE Log existing adds href to build stats html even for EPG
899 have to change build outnames to pg/EPGch.html
901 NO Merge colors/filters legend? The fields have nearly the same meaning.
904 noticed KHOU has wide variety of spam. add st to spamlist to
905 track last start time seen. add age-out to remove items >30-day old
906 load spamlist is where the age filter should be.
908 ------------------------------------------------------------------------------
909 1.1-rc0 20060730 sent to ray, gene, peter & jedrek
911 added legend for all epg hrefs to dump epg, tested epg relative hrefs
912 added auto-epg select to build html head, auto-epg blue href
913 added build html head for consistent top level navigation
914 added epg ch.html refreshes per instance every time it is requested
915 added abstractions to make any epg refresh always usable to http
916 added better navigation to dump epg html output for pgm and weekdays
917 added test epgs will create blank EPG to prevent endless EPG loop
918 added MGT hold down 180 seconds to retard bogus updates on KHCW
919 added to show cap stats: dump html stats output to /dtv/atscapX.html
920 added -w option: http code for small multi-threaded web-server
921 added filters for spa/fra paid/dtv/infomercial event auto-filter
922 added show vc mpeg2 fallback shows component name on vc/program line
923 added edit keys to scroll timers PU/PD/HM/EN, add/del timers IN/DE
924 added find current epg pgm for epg [enter] match current program
925 added init pids to reset PID totals when channel changes for show vct
926 added -F option: frequencies from dvb apps us-Cable*; us-ATSC -28615 Hz
928 changed dump epg has table for station img, status and current event
929 changed dump guides to dump epg with pointers abstracted for re-use
930 changed capture log and capture stats html-ized, fixups to html epg
931 changed ordering of some functions to reduce prototype count
932 changed abstract save guide into save vct and save epg
933 changed abstract load guide into load vct and load epg
934 changed build outnames @ flag tries to use start time then current
935 changed # as timer date flag to @ so it works as a URI
936 changed test spam compare optimization to reduce cpu loading
937 changed show event short does not call build pg epg, moved to parse eit
938 changed dump guides and build html head for multiple instances
939 changed multiple web servers for multiple instances
940 changed web server still sluggish: nanosleep after connect removed
941 changed test config to look for spamlist timeout
942 changed spamlist to global /etc/atscap/atscap.spam, removed cfg 'S'
943 changed parse stt logging but rest looks ok? what about KHCW drift?
944 changed dump guides to reflect server ip:port that dumped guide
945 changed fifo write tries more times, optioned out multi-stage tries
946 changed file redux, .tsx now has same data as .tss .tsf output had
947 changed atomic_ to fifo_atomic_ to give the functions a better name
948 changed html program guide cosmetic cleanups, added rating text
949 changed video + audio pid counts valid after VCT or PMT received
950 changed capture log starts at current minute when first invoked
951 changed EPG display starts at current event program when first invoked
952 changed EPG [ENTER] adds current event matching program # if set
953 changed build outnames to allow program number > 7 for cable
954 changed [TAB] disabled for cable, not needed, channel scroll avoidance
955 changed colors in show virtual channels: red indicates missing data
956 changed get_timer_add weekday timer program # to allow > 7 for cable
958 fixed old bug: stop capture if adding current timer during info cap
959 fixed move timers find search event index returns wrong counter
960 fixed add event timer from epg did not copy program # to timer
961 fixed volatile timers from EPG search event loses event descriptions
962 fixed find timer epg works better, but still no fuzzy start/len yet
963 fixed word wrap, forgot to print char after nl/indent
964 fixed timer start time correct but not refreshed after volatile expires
965 fixed add search during info cap doesn't start search event if current
966 fixed delete search event should redraw timer list from top
967 fixed build outnames timer [KUHT].1 audio# wrong after timer [KHCW].3,1
968 fixed search timer overlap kept writing to same file, ignored new name
969 fixed save config after ts cap to retain any found search timers
970 fixed epg_name memset() overflow wiping FIFO pointer and structure
971 fixed [z]ap did not zap the current capture, but did zap .ts[f,s,l]
973 fixed load config restores current channel to avoid guide corruption
974 fixed load config+guide while cap adds search match on wrong channel
975 fixed search timer hold down at end of timer to prevent event truncate
976 fixed? show virtual channels selected program gets colors wrong
977 fixed? [d]elete timer put search timer back on list, endless loop
979 removed delete code for .txt .tss .tsf files, using .html/.tsx now
980 removed EPG sort since EIT sort is working for KRIV FOX now
982 replaced syslog with dvrlog; html build snprintf with asnprintf
985 Stopping a timer with [o] override then BKSP does not remove the timer,
986 or does not set the hold down for a deleted timer. Web ui seems ok,
987 since it actually removes the timer, but still testing.
989 build outnames now overrides vc to 0 if find vc pgm fails, but it
990 FIXME:* SHOULD hold down output until cap vc set from cap pn + PAT/PMT info.
995 Need html pages for Master Guide and Virtual channels. Put hrefs
996 for them in html stats page in the atsc transport table area.
998 Finish breaking down dumps to build and dump for dynamic update to
999 serve created page from mem in addition to the current file method.
1001 TODO? html interface has no href for full capture, but room for href
1002 right of reload href. Full capture ability might be useful,
1003 There is always the console interface for full capture if needed.
1007 Adding current event via [enter] sometimes screws up search timers
1008 by moving search timer to top of timer list, above valid timers.
1009 I think it's fixed but still testing. It's related to EPG filters.
1011 UDP xine seems to play a little bit too fast. Maybe it's dropping
1012 frames and then getting ahead and having to wait. Still testing.
1013 TCP playback is fine, because xine reads as fast as it wants,
1014 without being constrained to actual data rate from the card.
1016 http file not found is not working properly.
1017 does not return 404 as it should instead of hanging user agent
1019 -x seems broken, of all things. How did that happen?
1020 Currently having to hard code arg_extras = ~0;
1023 TESTME Goal is to go from atscap -S to web browser, without using
1024 console beyond starting atscap -w or a script to do same.
1026 None of the web pages are dynamic in RAM-only. Should they be,
1027 rather than take the cpu cycle hit of file create?
1029 Current method is to write the channel.html file to /dtv/pg/,
1030 and it does seem to introduce enough load to be noticeable
1031 as a stall during playback when the guide create occurs.
1033 Yet another thread and socket for server to server communication.
1034 No need for it so far, but thinking about how it could be useful.
1035 Current method seems to work well enough for now.
1037 Rearrange console with timer name before start time. This is
1038 to make it easier for console user to tell which timer# to delete.
1040 Fix KQED not capturing program #1: atscut has -kmgt broken samples
1041 might be fixed with build outnames and program select rework?
1042 Have WB with swapped PMT's in PAT to test against now.
1043 Still on list of things to test.
1046 -------------------------------------------------------------------------------
1047 pchdtvr - 1.0rev1k test (last pchdtvr before change to generic atscap name)
1049 NEWS: HD3000 dvb driver is now Bullet-Proof with my patch. Uptime Ad Infinitum.
1050 NEWS: Build latest 2.6.12+ kernel with only DVB core as a module, then get the
1051 NEWS: v4l-dvb-20060115 CVS snapshot, not the latest hg, and apply this patch:
1052 NEWS: http://www.nop.org/inkling/dtv/test/dvb-ink.diff.gz
1054 NEWS: Jedrek reports this version works with a DViCo Fusion5 HDTV ATSC card!
1056 Almost all UI bugs are gone. The rest are FEATURES! (Just Kidding!)
1057 More fixes than I expected, but it seems all were really needed.
1058 As always, some bugs remain. Please report the bugs you find.
1059 I will try to fix those along with the bugs I find myself.
1063 audit gcc: missing proto-types and other assorted fatfingers
1064 audit gcc: threaded applications treat errno as function, not as int
1065 audit gcc: pointer check before use after strrchr strchr
1066 audit gcc: cleanups for -pedantic -std=c99 and -ansi. Few remain.
1068 added mlockall prevents code+data swap during cap: swapon -a is OK now.
1069 added count pg pgm for show vc selection
1070 added spam events automatically hidden if any spamlist entries
1071 added global init. man that's a lotta dang globals.
1072 added sort eit epg to handle the apparent nationwide FOX EIT glitch
1073 added test eit ett done. info cap detects real end of guide faster
1074 added show vc stats extract from show packet stats
1075 added build pat and build pmt re-maps VC cap secondaries to primary
1076 added ,[comma] flag to build outnames for secondary audio flag
1077 added cap log sanity limit check and log full error text
1078 added sort spamlist and searchlist added to load config
1079 added list usage counts to show keyhelp for timer, search, epg
1080 added save config to show program guide [enter] for current program
1081 added PMT lines to show vct to inspect stations w/ mismatch VCT/PMT
1082 added zap removes .$, .ts, .tsl .tsf .tss and .txt in remove renamed
1083 added option -A for strict ATSC reserved bits check and logging
1084 added 1 second delay on control c to allow device i2c to finish
1085 added manual search event entry searches current channel
1087 changed PAT+PMT in VC select is bright magenta if different from VCT
1088 changed VCT & EPG highlights Program # to better indicate new method
1089 changed so MPEG fallback works, timer name VC # is now Program #
1090 changed -r does not generate capture log
1091 changed DVB SNR ioctl fallback if STRENGTH ioctl not implemented
1092 changed DVB STATUS ioctl fallback if SNR ioctl not implemented
1093 changed VCT keys for channel and audio selection to fewer keys
1094 changed -S to be a little bit faster and only scans to channel 70
1095 changed old T weekday timer config line is now W config line
1096 changed check timer to test timer and simplified the code
1097 changed timer status ignore sets normal no blink for times
1098 changed cap stat name to allow longer names with .0,1 audio select
1099 changed packet stat to identify channel from config if mpeg fallback
1100 changed allocation strategy for cap log, log limit set to 8 hours
1101 changed [c] key not needed in VC select, use number keys directly
1102 changed build pg epg reflects current virtual channel select or all
1103 changed parse spam event to reject duplicates, restored 256 item limit
1104 changed huffman decode callers check mode == 0xFF if strict -A option
1105 changed capture log saves to file.tsl instead of /var/log/dtv*
1106 changed generic build payload for most payload types, fatfinger redux
1107 changed list limit constants to more consistent nomenclature *_MAX
1109 TESTME: fixed? load config with more channels required restart to use them
1110 haven't had a chance to test it yet but should be ok since
1111 adding the duplicate reject. needs testing
1113 TESTME: fixed? KQED PAT/VCT mismatch caused timer to get wrong/no video/audio
1114 Waiting on report from Peter to find out if it's fixed yet.
1116 fixed back to back captures truncating file or keeping previous name
1117 fixed build vct descriptor boundary error reported by tupari
1118 fixed [?] key did not always refresh correctly on exit
1119 fixed -r on short files broken, using new fifo flush flag
1120 fixed -s breakage caused by the shuffle to VC selection
1121 fixed show timers search entry wrong when last volatile expires.
1122 fixed ETT version number poison on KHOU KRIV KPRC. rummy buzzards
1123 fixed load config and initial startup did not select vc correctly
1124 fixed vc pid selection problems, shouldn't reset on [a] anymore
1125 fixed show vct did not handle MPEG PAT+PMT fallback for VC selection
1126 fixed signal not clearing cap now, gave fifo_in: err bad file desc
1127 fixed parse channel should not add duplicate channels
1128 fixed PAT ncs wasn't being done correctly after generic payload
1129 fixed virtual channel and audio selection don't work during info cap
1130 fixed move search event should not move matching weekday timers
1131 fixed timer sort bugs introduced by search status and weekday bits
1132 fixed [t] add timer: start time correct if daybits today but past
1133 fixed [t] add timer: start time correct if daybits are previous day
1134 fixed word wrap off by one byte on indent string. aw shucks.
1135 fixed [enter] from epg gets event if time range matches filtered event
1136 fixed [enter] from epg saves cfg so move timer in doesn't stop capture
1137 fixed move search timer, one pass prevents target load config thrash
1138 fixed search timer ch:days poison, delete moves structures down
1139 fixed load config poison, waits 1/4s for move search/timer to finish
1140 fixed EIT error count poison from bad EIT assembly in build payload
1141 fixed huffman decode poison with table range check to fix WPIX crash
1142 fixed [o] overtime override: does not stop cap on first try
1143 fixed? [\] full capture: build outnames, set vc cap pids
1145 removed incorrect timer reschedule in ts cap loop, post AOS, huh? doh!
1146 removed redundant build_*_payload code and structures for generic, yay!
1147 removed [c] key change timer, get_timer_change because never used, doh!
1149 restored Closed Caption services list to show vchannels
1151 rewrote build outnames: a lot easier to read and follow now
1152 rewrote test info cap done: more efficent, easier to read, quicker
1154 updated help and help colors, plus these comments
1157 show master guide: (NO: too much dca hassle)
1158 color should indicate have seen at least one
1159 * is payok status to blink when still parsing vn's received
1161 if it's an existing timer, it adds a duplicate. not supposed to.
1162 look at add search event and see if it checks pgm and audio ok.
1165 ===============================================================================
1166 pchdtvr 1.0 release version
1168 -------------------------------------------------------------------------------
1171 fixed huffman decode node lookup sanity limit for tupari's WPIX fix
1173 -------------------------------------------------------------------------------
1174 pchdtvr - 1.0 release candidates
1176 NEWS: ***** ALL CONSOLE FEATURES COMPLETED FOR TERRESTRIAL BROADCAST ******
1177 NEWS: it has been run through valgrind with few errors except pthread allocs
1178 NEWS: driver code being revised to work properly and handle i2c lockouts
1182 Aside from a few display bugs here and there, it is finally done.
1184 ******* added +searchname to [t]imer entry; [d]elete event to remove it+matches
1185 *** added channel and day bits filter to search events, load and save cfg
1186 *** added FE_TUNE_MODE_ONESHOT to DVB flags to stop read status polling
1187 *** added -N option to pad removed packets with NULLs for STB players
1188 added tracking function for malloc, free, and status on exit
1189 added signal handler to SIGINT SIGTERM SIGQUIT for normal exit
1190 added 250ms wait to all channel selects to help AOS
1191 added channel list shows magenta for stations with auto EPG reload
1192 added sorted search events on timer list; movable between instances
1193 added timer full event name and description from EPG. write to .txt
1194 added filebase pathname truncation function and fixups to use it
1195 added frequencies to ptc_*[] from dvb-atsc tools 1.0.1 from pcHDTV
1196 added find device test for /dev/dvb0.* from new hotplug re-arrangement
1197 added -m frame data and sequence data dump to .tsf .tss for a/xtscut
1198 added -u multicast option, needs two host test. one host loopback ok.
1199 added experimental cable frequency list: -C option to test with -S
1200 added uptime to show keyhelp and colors to indicate which modes use
1201 added move search event moves matching volatiles, use with care
1203 changed signal stregnth fail terminates program with log message why
1204 changed dump cap log to indicate arg_nulls not discarded
1205 changed search events to use 16 char truncated to match timer list
1206 changed fifo read/write sleeps, again, to find the happy medium
1207 changed lltoasc function to not use strdup, from valgrind testing
1208 changed show/dump cap log to use a-z A-Z for low error counts
1209 changed build outnames after aos to make name match timer start
1210 changed set channel to add 500ms delay after setting frequency
1211 changed EPG highlights white if timer match, magenta? if ETMID match
1212 changed delete timer to delete search timer (recurse range is a pita)
1213 changed STT parse time set conditions again
1214 changed show timers to isolate search timer entries
1215 changed signal scan loop count to 2x signal scan rate, more reliable
1216 changed AOS to 3 lock attempts: but no help on driver lock-out issue
1217 changed chanlist sigscan times out after 5 minutes if scanning all
1218 changed [a] key toggles magenta autoguide, saves new setting per ptc
1219 changed info cap fail logs/shows station id that failed
1220 changed frequencies to use DVB channel center not V4L NTSC IRC
1221 changed ATSC sets time with config file Z line, auto with C line GTO
1222 changed atsc_bcast to ptc, abstracted ptc to pointer broadcast
1223 changed timer_list to refresh.timers; other guides use refresh{}
1224 changed in_psip/in_help/display_timers to display_type
1225 changed put CRs on remove+zap display to handle longer filenames
1226 changed resize console stays in whichever guide, not kick to timers
1227 changed timing on show cap log redraw to wait for next second
1229 fixed? check timer to try to handle timer move-in during info cap.
1231 fixed [o]verride sometimes stopped the capture, whoops check timer
1232 fixed kernel 2.4.26 driver 1.6 issue, SCHED_FIFO fails on 2.4.26?
1233 fixed zap removes .txt event description file, tested this time :>
1234 fixed [ENTER] key in EPG during info cap gets current main (vc0) event
1235 fixed config file comments "not kept" line in wrong place
1236 fixed show disk status to pad blanks at end as timers are removed
1237 fixed set channel not setting on search timer found at start
1238 fixed does not open the device twice if not using fork()
1239 fixed auto-guide search entry does not trigger again after zap
1240 fixed long run too many files open error, audit all open/close
1241 fixed check timers causing multiple starts instead of info cap stop
1242 fixed help clears screen when help exits
1243 fixed parse timers truncates name at 19 chars instead of 16
1244 fixed exits guides at capture start or stop using display_type
1246 moved dump cap log to end of output thread
1248 removed -A option, use config file Zch line for enable/Z0 disable now
1250 tested dvb status check against hg/CVS v4l-dvb and immediately backed
1251 it out because it is a design idea only for sat tuners. Not ATSC,
1252 so DVB FE_TUNE_MODE_ONESHOT ioctl disables this function now.
1254 tested .tsf .tss files for identity with atscut 0.9.5 .tsf .tss files
1255 these files are structures therefore architechture dependent.
1256 ergo, they are not transportable between little and big endian,
1257 but can easily generate by atscut -s compiled on the target.
1259 tested KRIV + KPRC ETT increasing: ETT Version change is non-compliant.
1260 TODO it would be informative if version change was visible in MGT.
1262 tested with old V4L drivers on 2.4.26. Works as well as it can.
1263 See comments near top for the reasons why V4L is sub-optimal,
1264 and why you should upgrade to DVB API at soonest opportunity.
1266 tweaked ATSC STT set system time method, trying to fix wobble
1268 updated comments to reflect new DVB API testing and results.
1269 Things are finally robust with correct DVB API settings.
1274 ******************************************************************************
1277 1.0-rc10 finally has almost every feature I wanted, with a few bugs.
1280 *** replaced bad fifo lock code with mutex for SMP/more reliable UP
1281 *** added automatic program guides with non zero GTO: C line in config file
1282 *** added automatic search event timer scheduling: A line in config file
1283 *** added spam events not hard-coded now: S line in config file
1284 *** added one channel to use for -A ATSC time: Z line in config file
1286 added search events to load guide, load config and cap
1287 added display structure for output redux for low baud ssh audit
1288 added sequences/idx tracker and dump for atscut .tss .tsf file
1289 added hold downs on VC cap until PAT, PMT, SEQ and audio payload start
1290 added zap channel/time to hold down autostart of same zapped event
1291 added saves config after timer expired to remove timer from config
1292 added persistent VC and full cap settings per station in config
1293 added event truncate function, more flexible than obsoleted strtrunc
1294 added find etmid function more efficient than obsoleted find pgm etmid
1295 added more error checks/logging to various functions and ioctls
1296 added staggered pthread yields to fifo write to drain output faster
1297 added P to indicate PMT received and make it red if flag seen
1298 added [?] key gives help for VCT and Program Guide displays
1299 added more key combinations for home/end console getch fn needs ncurses
1300 added ZAP to top left status indication for why previous cap ended
1301 added more volatiles to handle threading better
1302 added DVB ideas from dvb-atsc-tools: DVB new default; -1 -2 for V4L
1303 add TODO [ENTER] from program guide starts first VC timer cap
1305 changed fifo full doesn't log, increases SYN error count instead
1306 changed timers so channel scan doesn't hold down initial autoguide
1307 changed full channel scan to hold down autoguide, to adjust antenna
1308 changed timer removal doesn't save config, prevent immediate reload
1309 changed program guide output redux via display epg
1310 changed arrow keys work for timer list during capture
1311 changed all strtrunc calls to new event truncate function, del strtrunc
1312 changed PGM_INFO_TIMEOUT to 60 seconds because KRIV is misbehaving
1313 changed packet stats VC packet counts as vid aud under VID AUD
1314 changed packet stats field size to 9 digits for caps > 7753 seconds
1315 changed current program highlight works on spam tv entries too
1316 changed device read error EOVERFLOW increments synert SYN # w/o abort
1317 changed clock gettime to use REALTIME instead of PROCESS_CPUTIME_ID
1318 changed load config to fix user issue with length of ptc list
1319 changed PGM to VC in program guide, sort field hilite more noticable
1320 changed set channel, getsignal can use dvb, v4l2 or v4l1
1321 changed driver 2.0 removed/reduced getsig timeouts = faster scan test
1322 changed R on bottom line for RRT, stats red PMT indicates RC
1323 changed dump cap log MPEG PID list requires -l, reduces normal logging
1325 fixed -W, added missing credits, updated ATSC status comments above
1326 fixed twitchy cursor, output redux audit in mgt, vct, epg and cap log.
1327 fixed comments for gcc -ansi compile audit
1328 fixed resize term redraws program guide instead of kicking out
1329 fixed pgo method to select vc for offset instead of src
1330 fixed pg sort+add timer put wrong timer in. build pg pgm then sort it
1331 fixed FOX out of order EITs with dup avoid and default sort now ETMID
1332 fixed move timer to destination while destination in info cap
1333 fixed device not open when startup goes immediately to test guides
1334 fixed journal filesystem no longer causes FIFO full. flushes better.
1335 fixed hold down EIT parse until at least one VCT seen. Multi-VC fix.
1336 fixed move current timer to new card didn't stop info cap, does now.
1337 fixed timer list cleared before new timers in load config
1338 fixed missing volatile type declarations in fifo structure
1339 fixed scan freq hold down call reduction issues, slashed scan_freq=0
1340 fixed master guide display lost ETT header when ETT0 missing: KTMD fix
1341 fixed sleep times for various guides to use much less cpu
1342 fixed all build payloads overflow when near table payload limit
1343 fixed show cap log to remove ? in log during user input, again
1344 fixed -r mode allows multiple runs, fixes names and rewinds file
1345 fixed -r mode gets fifo full when sleep removed. 10x+ realtime now.
1346 fixed signal scan timing problems when siglock not set
1347 fixed 1.0-rc9 todo: show all channels to allow timer trigger
1348 fixed 1.0-rc9 todo: -S looks OK on aterm now
1349 fixed load config and test guides hold down prevent -S mode conflict
1350 fixed display bug on STT +- and inhibit display of +0
1352 removed cap_pgm because it was irritating
1353 removed NTSC from program guide entries to avoid bogus dynamic timers
1354 removed inconsistent sig% and obsolete V4L items from signal display
1356 updated comments to reflect latest changes and testing results
1358 tested on 24k baud ssh: not too bad after optimizations.
1362 2nd overlapping timer does not change channel or close output
1363 validate config is where it should toss overlaps.
1365 I changed show timers to put IGNORE on those overlaps,
1366 so you can see them better and decide what to do yourself.
1368 WORKAROUNDS: Avoid doing what causes it to fail.
1370 -------------------------------------------------------------------------------
1373 fixed compilation error with gcc 2.96, huffman *d++ to d++
1374 fixed -S by moving fifo calloc to top of main
1375 fixed dump guide html doctype, but may scrap it for cgi-bin method
1376 fixed -b for unlimited EPG load for long QoS check per user request
1377 fixed ? keyhelp stays on screen until timer, per user request
1378 fixed xterm DEL/BS stops guide load or manual cap per user request
1379 fixed show cap log error color indications per user request
1380 fixed ATSC MAX CHAN enforces ATSC channel limit, plus cleanups to use
1381 fixed VCT display blank after channel change
1382 fixed show cap stat to allow test guide override, -b unlimited EPG load
1383 fixed channel list clears screen to remove timers
1384 fixed test guides aborts if timer starts
1385 fixed [z] key zap stops [i] key test guides, BKSP skips to next station
1387 added Quick Start text examples at top of file per many user requests
1388 added RRT payload build/test for CRC32 for QoS only, no parse
1389 changed -o to use exact filename and not rename/delete previous.
1390 this was done at user request for FIFO support
1392 TODO DONE fix channel display to honor timers, not ignore all timers.
1393 don't leave in full channel scan display, add a timer or hit [TAB].
1395 TODO DONE fix '?'s in capture log during user input, extra gettime
1397 TODO fix -S so it looks/works better under aterm, looks ok on vc or xterm
1399 -------------------------------------------------------------------------------
1402 testing with 2.6.12 + pcHDTV ATSC 2.0 driver, but dvb still broken.
1403 fixed no VCT, but MGT+EIT, uses vc[] PAT+PMT for EIT program number.
1404 fixed MGT versioning rebuilds MGT and PG, fixes MG/PG display errors.
1405 fixed EIT erases obsoleted part of epg. during EIT for PG clean-up.
1406 fixed guide timeout did not time out during [i] auto guide test.
1407 fixed mini aos bog much less with some sleeps and fewer loops.
1408 fixed invalid channel hotkey does not select channel 0
1409 fixed -r fails fifo write with fifo full when file not found. freaky.
1410 fixed vct display component name had junk text from missing nul
1411 changed VCT allow display of guide saved vc[] as PMT
1412 changed save load guide handles vc[] for minimal VCT display to work
1413 changed dump guide .txt has month and day to handle more than 7 days
1414 changed dump guide no description if same as event name
1415 added [n] key in program guide shows pgo with etmids
1416 added html output for program guide. 3 char SID.png for network logo.
1417 removed left over r = from atscut testing in huffman decode
1419 -------------------------------------------------------------------------------
1422 fixed with versioning, CPU usage reduced to as low as pre-ATSC versions
1423 fixed capture is spiking CPU to 15%: better console sleep handling
1424 fixed MGT VCT EIT ETT PAT and PMT version checking, finally
1425 fixed VCT and PMT always list video first to put audio(s) on 1-x
1426 fixed VCT display showing alternating values for Program and PIDs
1427 fixed PMT sometimes not getting captured, added PMT build cap pids
1428 fixed fallback to MPEG w/o ATSC PSIP gets the program numbers correct
1429 fixed OLDEST BUG: BLUE SCREENS XINE: clear stale fifo data before cap
1430 fixed QOS fail should reschedule/remove same as AOS, not stay ACTIVE
1431 fixed get pgm timer add: didn't stop info cap if timer current
1432 fixed AOS fail+timer resched/rm does not resort/draw timers immediately
1433 fixed continuity counter code. handles all but AFC DI. yay finally
1434 fixed program guide display bug that was making Program VC MPEG blink
1435 fixed multi-packet VCT typo making section length incorrect
1436 fixed channel hotkey A-Z not loading guide for new channel
1437 fixed event sid no longer displays lagged from channel hotkey
1438 fixed info cap and PSIP guides (EPG VCT MGT) exit on timer start/stop
1439 fixed -r dummy.ts. partly done, but no replay twice. good nuf for now
1440 fixed channel list not overwritten with timer list, but no scroll yet
1441 fixed most * payload to be consistent with current testing of atscut
1442 fixed VCT display was swapping and blinking on some stations
1443 fixed VCT display order matches PMT ES PID order and descriptors
1444 fixed? sometimes have to hit 'l' twice, a timeout is not being reset?
1446 changed find cap pid single VC extract PID count to 4 to include PAT
1447 changed in_guide to in_psip for any psip guide kick-out at timer start
1448 changed packet stats display method to reduce annoying flicker via ssh
1449 changed status ALN (same as SYN) to CC continuity counter error count
1450 changed help text that didn't reflect latest changes in -rc6, -rc7
1451 changed TEVM + STT display to always display during capture
1452 changed various * lines to user lines for all scrollable displays
1453 changed old stream test needs leniency on 1 reserved EIT bit. odd.
1454 changed CEL to end of pkt status lines to reduce flicker in xterms
1455 changed SCI to turn off cursor more often, but uses SCV for input
1456 changed arg zapper to zap at 90% QOS, maybe needs to be 95%
1457 changed and enabled program guide colors for shows within 12 hours
1458 changed VCT detail level reduced, use [d] key to expand
1459 changed dump cap stats to not log if outside valid elapsed time range
1460 changed dump cap stats to not log PIDs if QOS below 99% (logjunk avoid)
1461 changed dump cap stats to not log if program guide cap (logjunk avoid)
1462 changed dump cap stats to not log useless list of ATSC PIDs
1463 changed address of Free Software Foundation to reflect new offices
1465 added Huffman tables and huffman decode routine. yay! eats CPU?
1466 added RRT as built-in table, parse rrt needs Huffman decode :>
1467 added [f] key for capture log of current/last capture
1468 added MPEG2 descriptors to [v] VCT display, use [d] key in [v] VCT
1469 added ISO 639 lang parse to PMT parse to handle no VCT found
1470 added parse PAT & PMT to fill in common parts of vc[] if no VCT found
1471 added PMT descriptors to vc[] for VCT detail display
1472 added -W virtual console support via screen if available
1473 added Closed Captioning and event rating, aka v-chip, description text
1474 added [p] resets guide filters to allow [usually bogus] guide display
1475 added program guide [n] key to toggle etmid detail text/numeric display
1476 added -R option to attach screen session
1477 added more console resize support for virtual consoles
1478 added red R to left of TEVM and red PMT to indicate RC
1479 added ts capture pthread version so test guides could call it
1480 added [Home] key for guide to get to start of description text fast
1481 added wrapper ts capture to start ts capture loop pthread
1482 added test guides to main thread now that ts cap has own thread
1483 (try it out with [i] key until it is automatic)
1485 TODO add separate ts cap init code from ts cap loop code for neatness
1488 Notes for 1.0-rc7 release:
1489 Lots of extra details to see and not a few bugfixes.
1491 Should be more compliant with ATSC specifications in regards
1492 to handling stations that stop sending PSIP and revert to MPEG only.
1494 [v] key VCT selection now works with VCT and PAT+PMT, so you
1495 may use timername.pgm even when PAT+PMT are only tables seen.
1497 Should also be more compliant with ATSC specifications in regards
1498 to handling Huffman text decompression. A/65b says 'must' support, so
1499 this code does it whenever mss text comp=1 or 2. (KPXB fix)
1501 Timer start or stop should kick any of the guides back to the
1502 timer list so you can see what is being done and any errors.
1504 -------------------------------------------------------------------------------
1507 fixed bug in stat off that didn't redraw all timers after stat off
1508 fixed move timer to handle volatile timers with different format
1509 fixed payload bug causing CRC mangling, tables not counted correctly
1510 fixed purge stale data in driver buffer with multiple get syncs
1511 fixed guide exits when timer starts and times out after a minute
1512 fixed guide capture is overridden and cancelled by timer start
1513 fixed capture aborts when no signal or signal too low
1514 fixed broken cap stats from -rc5 with missing info during user input
1515 fixed guide timer name too long caused loss of timer name .pgm
1516 fixed do not save/load volatile timers that have expired
1517 fixed zap removes volatile timer from config so it won't persist
1518 fixed reschedule removes volatile timer from config so it won't persist
1519 fixed program guide doesn't add past TIMER_LIST_MAX
1520 fixed last timer delete still onscreen, ^L refresh shows not there
1521 fixed old bug: spring DST chg doesn't break config, fall may be ok too
1522 fixed old bug: timer does not loop on AOS fail, reschedule or expires
1523 fixed old bug: timer reschedule cancels capture if any in progress
1524 fixed old bug: load config should not load identical timers
1525 fixed or tried to: startup during timer didn't set channel. puzzling.
1526 fixed user submitted bug: use .ts for all files for external player
1527 fixed user submitted bug: file modes too strict, using 0666 instead
1528 fixed user submitted bug: out path not used for some timer types
1530 changed show program guide to handle display of above 999 minutes
1531 changed channel change resets VC capture flags and PID list
1532 changed console function key scan to ignore bogus keys better
1533 changed volatile timer gets sorted before same non volatile timeslot
1534 changed build cap pids for VCT audio select or default to first audio
1535 changed VCT and MGT display to handle scrolling of a more detailed list
1536 changed console scan to handle up down right left pgup pgdn for timers
1537 changed timer maximum is now 256. [=] ['] keys to scroll, like guide
1538 changed timer display to handle up to 999 timers, like guide
1539 changed timer and program display to compensate for stats onscreen
1540 changed get next reschedule only goes 7 days ahead instead of looping
1541 changed save cfg to handle timers with DST different from time now
1542 changed program guide to show which channel the guide has stored
1543 changed program guide to show descriptions beyond 160 chars; limit 255
1544 changed fifo output to exclude program guide cap write to disk
1545 changed cap status to reflect program guide load in progress
1546 changed program guide 't' to allow daybits for recurring timers
1547 changed program guide ignores zap threshold, guide tries bad rx
1548 changed 'p' to display program guide only, load with 'l' now
1549 changed dump cap stats added Mb/s field, rearranged packet stats
1550 changed dump cap stats to exclude program guide cap status log write
1551 changed post timer check to stop cap if info cap time near next timer
1552 changed timer reschedule to handle any timer instead of timer 0
1553 changed packet status to not display VC pids if ALL
1554 changed keyhelp to reflect new keys/meanings
1555 changed event status (bottom left) to be more descriptive
1557 added range to get pgm timer add
1558 added set virtual channel from vct
1559 added function keys: arrows and edit keys for scrolling
1560 added get timer reschedule with range for manual pre-empt reschedule
1561 added find last program to set guide file mtime for guide age out
1562 added build tvct text, removed duplicates from test vct, faster now
1563 added hotkey to channel checks for saved program guide and loads it
1564 added save and load guide for each station, with guide text dump
1565 added info cap checks some conditions to time out guide load
1566 added attempts to auto-correct if MGT version stays 0xFF
1567 added MPEG2 adaptation field test for MPEG2 payload handling
1568 added -l logs bad CRC that slipped past TEI check. short packets wtf
1569 added -S scans for signals and optionally builds a crude config file
1570 added more detail to show vct and made it scrollable for cable
1571 added more detail to show mgt and made it scrollable for cable
1572 added audio select to show vct for manual select but not in timers yet
1573 added 'r'eque for non-cap mode to manually reschedule pre-empted events
1574 added FILE_PERMS from user request to set permissions mode to 0666
1575 added timer duplicate remove load/pgm timer add, but user can still set
1576 moved cap stats data collection to fifo output loop to avoid dropouts
1578 renamed test_ to parse_ where it actually parses stream
1579 reduced aos to bare minimum code at start of capture
1581 Notes for 1.0-rc6 release:
1582 Most of the clunk has been fixed but some remains in VC select.
1583 Have to select [c] before you can select [a], or manual first-VC cap.
1585 Biggest UI improvement is arrow keys and pg up/dn keys work now,
1586 but you still have =[]' scroll keys in case you have chiclet keyboard.
1588 NOTE: signal scan being enabled will slow down timer scroll.
1590 All the screens are scrollable now, except channel list, including
1591 MGT and VCT lists that are also more detailed in the descriptions.
1592 MGT also shows live update of the tables during capture.
1594 Still a few quirks, but no segfaults.
1597 Only things left to do before I'm completely happy with it:
1598 Automatic guide load ( [l] key is manual full guide load )
1599 Automatic event reschedule ( [r] or [c] key is manual reschedule )
1600 Audio select for timers by name ( [v] [c] X [a] Y is manual select
1601 where X is VC# and Y is Audio ES# within stream. Real CLUNKY! )
1603 These three may not be done before -rc6 goes out. The logic puzzles.
1605 Released to the wild. Bad bugs discovered after release:
1606 [z] zap immediately on cap start makes dump cap stats go nuts
1607 [p] program guide does not exit as claimed when timer starts
1609 -------------------------------------------------------------------------------
1612 fixed show cap stats at start of cap giving stale values until update
1613 fixed output redux one shot on status change or status color change
1614 fixed test sync/packet to check the 21st packet when alignment is 0
1615 fixed alignment problem after X restart and buffer overrun. doh!
1617 changed [ENTER] now caps first valid VC. use \ for full ATSC cap
1618 changed FIFO align method, HD2000 handles X restarts without desync
1619 changed 'p' SNR display key to 'w', 'p' now for Program Guide!
1620 changed key signal scan toggle is now channel hotkey
1621 changed cap time display uses easier to read colors for digits
1622 changed SECOL to timer->secdt: calc secdt early end for timer BROKEN
1623 changed check timers to start 3 seconds early for longer AOS check
1624 changed fifo full does not exit: logs and sets cap fail type now
1625 changed card ID display to reflect card type+dtv# and V4L level
1626 changed ts cap goes to timer display when cap starts, to get user attn
1627 changed last file out status indicates reason for fail, if not ok
1628 changed in-program help screen to reflect new keys and colorized
1629 changed all float to double
1630 changed dump cap stats:
1631 use packet test code instead of custom driver vague LED check:
1632 added detailed stats about the stream for error determination
1633 changed indication of transport error severity per second
1634 appends to /var/log/dtv[0-3], no more *.stat file
1635 moved from -l option back to default scope, seems useful now
1636 changed show cap stats:
1637 more informative error stats during capture
1639 changed driver again (optional via -x):
1641 signal scan split to v4l1:v4l2 code:
1642 v4l1 faster, near 38 scans/second, makes -x LED update faster
1643 NOTE: v4l1 gives RS indicator on strong sig where V4L2 doesn't
1644 v4l2 method copies faster HD3000 method, w/o Rx Status AGC flag
1645 v4l2 is slower than v4l1 but gives less vary in signal value
1647 cx88-atsc.c changed:
1648 changed Receiver Status timeout delay to 4 instead of 3
1649 trying to get rid of occasional 55% getsigstr val lockup
1651 removed jivo and all gtk code. try a different method. maybe freevo.
1652 removed custom driver cap test LED code, test packet works better
1653 removed vary display. 's' & dump cap stats gives detailed reports.
1655 moved show KB LED status under -x scope, but still fakes for HD3000
1657 added ATSC and MPEG parsing. Bugs still exist:
1658 afc3 payload not parsed. No afc2 found in local streams.
1659 afc1 payloads handled well enough, but memcpy more than needed.
1660 This maybe affects statistics, short-changes a few error counts.
1662 added volatile timers to load save cfg to keep program guide selections
1663 added keys 'v' VCT 'g' MGT 'p' EIT/ETT Program Guide!
1664 added 's' key stream detail display to show every packet stat counted
1665 added 'e' key for elapsed/user time toggle, for how long timer has run
1666 added -r replay file mode, dummy mode, read parm or dummy.ts
1667 added -k Klutz-Guardo console input disable, keeps fatfingers away
1668 added -A option to set system time from stream time:
1669 this does not currently work right because:
1670 local stations do not synchronize to the same time.
1671 added signal scan time quantified for aos 120 tries or 4 seconds
1672 added volume has no space error should terminate the program:
1673 FIXME: it's broken, doesn't terminate.
1674 added one shot timer redraw of color status change in next 24 hours
1675 added cap fail status abbreviations to indicate why cap failed
1676 added lltoasc to display large vals w/ commas; strdup=free after use
1677 added CRC32 function for ATSC tables from atscut.c. More robust now!
1678 added VC PID to vc[] and test mpeg packet for stream splitting
1680 audited timer total and space calc to verify correct display:
1681 It looks wrong, if you don't realize programs set to overwrite
1682 calc as a single length. Shows with $ or # calc multiple lengths.
1683 So no moth here, only the limits on how programs counted.
1685 Released to the wild.
1687 UPDATE: whoops, too early it seems, since it's buggy and clunky.
1689 -------------------------------------------------------------------------------
1692 rewrote get sync, old method was obtuse and not robust, missed shows!
1693 caused: added test sync for sync error and minimal transport check
1694 fixed override timer to remove/reschedule the overridden timer
1695 fixed CLI -s load cfg, -s has 1 non option chan arg, -s no stdin
1696 fixed CLI find cfg parse of -c arg cfg path
1697 changed console scan to allow more UI during cap, disabled for -s
1698 changed show cap stats, updates timer list, finally
1699 changed 'k' keep to 'o' override timer
1700 changed jivo to show one signal bar instead of all [WIP]
1701 changed timer cap sets sets scan channel to next timer chan
1702 changed add/delete timer saves timer config, change/reset timer doesn't
1703 removed V4L2 signal strength from V4L1 driver return and parse
1704 moved SCHED FIFO before sync check to prevent buffer overruns
1705 moved dump cap stat to be within -l scope
1706 added close/open device at end of cap to prevent last buffer overrun
1707 added test packet for use by test sync and fifo output minimal check
1708 added more one shots to reduce excessive calls, from gprof analysis
1709 added 'c' change timer, adjusts running or queued timers [WIP]
1710 added test sync to fifo output loop. stream monitor, no editing
1711 added header line for capture status superfluous blinky lights
1712 added for multicard: 'm' moves timer from current cfg to another,
1713 caused: changed move timer and save cfg ignores timers w/o day bit
1714 changed load cfg to not reset/load temp timers w/o day bit
1716 2.6.7: ok for both HD2000 and HD3000 V4L1, partial V4L2
1717 2.4.26: ok for HD2000, but kernel issues with HD3000 module load.
1718 I don't have HD3000 working yet on 2.4.26, HD2000 is ok,
1719 but if you do, pchdtvr should see it and use it.
1721 -------------------------------------------------------------------------------
1724 fixed 't' timer, 'd' delete, resets tsvc/vt & fixed prompt + headers
1725 fixed -t only disables initial timer load, not all future loads
1726 fixed sig scan always shows NLK after 'x' clear
1727 fixed empty timer list prompt in wrong place at wrong time
1728 fixed user req: variable len callsign and net id.
1729 fixed jivo to work with latest cosmetics
1730 changed top left 0,0 displays version+email then last cap status
1731 changed dump cap stats to show fileout from filein, 1 line w/o -x
1732 changed kb LEDs need -x, as falls under hd2000 extras category
1733 changed blank virtual LED indicators when scan off
1734 changed manual cap is green, timer cap is red
1735 changed some commentary updated to current methods
1736 added preliminary V4L2 API, seems broken or know how to use issues
1737 tested with linux kernel 2.6.10: made driver 1.5 suspend/resume nop
1741 fixed jivo for use with stock driver. forgot to test it -rc1. sorry :>
1742 added commentary segmentation to gtk refresh. ordering needs work.
1743 added -t to not load timers when config file loaded, for those days
1744 when antenna tests are more fun than watching re-runs.
1745 added error msg to alert which config file could not be found
1747 2 card, HD2000 + HD3000, testing 1.5 drivers, so far looks GREAT!
1748 I doubt my machine can test 4 cards to a single hard drive.
1749 But I might get another hard drive and let you know.
1750 UPDATE 2005-Jan-17: works fine, 4 cards to single drive. WHEE!
1752 -------------------------------------------------------------------------------
1755 fixed deleting last timer on list left timer on console, now erased
1756 fixed timer headers always display when in timer screen
1757 removed args for channels, uses config file Cx lines instead now
1758 removed all (19+) -2/+2 chanadj by adding 0,1 to ptc[],
1759 audited snprintf and strncpy to use sizeof(dest)-1 where needed
1760 changed load/save config: 'Tx' timerlist 'Cx' scanlist channels
1761 changed key for clear timers to '~' to reduce accidents
1762 changed key for input config to '|' to reduce accidents
1763 changed key for config write to '+' to reduce accidents
1764 changed cap leds allocation to 8 hours
1765 added device autodetect, autoconfig select, can still override with -i
1766 added card# to log display and console header display
1767 added strength & peak to 'x' clear
1769 Send to Jack & Rusty after verifying against unmodified 1.5 driver,
1770 and against my patches for instrumentation. All works ok so far.
1772 -------------------------------------------------------------------------------
1773 pchdtvr - on the road to 1.0
1776 removed fine tune setting and keys because no observed benefit to ATSC
1777 changed -i to take numeric (0-3) or /dev/dtv# argument
1778 changed default config file to /etc/pchdtvr.0.conf: 0 = card #
1779 changed signal strength display to simplify, use 'p' to cycle extras
1780 changes to variables and text to reflect SNR/AGC instead of post/pre-EQ
1781 added multi-card support: HD3000 + HD2000; finally got my HD3000s!
1782 added -x optional instrumentation support video_signal.aux extension
1783 added to get signal lock: more conditionals for HD3000 signal support
1787 changes to match instrumentation driver video_signal.aux extension
1788 changed aos log format to show decimal % of signal strength
1789 added use of VIDIOCGCAP to set is_hd2k based on device name
1790 added preliminary HD3000 support via conditional is_hd2k
1794 changed timer/free status, add space to end to get rid of ))
1795 changed fileout name status, remove path
1799 changed RMS log for AGC, removed avg
1800 changed file remove log to reflect user zap vs automatic delete
1801 changed compile info at top because someone reported needing -lm
1802 changed console exit to not remove renamed
1805 pre5-1.0 20040913 Are you ready for some football?
1806 NFL fix, added 'k' to switch capture to manual mode for game overrun
1810 cap fails sometimes: collect/log AOS data for all 15 tuning attempts
1811 log format: Bb, repeated 15 times, for 30 chars
1812 B is high nyb of post, 0-A is bad, B C D E are in good signal range
1813 b is . no error, E RS fail, L lock fail, X both
1815 creates .stat signal log file for each cap, ~78 bytes per minute of cap
1816 file is created at end of capture, with summary lock/error info.
1820 better indication of no lock reason in signal scan.
1821 jivo checks DISPLAY envar being set before checking for gtk.
1825 CAP LED blinks during capture, cycle is 2 seconds.
1826 NUM LED echoes green Lock LED, cap once per second, more during scan.
1827 SCR LED echoes red Error LED, cap once per second, more during scan.
1828 jivo reflects err on status line to indicate red Error LED.
1830 keyboard LEDs use more flexible console ioctl instead of VT ESC codes.
1831 You will not have any LED control if you start from X,
1832 but it's only for knowing what console is doing, without
1833 having to actually switch to it to see what it's doing.
1835 NOTE: 'reset' if your LEDs don't respond to respective keys.
1839 Changes to get it ready for 1.0:
1840 Error and Carrier LED indicators in console, scan or capture.
1841 Capture abort if Error LED on too long (TESTME:)
1842 Compiles and works the same on gcc2/kernel2.4 and gcc3/k2.6,
1843 hopefully, using the drivers you will find at:
1844 http://www.nop.org/inkling/dtv/kernel/ *-pchdtvr.tgz
1848 0.9z-pre1-1.0 20040525-20040817
1849 minor tweaks, keys & help & usage, default capture dir is . now.
1850 changed -c to be config path and -s to be capture seconds, makes sense.
1852 0.9z is the candidate for 1.0, but GTK2 issues, i.e. crashes if X does.
1853 Recover from X crash/kill somehow via msg, signal, whatever so
1854 GTK2 panel can be shut down properly and not crash console.
1855 (Update: NOT GOING TO BE DONE. It seems IMPOSSIBLE to do, too.)
1857 Final console issue before 1.0-pre is No Carrier or Reed Solomon Error
1858 should cause the capture to abort, rather than capture bad stream.
1859 Abort should happen only if Error is set for at least one minute.
1862 X fault-tolerant GTK2 panel restart is a dead end for now.
1864 Recovery scrapped because recovering from X death seems impossible.
1865 Trapping SIGPIPE on X terminate did help, but not much. Without a
1866 method to de-alloc and re-init GTK2 structures, fault-tolerant
1867 gtk panel looks hopeless, or I'm not imaginative enough.
1869 -------------------------------------------------------------------------------
1870 pchdtvr - a bunch of silly stuff trying to find road to 1.0
1872 0.9z 20040525 add scan fine tune keys: - -125kc , = +125kc, 0 reset, useful?
1873 (NOTE: tuner gets FM mono, for grins, but not very useful at 4x step)
1875 0.9y 20040521 chg console 'g' doesn't crash after X dies? nope, still broken
1876 0.9x 20040514 fix gtk controls; capture reschedule stop zap; strength bars colored
1877 0.9w 20040511 add gtk control panel; remove sigacts
1878 0.9v 20040503 add snr avgs, 'x' clears; display fixups
1879 0.9u 20040501 add sig re-routes, chan sig 21-26; add surf-experiment; fix dump
1880 0.9t 20040430 fix find cfg, sig27 status dump, mkdir out_path, save_cfg
1882 0.9s 20040428 permission to use "pchdtvr" granted, code listed on pchdtv.com
1883 0.9s 20040428 fix sig_init, fifo_*_loop w/ sigaction; fix limit sigs to pid_m
1885 -------------------------------------------------------------------------------
1886 pchdtvr - a name that is more specific to the application, pending permission
1888 0.9r 20040427 add sig_init/ctl, find cfg, detach w/timers; update usage etc
1889 0.9q 20040426 quick fix usage/keyhelp for bad programming style. whoops.
1890 0.9p 20040425 add show signal; del redundants, vt redux; show timers redux;
1891 0.9o 20040424 fix [] at first/last, [] lock; del ch fr sid cfg; display redux
1892 0.9n 20040423 fix set sched outside loop; getopt finally; 1.0 is soon
1893 0.9m 20040422 fix val_cfg now ages timers right, no timer shuffle at start
1894 0.9l 20040421 fix testmode, bad hk:, []td keys; add set sched; ts cap con/clk
1895 0.9k 20040420 fix syslog /0: user start/stop <1s; fix zap, remove()+msgs
1896 0.9j 20040416 add sigpeaks chanlist, 'x' to clear peaks; % and bar fixes
1897 0.9i 20040413 chg stay on last chan rec; timer/channel list tweaks
1898 0.9h 20040409 chg free stats; keys: p sigraw, S sigtimeout, d deltimer
1899 0.9g 20040408 add some cron support: syslog, still needs fprintf replaced
1900 0.9f 20040407 chg display days as 1st char; fix 'r'eque/remove active timer
1901 0.9e 20040404 fix reschedule validate_config; add hilites, free space, headers
1902 0.9d 20040403 del overwrite w/o trunc: gives fifo full; add sigscan timeout
1903 0.9c 20040402 chg 'l' key timer display; toggle 1chan+timers or chans+sig
1904 0.9b 20040401 del debug msgs; cleanups; add fs_free to timer totals
1905 0.9a 20040331 del obsoletes, ntsc mode, always use multi-threads
1906 0.9 20040331 add validate_config: inits timers/day; fixes/smooth reload
1908 -------------------------------------------------------------------------------
1909 hdvr - high definition video recorder
1911 0.8p 20040330 chg timer logic kludges for validate_config
1912 0.8o 20040329 chg dst time shift indicated with - +; ldcfg at dst chg
1913 0.8n 20040325 chg 'i' forces ldcfg; ldcfg post rec; len+3s adjust svcfg
1914 0.8m 20040323 chg msg colors: redux; man rec whi; timer today grn, rec red
1915 0.8l 20040318 add timers total, minutes total and gigabytes required total
1916 0.8l 20040315 chg sync, define RESYNC; rename/delete; some timers age out
1917 0.8k 20040313 del some debug msgs; chg manual save format to NET.ts
1918 0.8j 20040312 chg resync method; TIMER_LIST_MAX larger but needs dyn alloc
1919 0.8i 20040311 add stat check to reload cfg file if mtime changes
1920 0.8h 20040310 fix use_2threads & use_sched: xine play fifo full fail fixed?
1921 0.8g 20040309 chg msgs: mhz; set manual capture tuner colors, total timers
1922 0.8f 20040307 chg xine file_input.c O_STREAMING = 100% cpu, removed patch
1923 0.8e 20040305 fix multi fifo calloc & moved to main to alloc vm at start
1924 0.8d 20040304 fix timer capture overlap: len - 3sec for tuner setup
1925 0.8c 20040302 chg some routines broken down into smaller pieces
1926 0.8b 20040301 add sig struct; obsoleted fifo->ready, was old method
1927 0.8a 20040229 add timer sort to put next/current timer at top
1928 0.8 20040227 fix reschedule logic, add load/save cfg, TIMER_LIST_MAX+4, fifo full bughunt
1930 0.7c 20040227 add reschedule weekday bitmask; reset timer scrapped for now
1931 0.7b 20040226 add weekday bitmask input, timer display rearrange for it
1932 0.7a 20040225 fix fifo output sleeping on wrong bench, rousted the bum
1933 0.7 20040223 fix timer bugs, finish add use_2threads, both need testing
1935 -------------------------------------------------------------------------------
1936 dsr - digital signal recorder
1938 0.6 20040221 add timers, 8 daily only right now, by all weekdays is goal.
1939 0.5 20040219 add fifo in thread, needs tuning, cc prev to J.S.Kelliher
1940 0.4 20040217 add ECMA48/VT102 color/cursor, ch pre/nxt/sel keys [/]/1-9
1941 0.3 20040216 fix ingo fifo, works well now, ~2% or less cpu
1943 0.2b 20040215 chg to ingo oeser fifo idea @ linux-audio-dev@music.columbia.edu
1944 0.2a 20040214 add 1st gen fifo, my own bad code, didn't work well
1945 0.2 20040213 test slightly better but still stream corruption, no fifo
1946 0.1 20040211 test first version, didn't work well at all, stream corrupted