File: BUGS

package info (click to toggle)
zapping 0.10~cvs6-2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 9,856 kB
  • ctags: 11,841
  • sloc: ansic: 111,154; asm: 11,770; sh: 9,812; xml: 2,742; makefile: 1,283; perl: 488
file content (237 lines) | stat: -rw-r--r-- 10,941 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
Known bugs in Zapping, don't report them
----------------------------------------

Zapping 0.10:
* TTX does not work when XV overlay enabled? 
* Why 100% CPU in win/over w/VBI=1?
* Cannot switch to capture mode when VIDIOC_G_FMT fails (e.g. after
  bttv PALETTE_RAW capturing).
* When the system has different kernel and XVideo devices Zapping attempts
  to restore the last video input etc before switching the device (i.e.
  capture mode) and the hash doesn't match.
* Capturing is restarted on a video input or standard change because
  size limits may change, but overlay is not.
* Teletext bookmark editing window translation is incomplete.
* Teletext TOP menu lists pages which aren't cached, and sometimes doesn't
  open the page (while typing the page number by hand works).
* --device emulator, Screenshot toolbutton, PPM -> JPEG,
  deinterlace: forward, crash.
* Doesn't save the video standard on exit?
* On startup after a standard change V4L2 does not reset cropping
  parameters and the image format.
* tveng25.c doesn't call VIDIOC_S_PRIORITY.
* The black display on capturemode=0 is confusing. Show a JPEG instead.
* Check what happens when tuner ioctls fail (e.g. wrong driver option card=n).
* Can we prevent a problem similar to that reported by Tony 2005-12-29?
* Check why attaching a device fails when tveng1.c/VIDIOCGAUDIO returns
  an unexpected errno.
* Check if the video device fd passing to a zapping_setup_fb child process,
  and the stderr pipe work properly through consolehelper.

Zapping 0.9:
* src/tveng1.c/p_tveng1_dequeue/CSYNC hangs with bttv when changing video
  standard PAL NTSC PAL. Timeout SIGALRMs but doesn't EINTR.
* Video input and standard changes are not allowed while recording
  but channel changing is.
* The error box on video input and standard changes while recording
  appears more than once.
* Recording hangs if the (v4l2) driver grants only one buffer, despite
  copying in the capture thread.  Requires at least double buffering?
* make check does not execute
  all code in GreedyH (pulldown stuff in particular).

Zapping 0.7.2:
* bktr: Closing and reopening /dev/bktr, /dev/tuner sometimes fails
  when /dev/vbi is open. Apparently close() does not call the driver
  close function before open(). Strange.

Zapping 0.7 bugs, need more work later:
* Video size isn't always right on startup.
* Spinslider minimum sizes.
* Select composite, quit, restart, back at "television". Problem: channels
  have a video input parameter, and selecting composite does not
  switch the channel, so on restart the channel's input is restored. We
  could have a "null" channel, but what about e.g. ttx bookmarks?
* Prefs does not apply screenshot add toolbar option. Seems to be
  another gtk_widget_show/hide toolbar item problem.
* When a/v recording is started under high system load the
  timestamps may differ too much, triggering the mp1e
  "cannot sync" check and aborting Zapping.
* 2003-11-27 From windowed overlay to fullscreen w/automatic vidmode hang
  on RH at switch_mode (PREVIEW) -> z_set_window_bg -> calloc segv.
  Circumstances might be coincidental, it doesn't happen predictable.
  valgrind --skin=addrcheck was inconclusive:
   ==17270== Invalid memory access of size 4
   at 0x40424ABB: gconf_engine_all_dirs (in /usr/lib/libgconf-2.so.4.1.0)
   by 0x4042A0E9: gconf_client_preload (in /usr/lib/libgconf-2.so.4.1.0)
   by 0x404292A3: gconf_client_add_dir (in /usr/lib/libgconf-2.so.4.1.0)
   by 0x40279941: (within /usr/lib/libgnomeui-2.so.0.200.0)
   Address 0x0 is not stack'd, malloc'd or free'd
   No recipient addresses found in header
  Program segv'ed before window opened.
* 0.7 seems to run slower than 0.6, must profile.
* Overlay needs a review.
* Prefs toolbar style menu does not update when config changes
  (should it?) and selection cannot be canceled.
* mpeg plugin doesn't link with libdivx-20030428.
  Undefined reference to __start_cp_handler, __eh_rtime_match.
  g++ doesn't help, no .a|.o|.so found. Where the fsck are they defined??
* Edited channels, clicked ok, tc==NULL in tuned_channel_nth_name().
  Not recently observed, perhaps fixed.
* Mute button is on after unmute, quit, restart. Seems to be a driver
  effect.
* Doesn't always reset hue on startup?
* drose: "Under mdk 9.1 the video capture stops for no reason.
  Start recording to a file -- come back in ten minutes, 1 - 3 minutes
  of video are stored and zapping wasn't running." Works for me.
* Overlay doesn't work right with RANDR reduced resolution, apparently
  due to wrong frame buffer bpl.

Zapping 0.6 bugs, need verification:
* RPM creates incorrect zsfb.capps 
* zsfb.capps conflicts with RPM relocation.
* Look for endianness problems.
* vbi eats too much CPU, investigate.
* Overlay (no XVideo) under E is broken, shading the window
  isn't correctly detected.
* Do not assert on ESD timeout

tvengxv.c
* Need to handle BadAtom errors resulting from Xv out
  of video memory (or no v4l device?). Currently gdk traps errors
  and just aborts the App.
* We must not rely on XvQueryPortAttributes(), this is a later
  (XFree86-only?) extension of the XVideo API. It already defines
  some attribute names and ranges, and XvGetPortAttribute() will tell
  if they are implemented by the driver.
* configure.in must check for different versions of xv.

Debian bugs
* 126641 - zapping_remote, see also sf.net. Without X to do.
* 198942 - Open.

Kernel
------
bktr driver:
* Incomplete and broken in many ways, not always possible to work around.
  For details search tvengbktr.c for "Bug".

sn9c102 1.0.8 driver:
* CROPCAP overwrites type (was _IOR, now _IOWR).
* G_INPUT requires cleared index input.
* TRY_FMT does not copy data back to user space.
* ENUM_FMT overwrites type.
* NONBLOCK open fails with EAGAIN if the device has users, and it
  seems the counter is never decremented when the USB device is
  disconnected at close time.
* mmap fails for > 1 buffers, apparently because
  m.offset isn't page aligned.

bttv driver:
* 0.8.x: When video capturing is disabled while VBI capturing is
  active, the driver passes VBI frames at the end of the first field
  (i.e. F1-F0, F3-F2, ... instead of F1-F2, F3-F4, ...)
* 0.9.14: with YUV 4:2:0 activation of VBI capturing can cause a
  SCERR & driver reset, DQBUF -> EIO.
* bt8x8 has no PAL delay line, or is disabled in YUYV mode?
* tveng2/bttv-0.8.x permits capture size exceeding hardware capability?
* Audio mutes when switching from capture to fullscreen with
  bttv-0.8.x and Xv/v4l, although Zapping sends XvSetPortAttribute
  XV_MUTE 0. Works normal with bttv-0.7.
* 0.9.5: Overlay seems to be broken.

v4l1-compat:
* VIDIOCSPICT: Discards VIDIOC_S_CTRL and VIDIOC_S_FMT(CAPTURE)
  errors (e.g. unsupported palette). Calls VIDIOC_G|S_FBUF without
  checking for overlay support and discards the resulting EINVAL.
* VIDIOCGPICT: Discards VIDIOC_G_CTRL errors, possibly return invalid
  values.

XFree86/Xorg
------------
* XvQueryAdaptors seems to report wrong num_formats value, maybe a
  DIX or DDX bug.
* XvListImageFormats, XvQueryPortAttributes not documented. Result
  must be XFree()ed.
* XvImageFormat: Some drivers define incorrect component_order.
  There are no Window FOURCCs for RGB formats, consequently drivers
  disagree about id and guid.
* Xinerama & XvQueryAdaptors: Each Xinerama screen may be a different
  graphics card with its own set of Xvideo adaptors and attributes.
  As of X.org 6.7 we cannot query them because the window parameter
  resolves to the virtual screen, not physical screens.
  XvQueryAdaptors always returns the adaptors of the first physical
  screen and Xinerama appears to map these adaptors to physical ones,
  but that works only for XvPutImage and the v4l wrapper (or not).

V4L XVideo driver (xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c)
* Success of ioctls is not checked.
* Does not consider audio.mode changes semantics on read/write.
  V4lSetPortAttribute():
    } else if (attribute == xvMute ||
	       attribute == xvVolume) {
	ioctl(V4L_FD,VIDIOCGAUDIO,&pPPriv->audio);
	if (attribute == xvMute) {
	    if (value)
		pPPriv->audio.flags |= VIDEO_AUDIO_MUTE;
	    else
		pPPriv->audio.flags &= ~VIDEO_AUDIO_MUTE;
	} else if (attribute == xvVolume) {
	    if (pPPriv->audio.flags & VIDEO_AUDIO_VOLUME)
		pPPriv->audio.volume = xv_to_v4l(value);
	} else {
	    ret = BadValue;
	}
	if (ret != BadValue)
	    if (-1 == ioctl(V4L_FD,VIDIOCSAUDIO,&pPPriv->audio))
		perror("ioctl VIDIOCSAUDIO");
* Encoding is not reset on open? Apparently cought when Zapping opens
  the v4l/2/5 interface too (try remove the modules in tveng.c, or
  start xv overlay while a radio app runs).
* Reports wrong tuner frequency range:
  static const XF86AttributeRec FreqAttr =
    {XvSettable | XvGettable,     0, 16*1000, XV_FREQ};
* Ignores tuner frequency scale factor (62.5 Hz, 62.5 kHz). Supposedly
  the Hz scale was added for SW radio, but the V4L/2 spec nowhere says
  tv receivers must support kHz only.
  V4lSetPortAttribute():
  } else if (attribute == xvFreq) {
      if (-1 == ioctl(V4L_FD,VIDIOCSFREQ,&value))
          perror("ioctl VIDIOCSFREQ");
  V4lGetPortAttribute():
  } else if (attribute == xvFreq) {
     ioctl(V4L_FD,VIDIOCGFREQ,value);
* XV_FREQ semantics not documented, e.g. scale 62.5 kHz.
* XvEncodingInfo does not report if the input is a tuner and
  XV_FREQ access appears to succeed on all inputs.
* According to XvQueryPortAttributes() this device has 2001
  video standards and inputs (no, I didn't try them :-)
  {XvSettable | XvGettable, -1000, 1000, XV_ENCODING}

NVidia driver (binary, not xf86)
* Reports tv output port with type XvInputMask | XvVideoMask.
  Should be XvOutputMask. Workaround in place.
* DGA and V4L conflict with XAA?

NeoMagic driver (xc/programs/Xserver/hw/xfree86/drivers/neomagic)
* The only port is of type XvInputMask | XvImageMask | XvWindowMask |
  XvOutputMask | XvVideoMask. It supports PutVideo (video in) and
  PutImage (image out), probably not both at once. XvQueryAdaptors man
  page does not state if such a combination of flags has to be
  expected. Actually it doesn't even mention the XvImage extension.

Savage driver (xc/programs/Xserver/hw/xfree86/drivers/savage/savage_video.c)
* Minor nit: comment says YV12, I420 == 4:1:1, actually 4:2:0. The
  alleged 2:1:1 is really a half width 4:2:2, there's no such thing as 2:1:1.

Glint driver (xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_video.c)
* Does not list XV_ENCODING with other attributes for
  XvQueryPortAttributes(). Only two other drivers have XV_ENCODING,
  namely V4L and SMI (xc/programs/Xserver/hw/xfree86/drivers/
  siliconmotion/smi_video.c), and both list it, but I wonder if it
  really belongs with attributes. This is no picture control and the
  info is redundant with XvQueryEncodings(). Workaround in place.

-------------------------------------------------------------------------------

If it ain't broken... it is now.