summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-07-29 18:48:50 +0200
committerwm4 <wm4@nowhere>2012-07-30 01:42:54 +0200
commit614f847516b7ed98784b8d491a417e037ff2f391 (patch)
treec258f29d0c25158d5ae994719df34b02d8146668
parent7349d39938ae61b90778ddef5cf427e37cd96c75 (diff)
downloadmpv-614f847516b7ed98784b8d491a417e037ff2f391.tar.bz2
mpv-614f847516b7ed98784b8d491a417e037ff2f391.tar.xz
mplayer: remove Linux RTC support
This used /dev/rtc for timing. /dev/rtc root only by default, and I have a hard time believing that the standard OS functions are not good enough. (Even if not, support for POSIX high resolution timers should be added instead, see clock_gettime() and others.)
-rw-r--r--cfg-mplayer.h4
-rwxr-xr-xconfigure29
-rw-r--r--mplayer.c91
-rw-r--r--options.h2
4 files changed, 14 insertions, 112 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index dd6537678b..1f937c1635 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -880,10 +880,6 @@ const m_option_t mplayer_opts[]={
OPT_INTRANGE("autosync", autosync, 0, 0, 10000),
OPT_FLAG_ON("softsleep", softsleep, 0),
-#ifdef HAVE_RTC
- OPT_MAKE_FLAGS("rtc", rtc, 0),
- OPT_STRING("rtc-device", rtc_device, 0),
-#endif
OPT_CHOICE("term-osd", term_osd, M_OPT_IMPLICIT_DEFAULT,
({"force", 1},
diff --git a/configure b/configure
index b947d47fdb..35b246fbdd 100755
--- a/configure
+++ b/configure
@@ -309,7 +309,6 @@ Optional features:
--disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
--disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
--disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
- --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
--disable-networking disable networking [enable]
--enable-winsock2_h enable winsock2_h [autodetect]
--enable-smb enable Samba (SMB) input [autodetect]
@@ -486,7 +485,6 @@ _dvb=auto
_v4l2=auto
_iconv=auto
_langinfo=auto
-_rtc=auto
_ossaudio=auto
_rsound=auto
_pulse=auto
@@ -737,8 +735,6 @@ for ac_option do
--disable-iconv) _iconv=no ;;
--enable-langinfo) _langinfo=yes ;;
--disable-langinfo) _langinfo=no ;;
- --enable-rtc) _rtc=yes ;;
- --disable-rtc) _rtc=no ;;
--enable-libdv) _libdv=yes ;;
--disable-libdv) _libdv=no ;;
--enable-ossaudio) _ossaudio=yes ;;
@@ -3389,30 +3385,6 @@ fi
echores "$_zlib"
-echocheck "RTC"
-if test "$_rtc" = auto ; then
- cat > $TMPC << EOF
-#include <sys/ioctl.h>
-#ifdef __linux__
-#include <linux/rtc.h>
-#else
-#include <rtc.h>
-#define RTC_PIE_ON RTCIO_PIE_ON
-#endif
-int main(void) { return RTC_PIE_ON; }
-EOF
- _rtc=no
- cc_check && _rtc=yes
- ppc && _rtc=no
-fi
-if test "$_rtc" = yes ; then
- def_rtc='#define HAVE_RTC 1'
-else
- def_rtc='#undef HAVE_RTC'
-fi
-echores "$_rtc"
-
-
echocheck "mad support"
if test "$_mad" = auto ; then
_mad=no
@@ -4629,7 +4601,6 @@ $def_macosx_finder
$def_priority
$def_quicktime
$def_restrict_keyword
-$def_rtc
/* configurable options */
diff --git a/mplayer.c b/mplayer.c
index c15ad7db17..aabc0de936 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -109,16 +109,6 @@ float start_volume = -1;
char *heartbeat_cmd;
-#ifdef HAVE_RTC
-#ifdef __linux__
-#include <linux/rtc.h>
-#else
-#include <rtc.h>
-#define RTC_IRQP_SET RTCIO_IRQP_SET
-#define RTC_PIE_ON RTCIO_PIE_ON
-#endif /* __linux__ */
-#endif /* HAVE_RTC */
-
#include "stream/tv.h"
#include "stream/stream_radio.h"
#ifdef CONFIG_DVBIN
@@ -1975,41 +1965,22 @@ static int check_framedrop(struct MPContext *mpctx, double frame_time)
return 0;
}
-
-#ifdef HAVE_RTC
-int rtc_fd = -1;
-#endif
-
static float timing_sleep(struct MPContext *mpctx, float time_frame)
{
-#ifdef HAVE_RTC
- if (rtc_fd >= 0) {
- // -------- RTC -----------
- while (time_frame > 0.000) {
- unsigned long rtc_ts;
- if (read(rtc_fd, &rtc_ts, sizeof(rtc_ts)) <= 0)
- mp_tmsg(MSGT_CPLAYER, MSGL_ERR,
- "Linux RTC read error: %s\n", strerror(errno));
- time_frame -= get_relative_time(mpctx);
- }
- } else
-#endif
- {
- // assume kernel HZ=100 for softsleep, works with larger HZ but with
- // unnecessarily high CPU usage
- struct MPOpts *opts = &mpctx->opts;
- float margin = opts->softsleep ? 0.011 : 0;
- while (time_frame > margin) {
- usec_sleep(1000000 * (time_frame - margin));
- time_frame -= get_relative_time(mpctx);
- }
- if (opts->softsleep) {
- if (time_frame < 0)
- mp_tmsg(MSGT_AVSYNC, MSGL_WARN,
- "Warning! Softsleep underflow!\n");
- while (time_frame > 0)
- time_frame -= get_relative_time(mpctx); // burn the CPU
- }
+ // assume kernel HZ=100 for softsleep, works with larger HZ but with
+ // unnecessarily high CPU usage
+ struct MPOpts *opts = &mpctx->opts;
+ float margin = opts->softsleep ? 0.011 : 0;
+ while (time_frame > margin) {
+ usec_sleep(1000000 * (time_frame - margin));
+ time_frame -= get_relative_time(mpctx);
+ }
+ if (opts->softsleep) {
+ if (time_frame < 0)
+ mp_tmsg(MSGT_AVSYNC, MSGL_WARN,
+ "Warning! Softsleep underflow!\n");
+ while (time_frame > 0)
+ time_frame -= get_relative_time(mpctx); // burn the CPU
}
return time_frame;
}
@@ -3872,40 +3843,6 @@ int main(int argc, char *argv[])
mpctx->osd = osd_create(opts, mpctx->ass_library);
-#ifdef HAVE_RTC
- if (opts->rtc) {
- char *rtc_device = opts->rtc_device;
- // seteuid(0); /* Can't hurt to try to get root here */
- if ((rtc_fd = open(rtc_device ? rtc_device : "/dev/rtc", O_RDONLY)) < 0)
- mp_tmsg(MSGT_CPLAYER, MSGL_WARN, "Failed to open %s: %s "
- "(it should be readable by the user.)\n",
- rtc_device ? rtc_device : "/dev/rtc", strerror(errno));
- else {
- unsigned long irqp = 1024; /* 512 seemed OK. 128 is jerky. */
-
- if (ioctl(rtc_fd, RTC_IRQP_SET, irqp) < 0) {
- mp_tmsg(MSGT_CPLAYER, MSGL_WARN, "Linux RTC init error in "
- "ioctl (rtc_irqp_set %lu): %s\n",
- irqp, strerror(errno));
- mp_tmsg(MSGT_CPLAYER, MSGL_HINT, "Try adding \"echo %lu > /proc/sys/dev/rtc/max-user-freq\" to your system startup scripts.\n", irqp);
- close(rtc_fd);
- rtc_fd = -1;
- } else if (ioctl(rtc_fd, RTC_PIE_ON, 0) < 0) {
- /* variable only by the root */
- mp_tmsg(MSGT_CPLAYER, MSGL_ERR, "Linux RTC init error in "
- "ioctl (rtc_pie_on): %s\n", strerror(errno));
- close(rtc_fd);
- rtc_fd = -1;
- } else
- mp_tmsg(MSGT_CPLAYER, MSGL_V,
- "Using Linux hardware RTC timing (%ldHz).\n", irqp);
- }
- }
- if (rtc_fd < 0)
-#endif /* HAVE_RTC */
- mp_msg(MSGT_CPLAYER, MSGL_V, "Using %s timing\n",
- opts->softsleep ? "software" : timer_name);
-
#ifdef HAVE_TERMCAP
load_termcap(NULL); // load key-codes
#endif
diff --git a/options.h b/options.h
index eacbafb89a..9cd4f04761 100644
--- a/options.h
+++ b/options.h
@@ -62,8 +62,6 @@ typedef struct MPOpts {
float hr_seek_demuxer_offset;
int autosync;
int softsleep;
- int rtc;
- char *rtc_device;
int term_osd;
char *term_osd_esc;
char *playing_msg;