diff -Naur old/smplayer2/src/core.cpp new/smplayer2/src/core.cpp
--- old/smplayer2/src/core.cpp 2011-11-11 02:44:55.000000000 +0200
+++ new/smplayer2/src/core.cpp 2011-11-11 15:01:54.179798609 +0200
@@ -1270,6 +1270,19 @@
proc->addArgument("-vc");
proc->addArgument(mset.forced_video_codec);
}
+#ifndef Q_OS_WIN
+ else {
+ if (pref->vo.startsWith("vdpau")) {
+ proc->addArgument("-vc");
+ if (pref->disable_vdpau_divx_decoder)
+ proc->addArgument("ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,");
+ else
+ proc->addArgument("ffh264vdpau,ffmpeg12vdpau,ffodivxvdpau,ffwmv3vdpau,ffvc1vdpau,");
+ }
+#endif
+#ifndef Q_OS_WIN
+ }
+#endif
if (pref->use_hwac3) {
proc->addArgument("-afm");
diff -Naur old/smplayer2/src/preferences.cpp new/smplayer2/src/preferences.cpp
--- old/smplayer2/src/preferences.cpp 2011-11-11 02:44:55.000000000 +0200
+++ new/smplayer2/src/preferences.cpp 2011-11-11 15:04:36.199805637 +0200
@@ -97,6 +97,7 @@
#ifndef Q_OS_WIN
disable_video_filters_with_vdpau = true;
+ disable_vdpau_divx_decoder = true;
#endif
use_soft_vol = true;
@@ -469,6 +470,7 @@
#ifndef Q_OS_WIN
set->setValue("disable_video_filters_with_vdpau", disable_video_filters_with_vdpau);
+ set->setValue("disable_vdpau_divx_decoder", disable_vdpau_divx_decoder);
#endif
set->setValue("use_soft_vol", use_soft_vol);
@@ -853,6 +855,7 @@
#ifndef Q_OS_WIN
disable_video_filters_with_vdpau = set->value("disable_video_filters_with_vdpau", disable_video_filters_with_vdpau).toBool();
+ disable_vdpau_divx_decoder = set->value("disable_vdpau_divx_decoder", disable_vdpau_divx_decoder).toBool();
#endif
use_soft_vol = set->value("use_soft_vol", use_soft_vol).toBool();
diff -Naur old/smplayer2/src/preferences.h new/smplayer2/src/preferences.h
--- old/smplayer2/src/preferences.h 2011-11-11 02:44:55.000000000 +0200
+++ new/smplayer2/src/preferences.h 2011-11-11 15:05:13.516473922 +0200
@@ -98,6 +98,7 @@
#ifndef Q_OS_WIN
bool disable_video_filters_with_vdpau;
+ bool disable_vdpau_divx_decoder;
#endif
// Audio
diff -Naur old/smplayer2/src/prefgeneral.cpp new/smplayer2/src/prefgeneral.cpp
--- old/smplayer2/src/prefgeneral.cpp 2011-11-11 02:44:55.000000000 +0200
+++ new/smplayer2/src/prefgeneral.cpp 2011-11-11 15:10:10.099820120 +0200
@@ -198,6 +198,7 @@
#ifndef Q_OS_WIN
setDisableFiltersWithVdpau( pref->disable_video_filters_with_vdpau );
+ setDisableVdpauForDivx( pref->disable_vdpau_divx_decoder );
#endif
setAudioChannels( pref->initial_audio_channels );
@@ -281,6 +282,7 @@
#ifndef Q_OS_WIN
TEST_AND_SET(pref->disable_video_filters_with_vdpau, disableFiltersWithVdpau());
+ TEST_AND_SET(pref->disable_vdpau_divx_decoder, disableVdpauForDivx());
#endif
pref->initial_audio_channels = audioChannels();
@@ -740,6 +742,14 @@
bool PrefGeneral::disableFiltersWithVdpau() {
return vdpau_filters_check->isChecked();
}
+
+void PrefGeneral::setDisableVdpauForDivx(bool b) {
+ vdpau_divx_check->setChecked(b);
+}
+
+bool PrefGeneral::disableVdpauForDivx() {
+ return vdpau_divx_check->isChecked();
+}
#endif
void PrefGeneral::setBlackbordersOnFullscreen(bool b) {
@@ -846,9 +856,13 @@
);
#ifndef Q_OS_WIN
- setWhatsThis(vdpau_filters_check, tr("Disable video filters when using vdpau"),
+ setWhatsThis(vdpau_filters_check, tr("Disable video filters with vdpau"),
tr("Usually video filters won't work when using vdpau as video output "
"driver, so it's wise to keep this option checked.") );
+
+ setWhatsThis(vdpau_divx_check, tr("Disable vdpau for divx"),
+ tr("Not all graphics cards support vdpau DivX/XViD decoding. Check this "
+ "option, only if you are sure your card supports it.") );
#endif
setWhatsThis(postprocessing_check, tr("Enable postprocessing by default"),
diff -Naur old/smplayer2/src/prefgeneral.h new/smplayer2/src/prefgeneral.h
--- old/smplayer2/src/prefgeneral.h 2011-11-11 02:44:55.000000000 +0200
+++ new/smplayer2/src/prefgeneral.h 2011-11-11 15:10:49.989821850 +0200
@@ -123,6 +123,9 @@
#ifndef Q_OS_WIN
void setDisableFiltersWithVdpau(bool b);
bool disableFiltersWithVdpau();
+
+ void setDisableVdpauForDivx(bool b);
+ bool disableVdpauForDivx();
#endif
void setBlackbordersOnFullscreen(bool b);
diff -Naur old/smplayer2/src/prefgeneral.ui new/smplayer2/src/prefgeneral.ui
--- old/smplayer2/src/prefgeneral.ui 2011-11-11 02:44:55.000000000 +0200
+++ new/smplayer2/src/prefgeneral.ui 2011-11-11 15:19:21.336510696 +0200
@@ -274,12 +274,42 @@
-
-
-
- Disable video filters when using vd&pau
+
+
+ 6
+
+
+ 0
-
-
+ -
+
+
+ Disable video filters with vd&pau
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ Disable vdpau for div&x
+
+
+
+
+
-
@@ -1279,6 +1309,7 @@
vo_combo
vo_user_defined_edit
vdpau_filters_check
+ vdpau_divx_check
postprocessing_check
autoq_spin
deinterlace_combo