File Release Notes and Changelog
Release Name: 0.7.1
Notes:
This time we have three major improvements: Zapping now runs on FreeBSD
using the bktr driver, missing only support for remote controls and
recording. Again it also runs on Solaris using XVideo, fixes courtesy
of Roger Fuji. Finally Xinerama is supported in all display modes.
In the minor improvements category the Teletext mode now shows a second
toolbar instead of squeezing more buttons into the primary toolbar.
Important bug fixes:
- Using V4L2 (Linux 2.6) there is now a working audio mode
(mono, stereo, SAP) control.
- Position of subtitles in fullscreen mode was wrong.
- Alirc VOL_UP/DOWN did not work.
Changes:
2004-09-13 <mschimek@users.sf.net>
* Release 0.7.1.
2004-09-13 <mschimek@users.sf.net>
* src/x11stuff.c (x11_vidmode_switch): No-Vidmode fix.
* src/zmisc.c (zmisc_switch_mode): Fixed previous_mode.
* help/C/zapping.xml: Version number update.
* src/fullscreen.c: Vidmode fixes.
* src/zmisc.c (zmisc_switch_mode): Teletext tool button fix.
* libtv/screen.c: Made sure screens have a pixfmt without DGA.
(dga_query): If possible try to determine screen pixfmt from
XDGAModes, don't guess bpp 16, more sanity checks. No-DGA fix.
2004-09-11 <mschimek@users.sf.net>
* src/main.c (main), libtv/screen.c (dga_query),
zapping_setup_fb/zapping_setup_fb.c (main): Accept only
--bpp 24 or 32.
2004-09-09 <mschimek@users.sf.net>
* src/interface.c (create_zapping): Create a Zapping instance
instead of GnomeApp for modularity.
* zapping_setup_fb/zapping_setup_fb.h: Rewrote using Xinerama
aware libtv routines.
* zapping_setup_fb/zapping_setup_fb.c: Rewrote using Xinerama
aware libtv routines. Added new --screen option to select the
exact physical screen in Xinerama configuration.
* zapping_setup_fb/v4l25.c, zapping_setup_fb/v4l2.c,
zapping_setup_fb/v4l.c: Switched from old x11_dga_parameters
to tv_overlay_buffer.
* zapping_setup_fb/dga.c: Replaced by Xinerama aware libtv routines.
* zapping_setup_fb/Makefile.am: Removed dga.c, added internal
libtv dependency.
* src/zmisc.h: Added CONST_PARENT and _unused_ attribute.
Added some useful constants to improve code documentation.
(z_set_overlay_buffer): New helper to set overlay buffer from
display and screen number (Xinerama).
* src/zmisc.c: Added functions to translate obsolete
tveng_capture_mode which is still used in zapping conf.
(zmisc_switch_mode): Cleaned up overlay and fullscreen code.
(z_set_overlay_buffer): New helper to set overlay buffer from
display and screen number (Xinerama).
* src/zconf.h, src/zconf.c: Replaced zc/zconf _integer functions by
_int and _uint for proper type checks.
* src/x11_stuff.h, src/x11_stuff.c: Added functions to ask WM for
fullscreen display of window. Rewrote x11_vidmode routines to
consider display and physical screen number, size and position
for proper Xinerama support. DGA routines merged with new
Xinerama routines and moved to libtv for zapping_setup_fb.
(x11_window_clip_vector): Used to create clips outside overlay
rectangle when it did not align with containing window, fixed.
* src/tvengxv.c (p_tvengxv_open_device): Use given window, i.e.
physical screen, to query adaptors. Removed unused overlay_window
functions.
* src/tveng1.c, src/tveng2.c, src/tveng25.c (set_overlay_window):
Function now takes a clip_vector parameter, puts window relative
to overlay_buffer origin (Xinerama), cleaned up.
* src/tvengbktr.c (set_clips): Function now takes a clip_vector
parameter, puts window relative to overlay_buffer
origin (Xinerama). Cleaned up and simplified things after
moving clip checks to tveng.c.
* src/tveng.h: Moved tv_bool, tv_pixfmt, tv_image_format,
tv_overlay_buffer to libtv for zapping_setup_fb. Moved
tv_clip_vector to libtv. X window pointers in tv_window
no longer used, removed.
* src/tveng.c: Public functions clear the error string on entry.
In overlay mode, do not expect the driver can handle an
invisible overlay window. Moved tv_pixfmt routines to libtv
for zapping_setup_fb.
(p_tveng_set_preview): dga_param is gone, now the overlay buffer
must be any one of the physical screens (Xinerama).
(p_tveng_set_preview_window): Check that clips stay within
overlay buffer and window bounds. Check that clips are valid
and in proper order.
(tv_set_overlay_buffer): Added display_name and screen_number
parameters so we can tell zapping_setup_fb the exact physical
screen (Xinerama).
(tveng_device_attach): Added window parameter to
open only Xv drivers which can put video onto that physical
screen.
* src/remote.h, src/remote.c: Added PyArg_ParseTuple wrapper
with proper const args.
* src/main.c (main): Query and report physical X screens (Xinerama).
* src/globals.h, src/globals.c: Added list of physical X
screens (Xinerama).
* src/overlay.c: Rewrote for Xinerama (choose the right
physical screen initially and on window motion, clean only
the ps we DMA'ed, open right Xv driver).
* src/fullscreen.c: Rewrote for Xinerama (choose the right
physical screen, use ps vidmodes instead of virtual screen,
limit black window size to ps size, open right Xv driver).
Use NET_WM_STATE_FULLSCREEN, since the old hack does not work
with Gtk 2.6 anymore and most WMs should support this now.
* src/Makefile.am: Added internal libtv dependency. Added
Xinerama to LDADD.
(zapping_SOURCES): Added zapping.c, zapping.h.
* src/zmisc.h, src/zmisc.c, src/properties.c, src/main.c,
src/interface.c, src/globals.h, src/globals.c, src/cmd.c,
src/capture.c, src/audio.c, plugins/screenshot/screenshot.c:
Replaced GtkWiget* main_window by Zapping GObject.
* plugins/mpeg/mpeg.c: Removed lots of unused local vars.
* src/zmisc.c, src/tveng_private.h, src/tveng.h, src/tveng.c,
src/overlay.c, src/main.c, src/globals.h, src/globals.c,
src/fullscreen.c, src/cmd.c, src/channel_editor.c,
src/capture.c, src/audio.c, plugins/mpeg/mpeg.c,
plugins/alirc/alirc.c: Split tveng_capture_mode into display
and capture mode for future fullscreen capture and Teletext.
* pixmaps/Makefile.am: Depend on self, fix type of
gdk_pixbuf_csource output.
* common/videodev2.h: Removed LINUX_VERSION_CODE warning, this
symbol may be undefined.
* configure.in: Changed to use automake 1.7. Removed compile
warning flags, users must set CFLAGS themselves now. Added
libtv/Makefile output. Added endian check for libtv/pixel_format.c.
* autogen.sh: Require automake 1.7 or compatible, updated Plan B.
* Makefile.am (SUBDIRS): Added libtv.
* src/zvideo.c, src/zvbi.c, src/zmisc.c, src/zimage.h, src/zimage.c,
src/zconf.h, src/zconf.c, src/yuv2rgb.c, src/xawtv.c,
src/x11stuff.h, src/x11stuff.c, src/video_xv.c, src/video_x11.c,
src/video_mem.c, src/video_gdkrgb.c, src/vdr.c,
src/v4linterface.h, src/v4linterface.c, src/tvengxv.c,
src/tvengemu.c, src/tveng_private.h, src/tveng25.c, src/tveng2.c,
src/tveng1.h, src/tveng1.c, src/tveng.h, src/tveng.c,
src/ttxview.c, src/remote.c, src/properties.c,
src/properties-handler.h, src/properties-handler.c,
src/plugin_properties.c, src/plugin_common.h, src/overlay.c,
src/oss.c, src/osd.c, src/mixer.c, src/main.c, src/keysyms.h,
src/keyboard.c, src/interface.c, src/fullscreen.c,
src/frequencies.h, src/frequencies.c, src/esd.c, src/csconvert.h
src/csconvert.c, src/cmd.c, src/channel_editor.c, src/capture.c,
src/audio.h, src/audio.c, src/arts.c,
plugins/screenshot/screenshot.h, plugins/screenshot/screenshot.c,
plugins/screenshot/deint.c, plugins/screenshot/b_ppm.c,
plugins/screenshot/b_jpeg.c, plugins/mpeg/options.c,
plugins/mpeg/mpeg.c, plugins/alirc/alirc.c, common/fifo.h,
common/fifo.c, common/device.c, common/alloc.h:
Const, signedness, unused function parameters, void
pointer arithmetic fixes.
* src/zapping.c, src/zapping.h: Added to modularize things more
in the future.
* libtv: Added for zapping_setup_fb.
* libtv/clip_vector.c, libtv/clip_vector.h, libtv/image_format.c,
libtv/image_format.h, libtv/overlay_buffer.h,
libtv/pixel_format.c, libtv/pixel_format.h: Moved here from
src/tveng.c, src/tveng.h.
* libtv/clip_vector.c (tv_clip_vector_copy): Fixed too small realloc.
* libtv/screen.c, libtv/screen.h: Merged DGA and Xinerama routines,
moved here from src/x11_stuff.c, src/x11_stuff.h.
* libtv/macros.h, libtv/misc.h: Cloned from zvbi-0.3.
2004-08-13 <mschimek@users.sf.net>
* src/ttxview.c (ttxview_detach, ttxview_attach): Create second
toolbar in Teletext mode.
* src/zvideo.c (z_video_new): Fixed double instantiation.
2004-08-11 <mschimek@users.sf.net>
* plugins/alirc/alirc.c (legacy_command_txl_table): Fixed
invalid volume_incr command (bug #1005111).
* src/osd.c (ttx_position, cc_position): Corrected subtitle
position in fullscreen mode.
* tvengbktr.c (set_clips): Don't scale clip coordinates when we
capture only one field.
* tveng.c, tveng.h, tveng1.c,tveng2.c,tveng25.c, tvengbktr.c,
zmisc.c: Added TVENG_ATTACH_VBI mode to prepare driver for VBI
capturing only. Required by the bktr driver which cannot capture
VBI without video, otherwise like TVENG_ATTACH_CONTROL.
* zapping_setup_fb/Makefile.am (install-binPROGRAMS): Need not
install when we use the bktr driver.
* src/yuv2rgb.c (mmx_register_converters),
src/csconvert.h, src/csconvert.c (register_converter,
register_converters):
Added converter name parameter for debugging.
* src/xawtv.c (property_get_string): Don't use gdk 2.4 X Atom
functions, must work with 2.0.
* src/video_xv.c (image_new): Fixed mem leak.
(image_new): Await X server confirmation before marking shared
segment for removal (FreeBSD).
(suggest_format): Broken by design, disabled.
(traverse_ports): Add support for RGB formats. Required by bktr
driver.
* src/video_mem.c (planar_image_new): Handle YUV formats besides 420.
* src/vdr.c (vdr_open): Properly close vdr_sock on connect failure.
* src/v4linterface.h, src/v4linterface.c (z_switch_audio_input):
Added audio input menu builder and z_switch_audio_input functions
for bktr.
(z_switch_standard): Restart VBI capturing after standard change.
s/strncpy/g_strlcpy.
* src/tvengbktr.c (set_video_standard): Did not store current
standard, fixed p_tveng_stop_everything call.
(set_tuner_frequency): Undo forced mute after frequency change.
(set_video_input): Undo forced mute after frequency change,
fixed p_tveng_stop_everything call.
(get_signal_strength): Finished for automatic channel scan.
* src/tveng25.c, src/tveng2.c, src/tveng1.c, src/tvengemu.c,
src/tveng_private.h: Cleaned up preview window interface.
* src/tvengbktr.c: Added capture and overlay routines, audio
input support because automatic selection by video input
doesn't seem to work. Rewrote controls code and added mute control.
* src/tveng_private.h: Added driver audio input interface for bktr.
* src/tvengemu.c: Removed redundant get/set_capture_size().
* src/tveng25.c: Replaced audio mode control hack by tveng audio mode
interface. Use audio mode control helper functions in tveng.c. Use
V4L audio ioctl to work around bttv bug. Removed
redundant get/set_capture_size().
* src/tveng2.c: Removed get/set capture_size().
* src/tveng1.c: Replaced audio mode control hack by tveng audio mode
interface, moved control building function to tveng.c. Removed
redundant get/set_capture_size().
* src/tveng.h: Changed tv_audio_capability enum to flag set.
Changed tv_clip width, height to x2, y2.
* src/tveng.c, src/tveng_private.h (_tv_strlcpy): Added, with
strlcpy() fallback if available.
(_tv_strndup): Use strndup() if available.
(_tv_asprintf): Use asprintf() if available.
(append_audio_mode_control, set_audio_mode_control): New helper
function to build and set an audio mode (mono stereo etc) control,
preliminary wrapper for tv_set_audio_mode.
* src/tveng.c (tveng_device_info_destroy): Did not destroy audio
mode callback.
(tveng_attach_device): Mask out bktr YUV formats, conflict with
VBI capturing. Replaced GNU asprintf by _tv_asprintf.
(tv_get_audio_input, tv_set_audio_input, tv_set_audio_mode):
Implemented now.
(tv_pixel_format_to_pixfmt): Expect more unusual input, required
for bktr.
(tveng_copy_frame): Handle planar YUV formats besides 420.
(tv_clip_vector_equal): Handle comparison of same.
(tv_clip_vector_copy): Handle self assignment.
(tv_clip_vector_add_clip_xy): Changed tv_clip width, height to
x2, y2. Fixed band order bug.
(_tv_image_format_dump): Added.
Replaced redundant get/set_capture_size by calls to driver
capture format functions.
* src/remote.c (python_command_printf): Replaced GNU vasprintf
by glib/g_strdup_vprintf().
* src/plugins.c (plugin_load_plugins_in_dir): Replaced GNU scandir
by glib/g_dir functions.
* src/overlay.c: Changed tv_clip width, height to x2, y2.
* src/oss.c (open_pcm): SOUND_MASK_PHONEIN not defined on Solaris.
* src/main.c (restore_controls): Restore current audio input.
(restore_controls): Expect invalid current channel (NULL).
(main, startup_zapping): Use different default / fallback devices
on FreeBSD.
* src/vdr.c, src/keyboard.c, src/interface.c, src/cmd.c:
Moved include remote.h to properly compile on Solaris.
* src/capture.c (scan_device): Take shortcut if set of supported
pixel formats is const.
(request_capture_format_real): Fixed conversion check.
* src/Makefile.am (zapping_LDADD): Missing -lX11.
* plugins/mpeg/options.c (grte_options_load): Skip special options
to keep defaults.
* plugins/mpeg/mpeg.c (plugin_load_config): s/strndup/g_strndup.
* common/structpr_gen.pl: Handle ioctls with plain type parameters.
* common/device.h, common/device.c: Added mmap, munmap wrappers.
* common/Makefile.am (_videodev25.h): RW fixes.
(_bktr.h): Added hints.
* configure.in: strlcpy() check. Bktr driver needs no
zapping_setup_fb and PAM. Don't compile with librte on FreeBSD,
doesn't work right. s/DATADIRNAME/datadir, is a gettextism.