diff options
author | root <root@server.(none)> | 2010-07-22 20:13:13 +0200 |
---|---|---|
committer | root <root@server.(none)> | 2010-07-22 20:13:13 +0200 |
commit | 4ccd4288c7a71514dd214ba6f7ee60d4a9ac818a (patch) | |
tree | 0a72c75faeb9fb7ab0cabbb13294dfb364b035a0 | |
parent | cd13630d0be0a95c95ff68f12a6ebbeb7e670305 (diff) | |
download | vdr-plugin-pvrinput-4ccd4288c7a71514dd214ba6f7ee60d4a9ac818a.tar.gz vdr-plugin-pvrinput-4ccd4288c7a71514dd214ba6f7ee60d4a9ac818a.tar.bz2 |
Most parameters for the devices will only be set if device is down
-rw-r--r-- | device.c | 77 |
1 files changed, 39 insertions, 38 deletions
@@ -348,42 +348,12 @@ cPvrDevice *cPvrDevice::Get(int index) void cPvrDevice::ReInit(void) { log(pvrDEBUG1, "cPvrDevice::ReInit /dev/video%d = %s (%s)", number, CARDNAME[cardname], DRIVERNAME[driver]); - SetTunerAudioMode(PvrSetup.TunerAudioMode); - SetInput(CurrentInput); - /* begin new v4l2 ivtv controls */ - if ((driver == cx18) || (driver == hdpvr)) - streamType = V4L2_MPEG_STREAM_TYPE_MPEG2_TS; - else - streamType = (PvrSetup.StreamType.value == 0) ? V4L2_MPEG_STREAM_TYPE_MPEG2_PS : V4L2_MPEG_STREAM_TYPE_MPEG2_DVD; - SetControlValue(&PvrSetup.StreamType, streamType); - SetControlValue(&PvrSetup.AspectRatio, PvrSetup.AspectRatio.value); - SetControlValue(&PvrSetup.AudioBitrate, PvrSetup.AudioBitrate.value); - SetControlValue(&PvrSetup.AudioSampling, PvrSetup.AudioSampling.value); - if (driver == hdpvr) { - SetControlValue(&PvrSetup.HDPVR_AudioEncoding, PvrSetup.HDPVR_AudioEncoding.value); - SetAudioInput(PvrSetup.HDPVR_AudioInput); - } - SetControlValue(&PvrSetup.VideoBitrateTV, PvrSetup.VideoBitrateTV.value); - SetControlValue(&PvrSetup.BitrateMode, PvrSetup.BitrateMode.value); - SetControlValue(&PvrSetup.GopSize, PvrSetup.GopSize.queryctrl.default_value); - SetControlValue(&PvrSetup.GopClosure, PvrSetup.GopClosure.queryctrl.default_value); - SetControlValue(&PvrSetup.BFrames, PvrSetup.BFrames.queryctrl.default_value); - SetControlValue(&PvrSetup.FilterSpatialMode, PvrSetup.FilterSpatialMode.value); - SetControlValue(&PvrSetup.FilterSpatial, PvrSetup.FilterSpatial.value); - SetControlValue(&PvrSetup.FilterLumaSpatialType, PvrSetup.FilterLumaSpatialType.value); - SetControlValue(&PvrSetup.FilterChromaSpatialType, PvrSetup.FilterChromaSpatialType.value); - SetControlValue(&PvrSetup.FilterTemporalMode, PvrSetup.FilterTemporalMode.value); - SetControlValue(&PvrSetup.FilterTemporal, PvrSetup.FilterTemporal.value); - SetControlValue(&PvrSetup.FilterMedianType, PvrSetup.FilterMedianType.value); - SetControlValue(&PvrSetup.FilterLumaMedianBottom, PvrSetup.FilterLumaMedianBottom.value); - SetControlValue(&PvrSetup.FilterLumaMedianTop, PvrSetup.FilterLumaMedianTop.value); - SetControlValue(&PvrSetup.FilterChromaMedianBottom, PvrSetup.FilterChromaMedianBottom.value); - SetControlValue(&PvrSetup.FilterChromaMedianTop, PvrSetup.FilterChromaMedianTop.value); SetControlValue(&PvrSetup.Brightness, PvrSetup.Brightness.value); SetControlValue(&PvrSetup.Contrast, PvrSetup.Contrast.value); SetControlValue(&PvrSetup.Saturation, PvrSetup.Saturation.value); SetControlValue(&PvrSetup.Hue, PvrSetup.Hue.value); - SetControlValue(&PvrSetup.VideoBitrateTV, PvrSetup.VideoBitrateTV.value); + SetControlValue(&PvrSetup.AspectRatio, PvrSetup.AspectRatio.value); + if ((radio_fd >= 0) || (driver == pvrusb2 && CurrentInput == inputs[eRadio])) { SetControlValue(&PvrSetup.AudioVolumeFM, PvrSetup.AudioVolumeFM.value); SetControlValue(&PvrSetup.AudioMute, (int) (PvrSetup.AudioVolumeFM.value == 0)); @@ -392,6 +362,39 @@ void cPvrDevice::ReInit(void) SetAudioVolumeTV(); SetControlValue(&PvrSetup.AudioMute, (int) (PvrSetup.AudioVolumeTVCommon.value == 0)); } + + if (!dvrOpen) { + SetTunerAudioMode(PvrSetup.TunerAudioMode); + SetInput(CurrentInput); + if ((driver == cx18) || (driver == hdpvr)) + streamType = V4L2_MPEG_STREAM_TYPE_MPEG2_TS; + else + streamType = (PvrSetup.StreamType.value == 0) ? V4L2_MPEG_STREAM_TYPE_MPEG2_PS : V4L2_MPEG_STREAM_TYPE_MPEG2_DVD; + SetControlValue(&PvrSetup.StreamType, streamType); + SetControlValue(&PvrSetup.AudioBitrate, PvrSetup.AudioBitrate.value); + SetControlValue(&PvrSetup.AudioSampling, PvrSetup.AudioSampling.value); + if (driver == hdpvr) { + SetControlValue(&PvrSetup.HDPVR_AudioEncoding, PvrSetup.HDPVR_AudioEncoding.value); + SetAudioInput(PvrSetup.HDPVR_AudioInput); + } + SetControlValue(&PvrSetup.VideoBitrateTV, PvrSetup.VideoBitrateTV.value); + SetControlValue(&PvrSetup.BitrateMode, PvrSetup.BitrateMode.value); + SetControlValue(&PvrSetup.GopSize, PvrSetup.GopSize.queryctrl.default_value); + SetControlValue(&PvrSetup.GopClosure, PvrSetup.GopClosure.queryctrl.default_value); + SetControlValue(&PvrSetup.BFrames, PvrSetup.BFrames.queryctrl.default_value); + SetControlValue(&PvrSetup.FilterSpatialMode, PvrSetup.FilterSpatialMode.value); + SetControlValue(&PvrSetup.FilterSpatial, PvrSetup.FilterSpatial.value); + SetControlValue(&PvrSetup.FilterLumaSpatialType, PvrSetup.FilterLumaSpatialType.value); + SetControlValue(&PvrSetup.FilterChromaSpatialType, PvrSetup.FilterChromaSpatialType.value); + SetControlValue(&PvrSetup.FilterTemporalMode, PvrSetup.FilterTemporalMode.value); + SetControlValue(&PvrSetup.FilterTemporal, PvrSetup.FilterTemporal.value); + SetControlValue(&PvrSetup.FilterMedianType, PvrSetup.FilterMedianType.value); + SetControlValue(&PvrSetup.FilterLumaMedianBottom, PvrSetup.FilterLumaMedianBottom.value); + SetControlValue(&PvrSetup.FilterLumaMedianTop, PvrSetup.FilterLumaMedianTop.value); + SetControlValue(&PvrSetup.FilterChromaMedianBottom, PvrSetup.FilterChromaMedianBottom.value); + SetControlValue(&PvrSetup.FilterChromaMedianTop, PvrSetup.FilterChromaMedianTop.value); + SetControlValue(&PvrSetup.VideoBitrateTV, PvrSetup.VideoBitrateTV.value); + } } bool cPvrDevice::Tune(int freq) @@ -742,12 +745,10 @@ bool cPvrDevice::OpenDvr(void) tsBuffer->Clear(); ResetBuffering(); if (!dvrOpen) { - if (driver == ivtv || driver == cx18) { - if (PvrSetup.repeat_ReInitAll_after_next_encoderstop) { - ReInitAll(); //some settings require an encoder stop, so we repeat them now - PvrSetup.repeat_ReInitAll_after_next_encoderstop = false; - } - } + if (PvrSetup.repeat_ReInitAll_after_next_encoderstop) { + ReInitAll(); //some settings require an encoder stop, so we repeat them now + PvrSetup.repeat_ReInitAll_after_next_encoderstop = false; + } if (!ChannelSettingsDone) { if (driver == pvrusb2) { while (!pvrusb2_ready) { //re-opening pvrusb2 in SetEncoderState might be in progress |