add support for blueray PMT streamtypes for LPCM, AC3, DTS, add more registration...
[vuplus_dvbapp] / lib / dvb / decoder.cpp
index 92652a4..114e383 100644 (file)
@@ -198,6 +198,9 @@ int eDVBAudio::startPid(int pid, int type)
        case aAACHE:
                bypass = 9;
                break;
+       case aLPCM:
+               bypass = 6;
+               break;
        }
 
        eDebugNoNewLine("AUDIO_SET_BYPASS(%d) - ", bypass);
@@ -1002,7 +1005,7 @@ int eTSMPEGDecoder::setState()
        }
 #endif
 
-       if (m_changed & changeState)
+       if (m_changed & (changeState|changeVideo|changeAudio))
        {
                                        /* play, slowmotion, fast-forward */
                int state_table[6][4] = 
@@ -1015,7 +1018,7 @@ int eTSMPEGDecoder::setState()
                                /* [stateSlowMotion] =           */ {1, m_ff_sm_ratio, 0}
                        };
                int *s = state_table[m_state];
-               if (m_video)
+               if (m_changed & (changeState|changeVideo) && m_video)
                {
                        m_video->setSlowMotion(s[1]);
                        m_video->setFastForward(s[2]);
@@ -1024,7 +1027,7 @@ int eTSMPEGDecoder::setState()
                        else
                                m_video->freeze();
                }
-               if (m_audio)
+               if (m_changed & (changeState|changeAudio) && m_audio)
                {
                        if (s[0])
                                m_audio->unfreeze();
@@ -1175,10 +1178,7 @@ RESULT eTSMPEGDecoder::play()
        {
                if (!m_changed)
                        return 0;
-       }
-//     else  
-/* commented out because the changeState is needed to unfreeze decoders in decoder::setState... needed by normal pmt changes
-tmbinc please recheck this! */
+       } else  
        {
                m_state = statePlay;
                m_changed |= changeState;