1tumble TODO list
2$Id: TODO,v 1.20 2003/03/25 01:36:56 eric Exp $
3
4No particular order.
5
6-----------------------------------------------------------------------------
7
8tumble:
9
10* input handlers shouldn't use globals, use pointer to private structure
11  instead.
12
13* multiple "-b" options on command line
14
15* page labels on command line
16
17* pages containing multiple images
18    * spec language needs major changes
19    * split process_page into multiple parts:
20        * open page
21        * add image
22        * close page
23
24* overlay G4 images in different colors - use ImageMask and the fill color
25
26* crop
27
28* page sizes
29    * metric
30    * check page size, if off by too much, generate warning message and
31      use actual scan size
32    * multiple page sizes, pick the right one?
33
34* range checking
35    * rotation (0, 90, 180, or 270)
36    * page number style (D, r, R, a, A)
37
38* watermarking - in image?
39
40* flip, transpose
41
42* support color & grayscale TIFF images
43    * pass JPEG through unchanged, others must be encoded
44
45* support PNG, BMP, and other input file formats
46
47* generate text, line art - option to embed fonts
48
49* bilevel thresholding of color and grayscale input
50
51* automatic separation using timify code from Tim Shoppa?
52
53* automatic image detection using DCT or FFT
54
55* downsampling
56
57-----------------------------------------------------------------------------
58
59bitblt routines:
60
61* finish optimized bitblt code
62
63* optimize inner loops in flip_h and flip_v with Duff's Device
64
65* check for endian problems
66    * reading TIFF (don't define TIFF_REVERSE_BITS on some hosts)
67    * rle table
68    * g4_get_pixel()
69    * g4_find_pixel()
70
71* g4_find_pixel should use native instructions where available
72    * 386:  BSF  bit scan forward
73    * PowerPC:  CLTLZ, CNTLZW  count leasing zeros  (CNTLZD 64-bit)
74    * MC68020:  BFFFO  bit field find first one
75    * Alpha 21264A:  CTTZ  count trailing zeros
76
77-----------------------------------------------------------------------------
78
79PDF routines:
80
81[Page numbers refer to _Portable Document Format Reference Manual_ by
82Adobe Systems Incorporated, Addison-Wesley, 1993.]
83
84* Flate compression - including predictors
85
86* ModDate and CreationDate keys in Info dict
87
88* ID key in trailer dict
89
90* proper output of real numbers - variable precision, no exponent
91
92* bookmarks (outline) should allow alternate destination specs, currently
93  only /Fit is supported
94
95* balance pages tree - currently a degenerate single-level tree, but the
96  PDF spec recommends max. of 6 children per parent
97
98* thumbnails
99
100* PDF Page rotate attribute (p. 53)?
101
102* memory management - need to reference count all structures and free
103  them as appropriate - not necessary for t2p program
104
105* when an object is written to the file, set a flag to indicate that
106  it is now immutable
107
108* name trees, number trees - when finalize is called, set immutable flag
109  and allow no further changes
110
111* buffered streams (vs. current callback mechanism for unbuffered streams)
112
113* add support for streams with multiple filters
114
115* linearize ("optimize")
116