+#if HAVE_DVB_API_VERSION < 3
+void eDVBAudio::stopPid()
+{
+ if (::ioctl(m_fd_demux, DMX_STOP) < 0)
+ eWarning("audio: DMX_STOP: %m");
+}
+#endif
+
+void eDVBAudio::flush()
+{
+ if (::ioctl(m_fd, AUDIO_CLEAR_BUFFER) < 0)
+ eDebug("audio: AUDIO_CLEAR_BUFFER: %m");
+}
+
+void eDVBAudio::freeze()
+{
+ if (::ioctl(m_fd, AUDIO_PAUSE) < 0)
+ eDebug("video: AUDIO_PAUSE: %m");
+}
+
+void eDVBAudio::unfreeze()
+{
+ if (::ioctl(m_fd, AUDIO_CONTINUE) < 0)
+ eDebug("video: AUDIO_CONTINUE: %m");
+}
+
+void eDVBAudio::setChannel(int channel)
+{
+ int val = AUDIO_STEREO;
+ switch (channel)
+ {
+ case aMonoLeft: val = AUDIO_MONO_LEFT; break;
+ case aMonoRight: val = AUDIO_MONO_RIGHT; break;
+ default: break;
+ }
+ if (::ioctl(m_fd, AUDIO_CHANNEL_SELECT, val) < 0)
+ eDebug("video: AUDIO_CHANNEL_SELECT: %m");
+}
+
+int eDVBAudio::getPTS(pts_t &now)
+{
+ return ::ioctl(m_fd, AUDIO_GET_PTS, &now);
+}
+