VDR Plugin 'xine' Revision History ---------------------------------- 2011-03-16: Version 0.9.4 - The contained xine-lib-1.1 patch is outdated but might still work. The patch will get updated in 0.9.5. - A couple of xine-lib-1.2 patches is still waiting to get commited. vdr-xine-0.9.4 should be able to work without them. - Fixed a couple of things in xine-lib-1.2 and VDPAU. - Fixed compilation for VDR-1.2.x and VDR-1.6.x. - Updated Makefile to VDR-1.7.17. - Added support for VDR-1.7.17s TrueColor OSD. - Added support for VDR-1.7.12s changed PCR handling. - Added support for VDR-1.7.11s semantic of MakePrimaryDevice. - Resolved a segfault regarding VDR-1.7.x and cutting marks in radio recordings (thanks to Joachim Wilke for providing a fix). - Included Lithuanian translation (thanks to Valdemaras Pipiras). - Included Slovak translation (thanks to Milan Hrala). - Included Chinese and Taiwanese translations (thanks to NanFeng). - Fixed MANUAL about centre_cut_out_mode (thanks to Vorg on #xine-vdpau). 2009-06-17: Version 0.9.3 - Updated MANUAL accordingly (e. g. some information about xine engine buffer sizes). - Implemented VDR-1.7.8s cDevice::GetOsdSize() and changed cDevice::GetVideoSize() accordingly. - Implemented video window support while showing an OSD for VDPAU to support plugins like yaepghd. - Clipped settings in setup page to reasonable values while editing to prevent rendering an unreadable OSD. - Introduced separate live TV buffer values for SD and HD video as well as audio to allow faster "zapping" on SD channels while still having large buffers for HD video. - Fixed setup page display while changing OSD extent. - Fixed a memory leak in processing TS still images. - Fixed a bug in processing TS still images which caused the tail of the image to get lost and hence the image not to get shown. - Updated it_IT.po (thanks to Diego Pierotto for providing the translations). 2009-05-03: Version 0.9.2 - Updated MANUAL accordingly. - Added setup options to define OSD extent. - Implemented VDR-1.7.7s cDevice::GetVideoSize() to return an OSDs maximum extent. 2009-04-12: Version 0.9.1 - Adapted PlayTs() to semantic of VDR-1.7.5. - Fixed compilation for VDR 1.2.x, 1.4.x, 1.6.x and 1.7.x. - Added support for tIndex being uint16_t (not tested yet). - Changed trick speed modes to match GetSTC(). - Fixed buffer calculation after discontinuity which caused endless slow motion. - Changed GetSTC() to match VDR 1.7.5's requirements. - Implemented TS support to StillPicture(). - Fixed crash due to calling PlayTs() from different threads. - Fixed crashes due to negative OSD coordinates caused by some skins. - Fixed INSTALL regarding xine-ui cvs repository and how to apply the patches as they have been created differently since release 0.9.0. 2009-01-12: Version 0.9.0 - Updated INSTALL and MANUAL accordingly. - Fixed several multithreading issues which got triggered on SMP systems (thanks to Edgar (gimli) Hucek for reporting issues and testing fixes). - Added support for VDR-1.7.3 besides TS still pictures. - Pulled patched VDR-1.7.2's remux.[ch] for a quick adaption to to VDR-1.7.3 (thanks to Klaus Schmidinger for his approval). - Fixed PTS handling in xine-lib's FFmpeg decoder for recent FFmpeg versions which should provide better A/V sync now. - Added patch sets to input_vdr.c which allow to omit parts of the MRL, e. g. vdr:// should be sufficient now (thanks to Ludwig Nussel for providing them). - Make use of new OSD functionality in xine-lib-1.2. For now an OSD implementation must provide both new features to have vdr-xine make use of it. - Extended OSD support in xine-lib-1.2 to allow truecolor OSDs as well as hardware scaled OSDs. The new functionality is currently only provided by VDPAU enabled installations. - Added frame grabbing support for accelerated frame formats to xine-lib. Previously, xine-lib exitted the app when frame grabbing was requested for accelerated frame formats like xxmc. You'll now get a green image in that case. Reading back the content of an accelerated frame is currently only provided by VDPAU enabled installations. - Hacked support for VDR-1.7.1's new cDevice::PlayTs() method. - Grab image nolonger needs pnmcut to select the relevant area of the TV image. Besides that, grab image respects the aspect ratio you select in VDR's setup menu, i. e. a 16:9 setup and a 16:9 broadcast will grab you a image without black borders. A mismatch of aspect ratios will add black borders to the image to match the visual impression you get on your TV set. Additionally, the grabbing of field pictures was corrected with regard to color upsampling. - A script mkNoSignal.sh is provided to create custom logos. Just provide PNG files named noSignal16x9*.png (and ...4x3... respectively) and have the tools mentioned in INSTALL in your path. You'll have to move your custom logos then over the default files. - The vdr-xine logo is now available in two aspect ratios (4:3 and 16:9) as more channels provide 16:9 content. Then vdr-xine selects the logo which matches VDR's DVB setup option video format. - Added the ability to detect discontinuities in live TV and to start a new buffering period in such a case. This will help to resume to fluent playback from bad weather conditions or when disconnecting and reattaching the antenna cable. - Updated it_IT.po (thanks to Diego Pierotto for providing the translations). 2008-03-10: Version 0.8.2 - Fixed optional parameter processing for parameter -p. As getopt() requires that optional arguments must follow the option switch without any delimiters, I've updated MANUAL accordingly, i. e. all options are documented without delimiters. Furthermore you'll get an error message when specifying the argument for -p incorrectly. - Fixed compilation of patched xine-lib-1.1 (thanks to Darren Salt and Fabian Foerg for contributing fixes for this issue). - Provided xine_get_current_frame_alloc() to xine-lib which allows retrieving the current frame image without the need to pause the stream for a second call to the function after allocating sufficient memory. - Fixed retrieving only valid PTS from xine. xine's metronom is now intercepted to monitor PTS changes after which PTS are considered to be valid. - Fixed handling VDR's clear command. Adding sync points to the stream makes sure that all data on the way to xine up to sync point gets properly dropped. - Added Russian translation (thanks to Oleg Roitburd for providing ru_RU.po). 2008-01-01: Version 0.8.1 - Updated documentation mentioning binary and devel packages for xine-lib-1.2, so compiling xine can be ommited for some distributions. - Updated INSTALL regarding XINE VDR VERSION MISMATCH. - The xine-lib.patch for xine-lib-1.1.x nolonger contains any FFmpeg fixes for H.264 decoding. It is recommended to install a recent FFmpeg and to add --with-external-ffmpeg when configuring xine-lib. - Contributed some xine-lib options for H.264 decoding. - Adopted name and files changes of vdr plugin in xine. - Updated it_IT.po and xineI18n.h (thanks to Diego Pierotto for providing the translations). - Implemented makefile switch VDR_XINE_VERIFY_BITMAP_DIRTY to turn off dirty bitmap verification and hence safing calls to memcpy() and memcmp() for OSD operations. - Removed TCP_NODELAY for the video stream socket to reduce network load. - Fixed OSD scaling for HD subtitles. The scaler nolonger allocates a fixed size buffer for a 720x576 OSD but guesses typical maximum OSD sizes, i. e. 720x576, 1280x720, 1920x1080. 2007-10-24: Version 0.8.0 - Frame duration was not set correctly in xine-lib for H.264 frames, causing frame drops an non fluent playback. - Added network patch (thanks to Tobias Grimm for supplying it). Although I had planned to optimize it to just use one port and only two sockets, I decided to release it in its current state instead of waiting further years. I've just modified it to use a more xine-like MRL netvdr://host:port#demux:mpeg_pes where port is optional (defaults to 18701). The fifo MRL should now be written vdr://tmp/vdr-xine/stream#demux:mpeg_pes, although a single slash will still work, too. - Updated et_EE.po (thanks to Arthur Konovalov for supplying the file). - Fixed a bug in vdr-xine's buffer handling for live TV mode which got most noticeable when switching back from a H.264 channel to a MPEG2 channel, especially when the machine was not capable of playing the H.264 stream in real time. As the buffer was not cleared when switching channels, old H.264 data was sent to xine instead of new MPEG2 data, which caused xine to incorrectly switch to H.264 mode. This behavior could lead to a crash in FFmpeg later. - Fixed OSD handling in vdr-xine as certain subtitles could cause a memory corruption in xine (thanks to Arthur Konovalov for providing sample recordings). 2007-10-17: Version 0.7.12 - Updated INSTALL and MANUAL accordingly. - Added support for VDR-1.5.10's new key kSubtitles and fixed a deadlock due to setting audio volume when changing the primary device. - Added a new configuration option "Connection interacts with EIT scanner" as requested by Boguslaw Juza (see MANUAL for details). - Added some patches to xine-lib regarding H.264 support, as FFmpeg's decoder improved very much during the past weeks. It supports now multithreaded decoding (you need to enable at least 2 threads in xine-ui to make use of it) and almost complete PAFF support which is used for interlaced images. These new features are only available, when xine-lib is configured to use an external FFmpeg installation. - Added support for VDR-1.5.9's OSD levels. - Fixed compiler warnings when compiled with gcc-4.2.x (thanks to Joerg Bornkessel for suppling the patch). - Exchanged noSignal.pes (thanks to Markus Nissl for supplying the new image). 2007-08-30: Version 0.7.11 - Added preliminary support for OSD changes in VDR-1.5.9. - Added preliminary support for H.264 streams. xine uses FFmpeg for H.264 decoding and as the decoder isn't rock stable at the moment and doesn't support all H.264 features like interlacing, it is likely that some frames do not get decoded or moreover that xine crashes. - Removed some unnecessary calls to clear xine's buffer when switching between pause and play. - Spent a lot of time fixing some issues in xine-lib. Integrated a big bunch of my xine-lib patch into xine-lib-1.1.8. All patches are now part of xine-lib-1.2. - Added the opportunity to change xine's volume in software, like when changing xine's config option gui.audio_mixer_method to Software (thanks to Halim Sahin for the request). - Added the possibility to configure different zoom settings for 4:3 and 16:9 images, which are automatically activated when xine signals a format change (thanks to Detlef Nebermann for the request). 2006-12-10: Version 0.7.10 - Updated xine patches to current CVS (should be compatible with xine release 1.1.3). - Fixed a segfault in SHQ OSD scaling code due to uninitialized variables (thanks to Gregorie Favre for reporting this issue and testing the fixes). - Added noSignal-smallTextAtBottom.mpg to directory data (thanks to John for supplying the file). - Fixed a segfault in xine when there is no demuxer available (e. g. the SuSE 10.1 xine-lib binary lacks support for MPEG2). - Fixed compiler warnings on x86_64 architectures (thanks to Ville Skyttä for compilation assistance). - Added support to xine for the 3 new keys of VDR-1.3.47. - Updated MANUAL accordingly. 2006-04-17: Version 0.7.9 - Updated Finnish translation (thanks to Rolf Ahrenberg for supplying the patch). - Adapted vdr-xine to VDR-1.3.45. - Adapted vdr-xine to VDR-1.3.47. 2006-03-20: Version 0.7.8 - Fixed HISTORY as it mentioned future releases of VDR (thanks to Klaus Schmidinger for reporing this issue). - Fixed sending video data: the first packet after a Clear() got dropped which made editing recordings impossible (thanks to Gregoire Favre for reporting this issue). - Fixed implementation of func_wait as it didn't synchronize VDR and xine as expected. - Adapted vdr-xine to VDR-1.3.44 cOsd::DrawBitmap() (thanks to C.Y.M. for reporting this issue). - Replaced 'prebuffer' by 'buffer' in vdr-xine's setup menu. - Added new setup parameter "buffer hysteresis" which is added to "Live-TV buffer" for determining the initial buffer size which must be achieved before replaying switches to normal speed. It is recommended to reduce your current buffer setting by the value for hysteresis. - Added PTS prediction to stop prebuffer phase much earlier on channels which rarely add PTS to their stream's PES packets. - Changed buffering to monitor the buffer size during a configureable time after the configured buffer size (Live-TV buffer + hysteresis) was initially established. Whenever the buffer size drops below the configured value (of Live- TV buffer frames), hysteresis is increased by an additional frame and the new buffer is established. - The above changes to buffering allow minimizing the buffer for faster zapping on regular channels while not loosing the ability to watch some special (mosaic) channels which required larger buffer settings. - Implemented continuous monitoring to reestablish the buffer once it drops below the configured value. This allows watching the HDTV demo loop on ASTRA HD forever. This feature can be enabled on demand in vdr-xine's setup menu, as it might be a performance issue on less powerful machines. - As VDR-1.2.6 lacks c*Repackers, the above changes to buffering do not work that precisely with this old VDR version. Just increase the buffer values a bit as necessary. - Fixed an out of range access in OSD scaling code by clipping away negative coordinate areas. The segfault was triggered by opening the audio track menu on channels with at least 20 tracks while VDRs default skins where selected. - Patched xine to speed up OSD operation when switching audio tracks in live TV mode or when showing still frames (e. g. when editing cutting marks). This change most likely breaks binary compatibilty to other xine plugins. - Failed to speed up OSD operation in trick speed modes: it would require to copy each frame at least while OSD is active, which might be a performance issue. So for now, the worst timing for a single OSD operation is about 2500 ms in VDR's first slow reverse mode. A possible solution might be X11 OSD overlay, as it is independent of the video frame, so there is no copying involved. But that's still to investigate. - Implemented OSD scaling in regard to xine's video zoom factor. The OSD will now be scaled accordingly for zoom factors > 100 %. As determining the zoom factors is an "expensive" operation in xine, they are only retrieved when some drawing to the OSD is happening. So you won't see an open OSD to immediately change it's size. - Fixed a segfault in SHQ OSD scaling code by setting the allocated memory to 0. - Updated INSTALL to mention a workaround for xine CVS access, as cvs.sourceforge.net was quite unreliable recently. - Fixed compilation for VDR version 1.2.6 which was only possible by dropping auto primary device feature for VDR versions < 1.3.32. - Updated MANUAL accordingly. 2006-02-14: Version 0.7.7 - Updated MANUAL (thanks to Ville Skyttä for supplying the patch). - Added Dutch translation (thanks to Maarten Wisse for supplying the patch). - Fixed auto primary device functionality concerning ActualDevice (thanks to Luca Olivetti for reporting this issue). - Shutting down cOsdProvider when vdr-xine is nolonger primary device to fix an issue where the new primary device doesn't register it's own cOsdProvider instance. - Fixed cXineDevice::SetDigitalAudioDevice() for radio channels with multiple audio tracks (e. g. RADIO INT2). These tracks are not related to each other and therefore syncing these tracks by PTS is impossible and causes huge delays otherwise. - Adopted cXineDevice::GrabImage() to VDR-1.3.38 (based on a patch of Darren Salt). - Fixed some issues with FIFO_DIR containing spaces (thanks to Darren Salt for supplying the patch). - Fixed some warnings about strict-aliasing issues when compiling with gcc-4.1 (thanks to Ville Skyttä for reporting this issue). - Added two new command line arguments (-X / -Y) to change the default image size for GrabImage(). Internally, they are predefined as -X 720 and -Y 576. - Dropped the Audio-Mode setup option for VDR >= 1.3.18 as VDR's audio menu and PlayPes() took over sending just a single audio stream to the output device. - Fixed implementation of cXineDevice::Clear(), which speeds up jumping back and forth in recordings. A stresstest showed that from time to time a deadlock happened in libasound (ALSA) when xine is opening the audio device. You may experience a problem too if you stay on the GREEN button at the beginning of a recording. On my system it caused segfaults, asserts and deadlocks while xine is opening the ALSA audio device. I'd be glad if someone could fix this issue. Anyway, I hope that this change partitially fixes the delay on some systems which happened when switching to trickspeed modes while replaying a recording. - Added support for VDR's new info key. - Tried to get xine's ffmpeg decoder to work with vdr-xine, but failed. - Had xine CVS take over a couple of my xine patches. - Tuned xine-lib's startcode scanner in libmpeg2. - Adapted vdr-xine to VDR-1.3.41 changed detection of transfer mode. - Adapted vdr-xine to VDR-1.3.42 changed cDevice::PlayAudio(). - Replaced noSignal*.pes with noSignal*.mpg. vdr-xine will complain about a missing noSignal.mpg. Just copy the new files from the source directory to the mentioned location as mentioned in INSTALL. - Changed buffering completely. When VDR switches to a channel, xine starts replaying at 12.5 % of normal speed. Then vdr-xine monitors the stream's PTS values and compares them to the value which xine reports. The difference between VDR's and xine's value makes up the currently gained buffer. When the buffer reaches the configured size then xine switches to 100 % speed. ATTENTION: this change requires you to reduce the configured prebuffer in vdr-xine's setup page to about 8 frames! - Updated MANUAL and INSTALL accordingly. 2005-09-11: Version 0.7.6 - Fixed vdr-xine to update xine's audio stream bitrate and decoder after xine has connected to vdr-xine. Before that, xine showed the information of the NOSIGNAL stream. - Several MPEG1 related fixes. - Several fixes concerning playing of externally generated VDR recordings (thanks to Fabian Wolter for supplying a recording). - Fixed compilation for VDR-1.3.32. - Playing a still image could make vdr-xine wait for further video packets (this issue showed up from time to time when using the vdr-radio plugin). 2005-08-14: Version 0.7.5 - Added documentation about gxine's VDR support to MANUAL (thanks to Darren Salt for supplying the patch). - Fixed xine-plugin to update audio stream bitrate and decoder. - Removed singleton enforcement of xine-plugin as it caused problems with xine's post plugin management (suggested by Darren Salt). - Added support to select left / right audio channel by audio post plugin 'vdr_audio'. - Added audio post plugin support to xine-ui and fbxine which was needed for the new audio post plugin vdr_audio. - Renamed video post plugin 'vdr' to 'vdr_video' to match naming scheme, but it also registered as 'vdr' to maintain compatibility. - Created audio post plugin 'upmix_mono' to turn a mono stream into a stereo one with identical data on both sides (requested by Lucian Muresan). - Fixed some endianness problems in OSD code (thanks to Carsten Rietzschel for reporting this issue). - Fixed some compiler warnings with gcc-4.0.1 and gcc-4.1 (thanks to Eric OUEDRAOGO for reporting this issue). - Updated plugin to match interface changes in VDR-1.3.27 (thanks to C.Y.M for reporting this issue). - Fixed implementation of cDevice::Clear() which didn't ensure that really all data (i. e. the data which is just in the FIFO or socket) get's cleared. This might improve switching to trickspeed mode. - Updated MANUAL about using vdr_audio post plugin. 2005-05-08: Version 0.7.4 - Fixed compilation issue with gcc-4.1 (thanks to ollo at vdr-portal for reporting this issue). - Fixed audio output when used with muggle (thanks to Der_Olli at vdr-portal for testing). - Fixed input_vdr for proper "C" coding (thanks to Philip Lawatsch for reporting this issue). - Increased xine-lib's demux_mpeg_pes.c's WRAP_THRESHOLD to 270000 to fix detection of false discontinuities (thanks to Jouni Karvo for reporting this issue). - Fixed xine-lib's xxmc decoder to properly decode radio-plugin's background images. - Updated dvbplayer patch for VDR-1.3.24. 2005-04-11: Version 0.7.3 - Started detection of AFD header in xine to automatically crop out the interesting part of the image later. - Adopted implementation of cXineDevice::SetDigitialAudioDevice() to different calling order in VDR 1.3.23. - Improved cXineDevice::SetDigitalAudioDevice() when replaying recordings. - Added setup option to automatically make vdr-xine the primary device while xine is connected to vdr-xine (requested by Der_Olli at vdr-portal). - Added setup option to consider all semi transparent colors as opaque to make the menu more readable. - Added commandline option '-s' to switch to skin 'curses' while xine is not connected to vdr-xine (requested by Rantanen Teemu). - Added commandline option '-q' to suppress debug messages (useful in combination with option '-s'). - Moved disconnect to cXineDevice::Stop() to get the new options to work. - Fixed all (?) deadlock situations in RPC command processing (e. g. stopping replay while switching a channel). - Fixed deadlocks in vdr-xine's xread(). A possible drawback is that now a disconnect might happen in such a case. - Fixed VDR's I-frame processing which caused disconnects e. g. while moving cut marks in HDTV recordings. vdr-1.2.23-dvbplayer3.patch is highly recommended for proper operation of vdr-xine. - Improved cXineDevice::StillImage() implementation to immediate display the frame (improves moving cut marks). - Fixed cXineDevice::StillImage() to work properly in combination with the plugin vdr-radio. BUG: xine's driver xxmc shows just a black screen on my EPIA MII-6000E. - Reintroduced usleeps() in input_vdr.c for flush, OSD flush and reset audio. sched_yield() simply caused to much CPU load while waiting about 40 ms to reach the expected state. Improves number of dropped frames when switching channels. - Optimized OSD display: VDR's channel display repeatedly sends a dirty OSD which doesn't differ from the previous one. Improves number of dropped frames while switching channel. BUG: it's still unclear whether this causes some OSD artefacts. - Fixed demux_mpeg_pes' discontinuity detection. Previously, when a PTS wrap happend, xine stopped replay for about 26.5 hours. - vdr-xine now nolonger set's xine's metronom directly but tells it's demuxer to do the job. Improves switching channels. - Optimized implementation of cXineDevice::Clear() in input_vdr.c. BUG: it may happen that xine's audio driver ALSA might get into a state of "silence" where it doesn't recover from until you stop replaying the recording. I still didn't find a way to reproduce this but it has to do with trickspeed, pause, play, and probably cut marks. - Fixed post_vdr.c to detect MRL changes for discovering streams sent from VDR, e. g. when xine is not started with the MRL specified on it's command line. BUG: It's possible that xine crashes due to this detection. xine doesn't allocate a different stream for a different MRL, but maybe other players do. I'm not sure whether I managed to increase the streams usage counter properly (by allocating an event queue) until I detect the new stream respectively MRL. BUG: post_vdr doesn't operate when xine's driver xxmc is used due to some limitation/incomplete implementation in xine's plugin interface. - Fixed xine's deinterlacer interface to take care of cropping. Previously the OSD was resizing like mad e. g. between 1920x1080 and 1920x1088. - Added support for VDR's new AUDIO key in xine (thanks to Darren Salt for reporting this issue). 2005-02-27: Version 0.7.2 - Fixed cXineDevice::StillPicture() to support three times larger still image data than before. This was necessary to properly support mp3 plugin's cover image feature (thanks to burki at vdr-portal for reporting this issue). - Removed cXineStatus as vdr-xine now uses a different method of detecting LiveTV. This one works better in combination with mp3 plugin (thanks to Klaus Schmidinger for suggesting the new solution). - Updated xine-lib patch for current CVS (thanks to Grégoire Favre for reporting this issue). 2005-02-13: Version 0.7.1 - Updated finish translation (thanks to Rolf Ahrenberg for supplying the update). - Fixed a typo in checking for VDR versions before 1.3.18. This broke successful compilation for versions between 1.3.8 and 1.3.18 (thanks to Andreas Urban for reporting this issue). - Fixed processing of cDevice::SetDigitalAudio() as it skipped displaying of NO SIGNAL when switching channels. 2005-01-29: Version 0.7.0 - Implemented centre-cut-out mode: this feature will crop away the black bars around a 4:3 image which is broadcast in a 16:9 stream and is displayed on a 4:3 monitor. See MANUAL how to enable this mode. - Fixed OSD scaling for the case where xine cropped the image for displaying. - Integrated patch for image grabbing. You can now specify the absolute path of the utilities for grabbing an image. Furthermore, the patch fixes a possible security issue when the filename for the GRAB command contained special shell characters (thanks to Darren Salt for supplying the patch). - Image grabbing now also requires pnmcut to support cropped images. - Prepended VDR_XINE_ to Makefile variables FIFO_DIR and SET_VIDEO_WINDOW to avoid collisions when vdr-xine's variables are set in VDR's Make.conf. - Added syslog messages when VDR_XINE_FIFO_DIR or any fifo cannot be created. - Added a further config option to vdr-xine's setup menu: you may now specify how VDR's mute requests will be processed in xine: a) ignore b) simulate (set volume to 0 / restore volume) c) execute - Fixed xine part to update UI when volume / muting is changed. - Updated INSTALL, MANUAL and xineI18n.h accordingly. 2005-01-23: Version 0.6.5 - Adapted vdr-xine to the recent changes in VDR-1.3.19. - With VDR-1.3.19, the HDTV patch for VDR is obsolete now. See the file vdr-patches-README.txt on my homepage for details. 2005-01-10: Version 0.6.4 - Adapted vdr-xine to the recent changes in VDR-1.3.18. The xine part has also changed and therefore a rebuild of xine is required. - With VDR-1.3.18 a lot of my patches for VDR are obsolete now. See the file vdr-patches-README.txt on my homepage for details. - Removed the necessity of changing POLLTIMEOUTS_BEFORE_DEVICECLEAR. - Updated INSTALL appropriately. 2004-12-31: Version 0.6.3 - Fixed uninitialized variable in xineRemote.c. Release 0.6.2 showed high CPU load of XineRemote control thread when switching between channels with different resolution. 2004-12-30: Version 0.6.2 - Integrated i18n updates (thanks to Rolf Ahrenberg for supplying the patch). - Fixed processing of MPEG1 streams. vdr-xine should now be able to work together with vdr-analogtv. - Fixed race-condition at shutdown when at client-disconnect vdr-xine accessed the already destructed xineRemote. - Fixed invalid pointer access in input_vdr.c (thanks to Darren Salt for supplying the patch). - Fixed some OSD update issues that happend when xine asked for an update and VDR was drawing on the OSD at the same time. - Prepared xine part for integration into xine-lib-1.0.x. - Synced SPU processing. DVD subtitles should now nolonger be several seconds ahead of their expected presentation time. - Updated MANUAL to reflect name changes in xine's config file. 2004-12-10: Version 0.6.1 - Added vdr-xine option "-i NUM" which can be used to get two or more vdr-xine instances running on the same machine (in different VDR instances). The same option is available as "--vdr-instance=NUM" to xineplayer but there it must be the first argument to not conflict with any other options from mplayer. - Fixed cXineDevice::StillPicture() to automatically add an PES video header if the given data doesn't contain one. As a result vdr-streamdev-* is now able to show an image while pausing Live-TV (thanks to Darren Salt for some hints on optimized coding). - Fixed some special cases of dolby audio processing introduced in 0.5.3 (thanks to Markus Maierhofer for reporting this issue). - Moved option OSD_SCALING_MODE and DONT_CHANGE_XINE_VOLUME from Makefile to vdr-xine's setup. Therefore the same binary package can now be run on less powerful machines too. - Integrated a large piece of xine-lib.patch into xine-lib-cvs. As a result the configure option --disable-exact-blending is gone and is now available as runtime configureable option "video.disable_exact_osd_alpha_blending". - Updated xineI18n.h. Feel free to supply updates for other languages too. - Updated INSTALL and MANUAL accordingly. - Introduced xineCommon.h to handle poisend VDR source. - Prepared xineI18n.h for additional languages. - Added a setup option for adjusting OSD gamma correction when OSD scaling is necessary. - Fixed xine part to no longer freeze when one connects to stale vdr-xine FIFOs. - Fixed xine part to immediately react on the "stop" button in case where VDR doesn't send a stream to xine. - The error message about missing noSignal.pes is now also logged via syslog as there was otherwise no indicater found in the logfile why VDR terminated that early. 2004-11-02: Version 0.6.0 - Implemented playback of external sources. This is done using the well known mplayer plugin in combination with my mplayer wrapper called "xineplayer". Just setup mplayer plugin as it's documentation states. Then edit it's "mplayer.sh" and replace "mplayer" by "xineplayer". xineplayer get's built into vdr-xine's source directory. You'll have to copy it to a "bin" directory which is part of your PATH or you might want to specifiy it's full path in mplayer.sh. For this first release you'll have to select mplayer plugin's "TRADITIONAL" mode to get it working with vdr-xine. - Exact but CPU intensive OSD blending can now be disabled in xine-lib by giving the configure switch "--disable-exact-blending" to "./autogen.sh". - Fixed high CPU load of vdr-xine when xine was disconnected while a currently replayed recording was paused. - Removed DATA_DIR. "noSignal.pes" is now expected below VDR's config files directory, i. e. .../plugins/xine/noSignal.pes. - Added OSD scaling mode "auto SHQ" which automatically chooses SHQ mode for low resolution streams (width < 360 respectively height < 288). This mode is now the one which is preselected in Makefile. - Updated INSTALL and MANUAL accordingly. 2004-10-24: Version 0.5.3 *** NO NEED TO RECOMPILE xine-lib / xine-ui THIS TIME *** - Fixed dolby audio processing to get recordings (and former live stream) of channel "ProSiebenHD" to play properly. - Fixed extraction of PTS values (ignore PTS of value 0) resulting in better prebuffering (thanks to Cristiano Bozzi for reporting this issue). - Changed data processing to comply with VDR's new buffer handling since release 1.3.13 (thanks to Klaus Schmidinger for assistance). - Scrambled flag on PES packets is now cleared to not have xine terminate playback due to bad reception quality respectively early data transmission while device is still tuneing (thanks to mvdbeek at vdr-portal for reporting this issue). - Replaced all usleep() calls by cMutex / cCondVar substitutes. - Added paragraph to INSTALL (BUILDING XINE) about required versions of autoconf suite for building xine (requested by Frank99 at vdr-portal). 2004-10-09: Version 0.5.2 - Fixed xine-lib/src/vdr/input_vdr.c for compliance with C coding. It should now compile properly with gcc-2.95.3 (thanks to Jouni Karvo for reporting this issue). - Implemented cPlugin::CommandLineHelp() (suggested by ronnykornexl at vdr-portal). - Updated INSTALL and pointed to xine-cvs archives on my homepage. - Updated INSTALL and documented "ERROR: remote control XineRemote not ready!" which appears in VDR's logfile. - Updated INSTALL and mentioned delay of about 10 seconds until VDR enters "Phase 2" of remote learning mode after pressing a remote key in "Phase 1". - Fixed compile error of xine-lib's video_out_xvmc.c which was caused by my OSD patches (thanks to Kron at vdr-portal for reporting this issue). - Fixed a buffer overrun in my patches to xine-lib which caused xine to die occasionally when VDR's OSD was active and/or operated (thanks to Joerg Knitter for intensively testing vdr-xine). - Tried to create a patch for xine-lib that complains when applied to RC6 but all rejects should only address the newly added driver xxmc. Therefore they can simply be ignored. - Currently, xine-ui.patch is empty but I didn't want to remove this file as doing so might break some people's build scripts. 2004-10-04: Version 0.5.1 - Updated documentation (thanks to Darren Salt for supplying the patch). - OSD scaling is now using frame resolution instead of stream resolution. This should make the OSD show up more often already at the right resoltion. For almost immediate response to resolution changes it is required to run xine with --post vdr. - Completed implementation of cDevice::GrabImage() method. It now supports xine's different image formats and honors the different aspect ratio of 16:9 broadcasts. - Added paragraph to INSTALL about additional programs which are needed to successfully grab images. - Added paragraph to INSTALL about remote learning mode. - Synchronized OSD output. Hideing an OSD and grabing an image immediately afterwards leaded to a snapshot which still showed the OSD. - Probably fixed audio replay on channels with still video. Prebuffer time is now extended dynamically by the difference between audio and video time stamps on the channel in question. - Fixed prebuffering after toggleing audio channel. - Reorganized directory structure of the xine part once again. xine-ui now needs the configure switch "--enable-vdr-keys" to support vdr-xine's remote. - Improved OSD scaling which took over month to optimize. See Makefile for OSD_SCALING_HQ. One might also choose OSD_SCALING_SHQ but be warned about the CPU load it causes. - xine-lib-1-RC6 should be sufficient for this release but my patches will complain about the recently added driver xxmc. 2004-08-08: Version 0.5.0 - Added paragraph to INSTALL about using the correct xine-config in Makefile (suggested by Luca Olivetti). - Fixed SEGV (in remote control code) which happend when VDR was exiting (thanks to Mattias Grönlund for supplying the patch). - Added a Makefile switch DONT_CHANGE_XINE_VOLUME to have vdr-xine never change xine's volume control (e. g. when connecting xine to VDR), as this might lead to (un)muting the wrong audio channels (requested by Jouni Karvo). - Fixed quickly switching between play / pause. There is still a lockup left to be fixed that appears on some machines when jumping between cutting marks (thanks to peter_weber69 at vdr-portal for testing the fix). - Added video scaling by xine post plugin 'vdr' to support yaepg plugin. One will have to add "--post vdr" to the command line or select the post plugin via the user interface. As yaepg patches VDR, you'll have to tell vdr-xine whether you want to support yaepg by enabling SET_VIDEO_WINDOW in Makefile. - Looking forward to having the xine part integrated into CVS, the locations of my plugins in xine-lib's source tree have changed. INSTALL was updated to the new patch procedure. A current CVS source tree is required (can be found on my home page, too). 2004-07-25: Version 0.4.3 - Fixed xineI18n.h for compatibility with VDR-1.3.[01]. The Russian translation entries were introduced with VDR-1.3.2 (reported by Rolf Ahrenberg). - Implemented OSD scaling. Currently, the scaled OSD is of "bad" quality, but as a start, it's better than nothing :-) - Tried to fix the issues which were recently introduced by soft-start, but it's likely that the fixes still don't work for less powerful machines. In such a case, locate softStartCalcSpeed() in xineDevice.c and try differnt methods (0..3). Please drop me a line on success respectively failure. 2004-07-04: Version 0.4.2 - Integrated swedish translation supplied by Tomas Prybil. - Fixed xineI18n.h for compatibility with VDR-1.3.6 (thanks to ronnykornexl at vdr-portal for reporting this issue). - Followed http://www.vdr-wiki.de/wiki/index.php/MANUAL-DE#Patches for creating respectively naming xine patches (thanks to ronnykornexl at vdr-portal). - New feature for Live-TV mode: "soft-start" replays the stream in slow motion while buffering. Useful for zapping, where you'll see an image of the current program quite early. The stream speed starts now at 50 %, slows down to 25 % and then speeds up to 100 %. This happens within the prebuffer time, so you should increase it (e. g. to 50) if you experience problems. 2004-06-27: Version 0.4.1 - Fixed audio handling of the previous release as it broke playing mp3s (thanks to Jouni Karvo for reporting this issue). - Fixed xine's linear PCM decoder to support more sample rates. Previously, mp3 files did often play to fast. - DVDs should play properly now, independent of the dolby setting. - Disabled debug code. Please remove all /tmp/frame* files which might have been created by release 0.4.0. - Integrated remote control patch for fbxine (provided by Dirk Meyer), but I'm still waiting for an example on how to bind the keys in fbxine. - Added a section to MANUAL about xine's command line and useful options (suggested by Jouni Karvo). - VDR: Improved performance. Please apply the vdr-1.3.11 patches which are available on my homepage. - VDR: Fixed recording replay when reaching the end of a recording in trickspeed mode. VDR switched to play mode instead of ending replay. 2004-06-21: Version 0.4.0 - Integrated patch which implements cDevice::GetSPUDecoder() (thanks to Sven Goethel for supplying the patch). - Fixed INSTALL again for correct quoting (thanks to Johannes Schoeller for reporting this issue). - Updated xineI18n.h for now 18 languages in VDR 1.3.x (thanks to Achim Tuffentsammer for the hint). - Added a paragraph to INSTALL for users of full featured cards (suggested by Tuomas Jormola). - Rewrote INSTALL in various places, to contain much helpful information discussed previously on the mailing list. - Integrated patch for supplying xine the default MRL of VDR (thanks to Darren Salt). - Added cDevice::Flush() to work around xine's large buffers. - xine-lib-1-rc5 should be sufficient to get the plugin working. - Improved a lot regarding interoperability with plugin vdr-dvd. To make use of these changes, you'll have to adjust your '.xine/config'. See MANUAL for more information. - It is recommended to enable dolby when using vdr-dvd. 2004-05-27: Version 0.3.4 - Fixed INSTALL to suggest a correctly quoted 'runvdr' command for running the plugin for the first time (thanks to peter_weber69 and anonymous (aka Ronny) on VDR Portal for pointing this out). - Fixed xineOsd.c to show OSD in initial remote key learning mode (thanks to chris281080 on VDR Portal for determining this issue). - Added a warning message to xineLib.c, in the case where 'noSignal.pes' can't be opened, e. g. if DATA_DIR is not set correctly in Makefile. - Fixed Makefile to use the default DATA_DIR, not my personal one. 2004-05-22: Version 0.3.3 - Fixed input_plugin/input_vdr.c to return proper values for cDevice::GetSTC() (thanks to Pekka Virtanen for supplying a test plugin). 2004-05-22: Version 0.3.2 - Fixed xineRemote.c to be compatible with API of VDR 1.2.6. 2004-05-21: Version 0.3.1 - Updated xine-lib.patch to support all VDR remote keys. - Patch file renamed to xine.patch, as xine-ui is modified too. - Updated INSTALL to reflect new patch file name and patching of xine-ui. - Updated MANUAL to tell command line args and xine's keybindings. 2004-05-21: Version 0.3.0 - Changed code sequence to follow the C language properly (reported by Jouni Karvo). - Updated Finnish translation and added empty Russian translations while maintaining compatibility with VDR 1.2.x (reported by Rolf Ahrenberg). - Dropped (later maybe configurable) sending MUTE to xine, as it's not really necessary for normal operation of VDR (requested by Jouni Karvo). - Fixed sending dolby audio to xine (requires up-to-date xine-lib CVS). - Added support for VDR-1.3.7's new OSD interface. - Integrated patch from Simon Truss to send keystrokes from xine to VDR for controlling VDR from within xine. - Enhanced compatibility of xine part to support xine's older API for VIA-enhanced xine (thanks to Vincenzo Memeo). 2004-05-05: Version 0.2.2 - Added define _GNU_SOURCE to Makefile (just like for new plugins). - DATA_DIR in Makefile contained path of my system. - OSD update in xine is now optimized to VDR's dirty OSD area. - Implemented cDevice::GetSTC(). - Removed some unnecessary PES packet requirements for trickspeed mode. - Moved image conversion from xine to VDR for cDevice::GrabImage() implementation. - Added support for dolby audio (i. e. cDevice::PlayAudio(): untested due to lack of hardware). - Added configuration option to enable dolby audio (default: off). - When xine connects to VDR, volume and muting are adjusted to fit VDR's values. 2004-04-23: Version 0.2.1 - Corrected some FIXMEs for certain recordings. - Audio is now unmuted when leaving a recording in trickmode speed. 2004-04-22: Version 0.2.0 - Added trickspeed mode. - Added image grabbing (requires y4mscaler, y4mtoppm and pnmtojpeg). - Added automatic selection of prebuffer mode. - Dropped config option 'xine.modeReplay.prebufferFrames'. - Dropped config option 'xine.usageModeDefault'. - Dropped main menu entry. - Partly integrated Makefile patch from Darren Salt. - Fixed some stuff regarding latest CVS xine. 2004-02-03: Version 0.1.2 - Fixed a compile error in xine - Fixed a compile error in VDR 2003-12-21: Version 0.1.1 - Changed version numbering for easier update recognition. - Updated to latest xine API version number. - Fixed VDR's high CPU load when no xine connected. - Added Finnish translation supplied by Rolf Ahrenberg. - Supplied a completely black 'noSignal.pes' to prevent the monitor from damage while listening to radio stations for a long time. 2003-12-17: Version 0.0.3 (aka 0.1.0) - Improved channel switching by using xine's prebuffering. - Prebuffer settings configurable for Live-TV and Replay. - Changed directories for plugin's files as suggested on ML. - Supports xine's unscaled OSD (configurable). - Shows a currently open OSD on connect with xine. - Shows an OSD in remote key learning mode. - Addresses some show stoppers due to recent xine changes. - Supports i18n. 2003-09-08: Version 0.0.2 - Minor fixes. - Improved channel switching. - Dropped dependencies to X11. 2003-09-07: Version 0.0.1 - Initial release. 2003-06-23: Version 0.0.0 - Announcement.