Klaus Schmidinger c2d9577b3d Version 1.7.24
Original announce message:
VDR developer version 1.7.24 is now available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.24.tar.bz2

A 'diff' against the previous version is available at

       ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.23-1.7.24.diff

MD5 checksums:

a034c5e399417dfc583483f650d003ee  vdr-1.7.24.tar.bz2
aa1a2b202da92e65945ff39470b26618  vdr-1.7.23-1.7.24.diff

WARNING:
========

This is a developer version. Even though I use it in my productive
environment. I strongly recommend that you only use it under controlled
conditions and for testing and debugging.

From the HISTORY file:
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed a high load in case a transponder can't be received.
- Improved the way DVB_API_VERSION is checked.
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed asserting there is a live programme if the primary device is bonded with
  a device that starts a recording on a different band.
- Fixed the return type of cMyDeviceHook::DeviceProvidesTransponder() in PLUGINS.html.
- Fixed a crash in a plugin using cDeviceHook when VDR ends (reported by Oliver Endriss).
- Some improvements to the Makefiles (thanks to Christian Ruppert).
- Fixed cRecording::LengthInSeconds(), which wrongfully rounded the result to full
  minutes (thanks to Christoph Haubrich).
- Symbolic links are no longer resolved in cRecordings::ScanVideoDir() (thanks to
  Sundararaj Reel).
- The epg.data file is now read in a separate thread to make the startup process
  faster in case the file is very large (suggested by Helmut Auer).
- Fixed selecting the primary device for receiving the live viewing channel in
  case it is bonded with an other device and has no receiver attached to it.
- Fixed a possible crash when canceling VDR while displaying subtitles, and the
  primary device is no longer available.
- Improved handling subtitles of BBC channels.
- No longer using tabs as delimiter in the EPG bugfix log (they were garbled in the
  log file).
- Added a missing '.' after the month in VPS strings.
- Added some missing 'const' to cDevice (thanks to Joachim Wilke).
- Fixed handling the PrimaryLimit when requesting a device for live viewing
  (reported by Uwe Scheffler).
- Removed superfluous calls to SetVideoFormat() from device constructors. This
  function is called in cDevice::SetPrimaryDevice(), anyway.
- An ongoing editing process is now canceled if either the original or the edited
  version of the recording is deleted from the Recordings menu.
- The SVDRP command DELR now won't delete a recording that is currently being edited.
- Removed code stub for obsolete SVDRP command MOVT.
- The DVB device adapters/frontends are now probed by scanning the /dev/dvb directory
  instead of looping through adapter/frontend numbers. This allows for "holes" in the
  device numbering.
- cReadDir::Next() now skips directory entries "." and "..".
- Fixed a possible deadlock in time shift mode.
- Fixed switching into time shift mode when pausing live video (thanks to Reinhard
  Nissl for helping to debug this one).
2012-02-19 16:36:45 +01:00

153 lines
4.9 KiB
C

/**********************************************************************
*
* HDFF firmware command interface library
*
* Copyright (C) 2011 Andreas Regel
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*********************************************************************/
#ifndef HDFFCMD_AV_H
#define HDFFCMD_AV_H
typedef enum HdffAvContainerType_t
{
HDFF_AV_CONTAINER_PES,
HDFF_AV_CONTAINER_PES_DVD
} HdffAvContainerType_t;
typedef enum HdffAudioStreamType_t
{
HDFF_AUDIO_STREAM_INVALID = -1,
HDFF_AUDIO_STREAM_MPEG1 = 0,
HDFF_AUDIO_STREAM_MPEG2,
HDFF_AUDIO_STREAM_AC3,
HDFF_AUDIO_STREAM_AAC,
HDFF_AUDIO_STREAM_HE_AAC,
HDFF_AUDIO_STREAM_PCM,
HDFF_AUDIO_STREAM_EAC3,
HDFF_AUDIO_STREAM_DTS
} HdffAudioStreamType_t;
typedef enum HdffVideoStreamType_t
{
HDFF_VIDEO_STREAM_INVALID = -1,
HDFF_VIDEO_STREAM_MPEG1 = 0,
HDFF_VIDEO_STREAM_MPEG2,
HDFF_VIDEO_STREAM_H264,
HDFF_VIDEO_STREAM_MPEG4_ASP,
HDFF_VIDEO_STREAM_VC1
} HdffVideoStreamType_t;
typedef enum HdffTvFormat_t
{
HDFF_TV_FORMAT_4_BY_3,
HDFF_TV_FORMAT_16_BY_9
} HdffTvFormat_t;
typedef enum HdffVideoConversion_t
{
HDFF_VIDEO_CONVERSION_AUTOMATIC,
HDFF_VIDEO_CONVERSION_LETTERBOX_16_BY_9,
HDFF_VIDEO_CONVERSION_LETTERBOX_14_BY_9,
HDFF_VIDEO_CONVERSION_PILLARBOX,
HDFF_VIDEO_CONVERSION_CENTRE_CUT_OUT,
HDFF_VIDEO_CONVERSION_ALWAYS_16_BY_9,
HDFF_VIDEO_CONVERSION_ZOOM_16_BY_9
} HdffVideoConversion_t;
typedef struct HdffVideoFormat_t
{
int AutomaticEnabled;
int AfdEnabled;
HdffTvFormat_t TvFormat;
HdffVideoConversion_t VideoConversion;
} HdffVideoFormat_t;
typedef enum HdffVideoOutputMode_t
{
HDFF_VIDEO_OUTPUT_CLONE,
HDFF_VIDEO_OUTPUT_HD_ONLY
} HdffVideoOutputMode_t;
typedef enum HdffAudioDownmixMode_t
{
HDFF_AUDIO_DOWNMIX_OFF,
HDFF_AUDIO_DOWNMIX_ANALOG,
HDFF_AUDIO_DOWNMIX_ALWAYS,
HDFF_AUDIO_DOWNMIX_AUTOMATIC,
HDFF_AUDIO_DOWNMIX_HDMI_ONLY
} HdffAudioDownmixMode_t;
int HdffCmdAvSetPlayMode(int OsdDevice, uint8_t PlayMode, int Realtime);
int HdffCmdAvSetVideoPid(int OsdDevice, uint8_t DecoderIndex, uint16_t Pid,
HdffVideoStreamType_t StreamType);
int HdffCmdAvSetAudioPid(int OsdDevice, uint8_t DecoderIndex, uint16_t Pid,
HdffAudioStreamType_t StreamType,
HdffAvContainerType_t ContainerType);
int HdffCmdAvSetPcrPid(int OsdDevice, uint8_t DecoderIndex, uint16_t Pid);
int HdffCmdAvSetTeletextPid(int OsdDevice, uint8_t DecoderIndex, uint16_t Pid);
int HdffCmdAvSetVideoWindow(int OsdDevice, uint8_t DecoderIndex, int Enable,
uint16_t X, uint16_t Y, uint16_t Width,
uint16_t Height);
int HdffCmdAvShowStillImage(int OsdDevice, uint8_t DecoderIndex,
const uint8_t * StillImage, int Size,
HdffVideoStreamType_t StreamType);
int HdffCmdAvSetDecoderInput(int OsdDevice, uint8_t DecoderIndex,
uint8_t DemultiplexerIndex);
int HdffCmdAvSetDemultiplexerInput(int OsdDevice, uint8_t DemultiplexerIndex,
uint8_t TsInputIndex);
int HdffCmdAvSetVideoFormat(int OsdDevice, uint8_t DecoderIndex,
const HdffVideoFormat_t * VideoFormat);
int HdffCmdAvSetVideoOutputMode(int OsdDevice, uint8_t DecoderIndex,
HdffVideoOutputMode_t OutputMode);
int HdffCmdAvSetStc(int OsdDevice, uint8_t DecoderIndex, uint64_t Stc);
int HdffCmdAvFlushBuffer(int OsdDevice, uint8_t DecoderIndex, int FlushAudio,
int FlushVideo);
int HdffCmdAvEnableSync(int OsdDevice, uint8_t DecoderIndex, int SyncAudio,
int SyncVideo);
int HdffCmdAvSetVideoSpeed(int OsdDevice, uint8_t DecoderIndex, int32_t Speed);
int HdffCmdAvSetAudioSpeed(int OsdDevice, uint8_t DecoderIndex, int32_t Speed);
int HdffCmdAvEnableVideoAfterStop(int OsdDevice, uint8_t DecoderIndex,
int EnableVideoAfterStop);
int HdffCmdAvSetAudioDelay(int OsdDevice, int16_t Delay);
int HdffCmdAvSetAudioDownmix(int OsdDevice,
HdffAudioDownmixMode_t DownmixMode);
int HdffCmdAvSetAudioChannel(int OsdDevice, uint8_t AudioChannel);
#endif /* HDFFCMD_AV_H */