diff options
author | Thomas Reufer <thomas@reufer.ch> | 2014-01-07 16:40:32 +0100 |
---|---|---|
committer | Thomas Reufer <thomas@reufer.ch> | 2014-01-07 16:40:32 +0100 |
commit | 88f137d194b1768344e954a1b1d35fb1fce03df9 (patch) | |
tree | b2b3a5293fe02ba30fe57f39ef3edc42d7ec7a04 /setup.c | |
parent | 4e710fc5c2bf2e2e33518eb3c537b7022085bda9 (diff) | |
download | vdr-plugin-rpihddevice-0.0.7.tar.gz vdr-plugin-rpihddevice-0.0.7.tar.bz2 |
2013-12-30: Version 0.0.70.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
Diffstat (limited to 'setup.c')
-rw-r--r-- | setup.c | 37 |
1 files changed, 32 insertions, 5 deletions
@@ -113,19 +113,20 @@ bool cRpiSetup::HwInit(void) bool cRpiSetup::IsAudioFormatSupported(cAudioCodec::eCodec codec, int channels, int samplingRate) { - // AAC and DTS pass-through currently not supported - if (codec == cAudioCodec::eAAC || - codec == cAudioCodec::eADTS) - return false; + // AAC-LATM and AAC pass-through currently not supported +// if (codec == cAudioCodec::eAAC || +// codec == cAudioCodec::eADTS) +// return false; if (vc_tv_hdmi_audio_supported( codec == cAudioCodec::eMPG ? EDID_AudioFormat_eMPEG1 : codec == cAudioCodec::eAC3 ? EDID_AudioFormat_eAC3 : codec == cAudioCodec::eEAC3 ? EDID_AudioFormat_eEAC3 : codec == cAudioCodec::eAAC ? EDID_AudioFormat_eAAC : + codec == cAudioCodec::eADTS ? EDID_AudioFormat_eAAC : EDID_AudioFormat_ePCM, channels, samplingRate == 32000 ? EDID_AudioSampleRate_e32KHz : - samplingRate == 44000 ? EDID_AudioSampleRate_e44KHz : + samplingRate == 44100 ? EDID_AudioSampleRate_e44KHz : samplingRate == 88000 ? EDID_AudioSampleRate_e88KHz : samplingRate == 96000 ? EDID_AudioSampleRate_e96KHz : samplingRate == 176000 ? EDID_AudioSampleRate_e176KHz : @@ -134,6 +135,10 @@ bool cRpiSetup::IsAudioFormatSupported(cAudioCodec::eCodec codec, EDID_AudioSampleSize_16bit) == 0) return true; + dsyslog("rpihddevice: %dch %s, %d.%dkHz not supported by HDMI device", + channels, cAudioCodec::Str(codec), + samplingRate / 1000, (samplingRate % 1000) / 100); + return false; } @@ -151,9 +156,31 @@ int cRpiSetup::GetDisplaySize(int &width, int &height, double &aspect) aspect = 1; return 0; } + return -1; } +bool cRpiSetup::IsDisplayProgressive(void) +{ + bool progressive = false; + + TV_DISPLAY_STATE_T tvstate; + memset(&tvstate, 0, sizeof(TV_DISPLAY_STATE_T)); + if (!vc_tv_get_display_state(&tvstate)) + { + // HDMI + if ((tvstate.state & (VC_HDMI_HDMI | VC_HDMI_DVI))) + progressive = tvstate.display.hdmi.scan_mode == 0; + // composite + else + progressive = false; + } + else + esyslog("rpihddevice: failed to get display state!"); + + return progressive; +} + bool cRpiSetup::HasAudioSetupChanged(void) { if (!GetInstance()->m_audioSetupChanged) |