summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-02-06 20:24:14 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-02-06 20:24:14 +0000
commit705681b0dbd9ec3158849dcb5695f386fdeb119d (patch)
treed2df452cfd67d22f769bf013bc3aa645a657e4c5 /libmpcodecs
parentaf78689681a7d664b5e1ddb2e3c4ac5da5cb19f1 (diff)
downloadmpv-705681b0dbd9ec3158849dcb5695f386fdeb119d.tar.bz2
mpv-705681b0dbd9ec3158849dcb5695f386fdeb119d.tar.xz
cleanup detection of various divx4 versions/alternatives
allows mixing xvid with divx4/5linux libs basic rule: -vfm odivx/divx4 and -ovc divx4 uses divx4/5linux/opendivx if available, otherwise uses xvid (if divx4.h is available and xvid has decore()/encore() functions). based on patch by Kim Minh Kaplan <kmkaplan@selfoffice.com> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9301 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vd_divx4.c14
-rw-r--r--libmpcodecs/vd_odivx.c14
-rw-r--r--libmpcodecs/vd_xvid.c12
-rw-r--r--libmpcodecs/ve_divx4.c4
4 files changed, 36 insertions, 8 deletions
diff --git a/libmpcodecs/vd_divx4.c b/libmpcodecs/vd_divx4.c
index f253a99dd0..0d9735a92f 100644
--- a/libmpcodecs/vd_divx4.c
+++ b/libmpcodecs/vd_divx4.c
@@ -14,19 +14,27 @@
static vd_info_t info = {
#ifdef DECORE_DIVX5
- "DivX5Linux lib (divx4 mode)",
+ "DivX5Linux lib",
#else
- "DivX4Linux lib (divx4 mode)",
+#ifdef DECORE_XVID
+ "XviD lib (divx4 compat.)",
+#else
+ "DivX4Linux lib",
+#endif
#endif
"divx4",
"A'rpi",
+#ifdef DECORE_XVID
+ "http://www.xvid.com",
+#else
"http://www.divx.com",
+#endif
"native binary codec"
};
LIBVD_EXTERN(divx4)
-#ifdef HAVE_DIVX4_H
+#ifdef DECORE_XVID
#include <divx4.h>
#else
#include <decore.h>
diff --git a/libmpcodecs/vd_odivx.c b/libmpcodecs/vd_odivx.c
index 173e36bcff..b9700a476d 100644
--- a/libmpcodecs/vd_odivx.c
+++ b/libmpcodecs/vd_odivx.c
@@ -13,9 +13,13 @@
static vd_info_t info = {
#ifdef NEW_DECORE
#ifdef DECORE_DIVX5
- "DivX5Linux lib (odivx mode)",
+ "DivX5Linux lib (odivx compat.)",
#else
- "DivX4Linux lib (odivx mode)",
+#ifdef DECORE_XVID
+ "XviD lib (odivx compat.)",
+#else
+ "DivX4Linux lib (odivx compat.)",
+#endif
#endif
#else
"Opendivx 0.48 codec",
@@ -23,7 +27,11 @@ static vd_info_t info = {
"odivx",
"A'rpi",
#ifdef NEW_DECORE
+#ifdef DECORE_XVID
+ "http://www.xvid.com",
+#else
"http://www.divx.com",
+#endif
#else
"http://www.projectmayo.org",
#endif
@@ -39,7 +47,7 @@ LIBVD_EXTERN(odivx)
#ifndef NEW_DECORE
#include "opendivx/decore.h"
#include "postproc/postprocess.h"
-#elif HAVE_DIVX4_H
+#elif DECORE_XVID
#include <divx4.h>
#else
#include <decore.h>
diff --git a/libmpcodecs/vd_xvid.c b/libmpcodecs/vd_xvid.c
index 5d9080d1e7..289c45cb55 100644
--- a/libmpcodecs/vd_xvid.c
+++ b/libmpcodecs/vd_xvid.c
@@ -9,9 +9,17 @@
#include "vd_internal.h"
#include "cfgparser.h"
-#include <divx4.h>
#include <xvid.h>
+typedef struct
+{
+ void *y;
+ void *u;
+ void *v;
+ int stride_y;
+ int stride_uv;
+}
+DIVX4_DEC_PICTURE;
#ifdef XVID_API_UNSTABLE
#warning *******************************************************************
@@ -178,7 +186,7 @@ static void uninit(sh_video_t *sh){
// decode a frame
static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){
XVID_DEC_FRAME dec;
- DEC_PICTURE d4_pic;
+ DIVX4_DEC_PICTURE d4_pic;
#ifdef XVID_CSP_EXTERN
XVID_DEC_PICTURE pic;
#endif
diff --git a/libmpcodecs/ve_divx4.c b/libmpcodecs/ve_divx4.c
index aeb9198667..bd76d74432 100644
--- a/libmpcodecs/ve_divx4.c
+++ b/libmpcodecs/ve_divx4.c
@@ -45,7 +45,11 @@
static int pass;
extern char* passtmpfile;
+#ifdef ENCORE_XVID
+#include <divx4.h>
+#else
#include <encore2.h>
+#endif
#ifndef ENCORE_MAJOR_VERSION
#define ENCORE_MAJOR_VERSION 4000