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.
|