VDR Plugin 'rpihddevice' Revision History
-----------------------------------------

2019-06-16: Version 1.0.5
-------------------------
- fixed:
  - fixed drawing of empty strings on high level OSD (thanks to Klaus Schmidinger)
  - fixed compilation for Raspbian Stretch (thanks to Klaus Schmidinger)
  - fixed compilation for ffmpeg-4 (thanks to Stefan Schallenberg)

2018-07-16: Version 1.0.4
-------------------------
- new:
  - updated Hungarian translations (thanks to Füley István)
  - make use of advanced deinterlacer configurable
  - add debug option to log number of executed OpenVG commands and flushes
  - set OMX clock pre-roll to 250ms for live TV (transfer mode)
- fixed:
  - reset video format settings on pixel aspect ratio change 
  - always resample audio with less than 2 and  more than 6 channels
  - fixed compilation with GCC-6
  - implement proper handling of display and pixel aspect ratios
  - fixed vertical text position

2016-04-23: Version 1.0.3
-------------------------
- new:
  - re-enable advanced deinterlacer for SD streams, requires recent firmware
- fixed:
  - don't ignore audio frames for slow trick speeds to keep clock in sync
  
2016-04-04: Version 1.0.2
-------------------------
- fixed:
  - send proper end of sequence packet after playing single video frame

2016-03-29: Version 1.0.1
-------------------------
- new:
  - set device name
  - add option for dual display usage, see README
  - experimental support for AAC-LATM, use "make ENABLE_AAC_LATM=1" to enable
- fixed:
  - fixed HDMI channel mapping and stream type (reported by Rüdiger Follmann)
  - fixed drawing of cached images with high level OSD
  - only cache images in GPU when high level OSD is active
  - added proper GPL header to every source file (suggested by Tobias Grimm)
  - wait until dispmanx element is removed after OSD reset
  - proper release default surface after OSD reset
  - don't ignore anti alias option for scaled bitmap drawing
  - ignore pts from erroneous packets to avoid pts jumps on broken streams
  - use omxplayer's parameters for deinterlacer

2015-10-18: Version 1.0.0
-------------------------
- new:
  - updated Hungarian translations (thanks to Füley István)
  - updated Finnish translations (thanks to Rolf Ahrenberg)
  - added Italian translations (thanks to Gerlando Falauto)
  - added French translations (thanks to Cyril Jaquier)
  - added plugin options to specify video and OSD layers
- fixed:
  - don't crop OSD images to pixmap size to allow scaled drawing
  - treat zero as valid PTS value
  - perform save / restore region direct on pixmaps for accelerated OSDs
  - wait for the OVG thread to be ready when creating an accelerated OSD
  - set field sync when output interlaced material at interlaced display mode

2015-04-29: Version 0.1.0
-------------------------
- new:
  - reworked clock stretching in live mode based on buffer usage
  - added command line argument to disable OSD
  - combined digital audio format options to one single setup option
  - added font kerning
  - support for GPU accelerated pixmaps
- fixed:
  - skip audio packets when replaying non-radio recordings in trick modes
  - fixed displaying of current position when changing replay speed
  - fixed PTS wrap around (reported by Klaus Schmidinger)
  - increased audio decoder thread priority
  - don't depend on multi channel PCM support for digital audio pass-through
  - improved video frame rate detection to be more tolerant to inaccurate values
  - adapted cOvgRawOsd::Flush() to new cOsd::RenderPixmaps() of vdr-2.1.10
  - fixed calculation of string height (reported by Klaus Schmidinger)
  - additionally set number of in/out channels when setting up audio resampler
  - don't clear audio PTS when parser shrinks the packet buffer

2015-01-21: Version 0.0.11
--------------------------
- new:
  - reworked audio decoder, increase buffering of audio samples
  - reworked omxdevice and improved clock stretching for transfer mode
  - added Hungarian translations (thanks to Füley István)
  - updated Finnish translations and fixed tr() usage (thanks to Rolf Ahrenberg)
  - use fast deinterlacer for HD streams
  - added high level OSD with GPU support
- fixed:
  - start H.264 video with valid frame only, requires firmware from 2015/01/18 
    or newer

2014-11-02: Version 0.0.10
--------------------------
- new:
  - added DTS audio codec support
  - add setup options to control video mode and its behaviour on stream changes
  - set HDMI speaker layout to fix channel mapping for multi channel PCM output
  - support building against external ffmpeg/libav by setting EXT_LIBAV
  - support for >=ffmpeg-1.2 and >=libav-0.8 with resampling
  - setup option for video framing mode in case of incompatible aspect ratio
  - redirect ffmpeg messages to plugin/VDR logs
  - added cppcheck as Makefile target (suggested by Rolf Ahrenberg)
  - reworked setup parameter handling
  - implemented proper command queue for OVG-OSD
- fixed:
  - increased latency target for live mode to 500ms
  - reworked OVG image processing for low level OSD
  - upmix mono audio channels to stereo when using PCM output on HDMI
  - skip non-video packets in StillPicture(), fixes artifacts in PES recordings
  - skip audio substream header for PES recordings with AC3 audio track
  - reworked audio decoding loop and set correct dstSize before resampling
  - avoid flushing OMX video chain twice when calling SetPlayMode(pmNone)
  - skip packets with invalid payload offset in PlayVideo() and PlayAudio()
  - play multiple video PES packets sequentially in StillPicture()
  - updated parameter when setting clock latency target according omxplayer
  - code clean up based on cppcheck's results (thanks to Rolf Ahrenberg)
- known issues:
  - direct switching from fast forward to fast rewind will freeze replay

2014-04-24: Version 0.0.9
-------------------------
- new:
  - added Finnish translations (thanks to Rolf Ahrenberg)
  - setup option to ignore HDMI audio EDID
- fixed:
  - add prefix to plugin specific class names (suggested by Rolf Ahrenberg)
  - move cAudioParser to avoid duplicate class name (reported by Patrick Maier)
  - maintain list of rejected OMX buffers
  - thread-safe container for OMX events
  - report valid VideoAspect if video is stopped (reported by Rolf Ahrenberg)
  - fixed buffer stall after StillPicture()
  - increased latency target for transfer mode to 200ms
  - reworked clock handling for normal play back and trick modes
  - simplified OMX buffer polling
  - added proper buffering at audio parser and reduced OMX audio buffers
  - OMX shutdown when no stream has been played (reported by Klaus Schmidinger)
  - displaying subtitles when OSD is active (fix by Klaus Schmidinger)
  - default quality when grabbing jpeg image (reported by Klaus Schmidinger)
  - suppress buffer stall when clock is halted
  - set clock latency target according omxplayer
- known issues:
  - direct switching from fast forward to fast rewind will freeze replay
  - artifacts with StillImage() and PES recordings
- missing:
  - plugin specific option for video mode adaption
  
2014-02-10: Version 0.0.8
-------------------------
- new:
  - image grabbing
  - implemented proper handling in case of buffer stall
  - reporting video size
  - support letter box and center cut out set by VDR
  - support video scaling
- fixed:
  - increased number of audio buffer to fix replay issues with PES recordings
  - return correct number of audio bytes written from PlayAudio()
  - fixed start up in audio only mode
  - fixed still image with deinterlacer
  - fixed crash during deinitialization
  - fixed crash when copying 5.1 PCM audio
  - use cThread::mutex for locking
  - implement cOvgOsd::SetAreas() and cOvgOsd::SetActive()
  - audio codec clean up, drop AAC-LATM and rename ADTS to AAC
  - audio decoding thread clean up
- known issues
  - StillImage() will cause buffer stall
  - artifacts with StillImage() and PES recordings
  - speed to fast when fast replaying audio only recordings

2013-12-30: Version 0.0.7
-------------------------
- new:
  - support audio sampling rates other than 48kHz
  - changed setting of trick speed with APIVERSNUM >= 20103
  - added deinterlacer
- fixed:
  - improved audio parser
  - fixed still image for H264 video
  - mute audio render if volume is set to zero
- missing:
  - image grabbing
  - video format/output options

2013-12-16: Version 0.0.6a
--------------------------
- fixed:
  - removed OMX mutex

2013-12-15: Version 0.0.6
-------------------------
- new:
  - still picture
  - trick speeds
- fixed:
  - reworked audio detection and decoding, fixed several issues
  - reworked stream starting behavior, fixed audio-/video-only play back
  - fixed several issues with unsupported video codec (e.g. without MPEG2 key)
  - improved fast forward/reverse mode
  - several minor bugfixes
- missing:
  - deinterlacer
  - image grabbing
  - video format/output options

2013-11-17: Version 0.0.5
-------------------------
- new:
  - improved audio format detection (taken from softhddevice)
  - separate thread for audio decoding
- fixed:
  - jump forward/backward in recordings
  - several minor bugfixes
- missing:
  - still picture
  - trick modes
  - deinterlacer
  - video format/output options

2013-10-14: Version 0.0.4
-------------------------
- new:
  - changed to libav for audio decoding
  - added support multi-channel audio codecs
  - added audio format/output options
- fixed:
  - removed drawing of black box in front of console which lead to malfunction
    due to memory bandwidth problem. console blank out will be handled with
    video format/output options in future versions.
- missing:
  - trick modes
  - deinterlacer
  - video format/output options
  - much more...
  
2013-10-02: Version 0.0.3
-------------------------
- new:
  - tracking number of free buffers and provide Poll() method
- fixed:
  - audio only mode
  - replay start/stop/pause
  - improved H264 detection
  - blank out console
- missing:
  - trick modes
  - other audio formats
  - much more...
  
2013-09-29: Version 0.0.2
-------------------------
- new:
  - volume control
  - H264 support
- fixed:
  - added missing includes to Makefile
  - PTS/OMX_TICKS conversion
- missing:
  - audio only play mode
  - buffer handling for proper replay support
  - other audio formats
  - much more...

2013-09-27: Version 0.0.1
-------------------------
initial prototype
- limitations:
  - video codec hard coded to MPEG2, output on HDMI
  - audio codec hard coded to MP3, output on phone jack
- tested:
  - OSD
  - SDTV live view and replay
- missing:
  - dynamic switching between MPEG2 and H264 video codec
  - trick speeds
  - much more...
