diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-07-01 17:56:05 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-07-01 17:56:05 +0000 |
commit | 55b973ab9dde41cbc9d70e2cb9cb1365ec4ad5a2 (patch) | |
tree | a75e2ca408aa1dea4eab0ae04b34408cbc261011 | |
parent | e7eb5eea39cb19a939a519828be0879ba58d1805 (diff) | |
download | xine-lib-55b973ab9dde41cbc9d70e2cb9cb1365ec4ad5a2.tar.gz xine-lib-55b973ab9dde41cbc9d70e2cb9cb1365ec4ad5a2.tar.bz2 |
enable ffmpeg's msmpeg4 v1/v2.
note: i don't have any v1 streams to test. v2 are working fine though.
CVS patchset: 2189
CVS date: 2002/07/01 17:56:05
-rw-r--r-- | src/libdivx4/xine_decoder.c | 7 | ||||
-rw-r--r-- | src/libffmpeg/xine_decoder.c | 14 | ||||
-rw-r--r-- | src/libw32dll/w32codec.c | 14 | ||||
-rw-r--r-- | src/xine-engine/buffer.h | 5 | ||||
-rw-r--r-- | src/xine-engine/buffer_types.c | 15 |
5 files changed, 36 insertions, 19 deletions
diff --git a/src/libdivx4/xine_decoder.c b/src/libdivx4/xine_decoder.c index 930e3f79d..c5dfdb4b8 100644 --- a/src/libdivx4/xine_decoder.c +++ b/src/libdivx4/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.37 2002/06/12 12:22:35 f1rmb Exp $ + * $Id: xine_decoder.c,v 1.38 2002/07/01 17:56:05 miguelfreitas Exp $ * * xine decoder plugin using divx4 * @@ -231,7 +231,8 @@ static int divx4_init_decoder(divx4_decoder_t *this, buf_element_t *buf) { /* do we need divx 3.11 compatibility mode? */ switch (buf->type & 0xFFFF0000) { - case BUF_VIDEO_MSMPEG4_V12: + case BUF_VIDEO_MSMPEG4_V1: + case BUF_VIDEO_MSMPEG4_V2: case BUF_VIDEO_MSMPEG4_V3: if (this->version >= 20020303) { param.codec_version=311; @@ -353,7 +354,7 @@ static int divx4_can_handle (video_decoder_t *this_gen, int buf_type) { /* divx4 currently does not support MSMPEG4 v1/v2 */ return ( (buf_type == BUF_VIDEO_MSMPEG4_V3 && this->can_handle_311) || - /* buf_type == BUF_VIDEO_MSMPEG4_V12 || */ + /* buf_type == BUF_VIDEO_MSMPEG4_V2 || */ (buf_type == BUF_VIDEO_MPEG4) || (buf_type == BUF_VIDEO_DIVX5)); } diff --git a/src/libffmpeg/xine_decoder.c b/src/libffmpeg/xine_decoder.c index 63a81d595..bf3cfa8b2 100644 --- a/src/libffmpeg/xine_decoder.c +++ b/src/libffmpeg/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.44 2002/07/01 13:33:12 miguelfreitas Exp $ + * $Id: xine_decoder.c,v 1.45 2002/07/01 17:56:05 miguelfreitas Exp $ * * xine decoder plugin using ffmpeg * @@ -68,10 +68,9 @@ typedef struct ff_decoder_s { static int ff_can_handle (video_decoder_t *this_gen, int buf_type) { buf_type &= 0xFFFF0000; - /* ffmpeg currently does not support MSMPEG4 v1/v2 */ - /* there's some problem with I263 too */ return ( buf_type == BUF_VIDEO_MSMPEG4_V3 || - /* buf_type == BUF_VIDEO_MSMPEG4_V12 || */ + buf_type == BUF_VIDEO_MSMPEG4_V2 || + buf_type == BUF_VIDEO_MSMPEG4_V1 || buf_type == BUF_VIDEO_WMV7 || buf_type == BUF_VIDEO_MPEG4 || buf_type == BUF_VIDEO_XVID || @@ -119,7 +118,12 @@ static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { codec_type = buf->type & 0xFFFF0000; switch (codec_type) { - case BUF_VIDEO_MSMPEG4_V12: + case BUF_VIDEO_MSMPEG4_V1: + codec = avcodec_find_decoder (CODEC_ID_MSMPEG4V1); + break; + case BUF_VIDEO_MSMPEG4_V2: + codec = avcodec_find_decoder (CODEC_ID_MSMPEG4V2); + break; case BUF_VIDEO_MSMPEG4_V3: codec = avcodec_find_decoder (CODEC_ID_MSMPEG4); break; diff --git a/src/libw32dll/w32codec.c b/src/libw32dll/w32codec.c index 93787eeae..90926b27e 100644 --- a/src/libw32dll/w32codec.c +++ b/src/libw32dll/w32codec.c @@ -17,13 +17,13 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: w32codec.c,v 1.82 2002/06/21 01:44:17 miguelfreitas Exp $ + * $Id: w32codec.c,v 1.83 2002/07/01 17:56:05 miguelfreitas Exp $ * * routines for using w32 codecs * DirectShow support by Miguel Freitas (Nov/2001) * */ - + #include <stdlib.h> #include <stdio.h> #include <inttypes.h> @@ -285,7 +285,8 @@ static char* get_vids_codec_name(w32v_decoder_t *this, buf_type &= 0xffff0000; switch (buf_type) { - case BUF_VIDEO_MSMPEG4_V12: + case BUF_VIDEO_MSMPEG4_V1: + case BUF_VIDEO_MSMPEG4_V2: /* Microsoft MPEG-4 v1/v2 */ /* old dll is disabled now due segfaults * (using directshow instead) @@ -403,9 +404,10 @@ static char* get_vids_codec_name(w32v_decoder_t *this, static int w32v_can_handle (video_decoder_t *this_gen, int buf_type) { buf_type &= 0xFFFF0000; - return ( buf_type == BUF_VIDEO_MSMPEG4_V12 || - buf_type == BUF_VIDEO_MSMPEG4_V3 || - buf_type == BUF_VIDEO_IV50 || + return ( buf_type == BUF_VIDEO_MSMPEG4_V1 || + buf_type == BUF_VIDEO_MSMPEG4_V2 || + buf_type == BUF_VIDEO_MSMPEG4_V3 || + buf_type == BUF_VIDEO_IV50 || buf_type == BUF_VIDEO_IV41 || buf_type == BUF_VIDEO_IV32 || buf_type == BUF_VIDEO_IV31 || diff --git a/src/xine-engine/buffer.h b/src/xine-engine/buffer.h index 339f556d1..15eac4969 100644 --- a/src/xine-engine/buffer.h +++ b/src/xine-engine/buffer.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: buffer.h,v 1.53 2002/06/26 15:55:49 jkeil Exp $ + * $Id: buffer.h,v 1.54 2002/07/01 17:56:05 miguelfreitas Exp $ * * * contents: @@ -83,7 +83,7 @@ extern "C" { #define BUF_VIDEO_MPEG4 0x02010000 #define BUF_VIDEO_CINEPAK 0x02020000 #define BUF_VIDEO_SORENSON_V1 0x02030000 -#define BUF_VIDEO_MSMPEG4_V12 0x02040000 +#define BUF_VIDEO_MSMPEG4_V2 0x02040000 #define BUF_VIDEO_MSMPEG4_V3 0x02050000 #define BUF_VIDEO_MJPEG 0x02060000 #define BUF_VIDEO_IV50 0x02070000 @@ -116,6 +116,7 @@ extern "C" { #define BUF_VIDEO_FLI 0x02230000 #define BUF_VIDEO_ROQ 0x02240000 #define BUF_VIDEO_SORENSON_V3 0x02250000 +#define BUF_VIDEO_MSMPEG4_V1 0x02260000 /* audio buffer types: (please keep in sync with buffer_types.c) */ diff --git a/src/xine-engine/buffer_types.c b/src/xine-engine/buffer_types.c index 78cb7dba7..4812def16 100644 --- a/src/xine-engine/buffer_types.c +++ b/src/xine-engine/buffer_types.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: buffer_types.c,v 1.26 2002/06/24 12:26:30 jcdutton Exp $ + * $Id: buffer_types.c,v 1.27 2002/07/01 17:56:05 miguelfreitas Exp $ * * * contents: @@ -136,6 +136,15 @@ static video_db_t video_db[] = { { meFOURCC('M', 'P', '4', '1'), meFOURCC('m', 'p', '4', '1'), + 0 + }, + BUF_VIDEO_MSMPEG4_V1, + "Microsoft MPEG-4 format v1" +}, +{ + { + meFOURCC('M', 'P', '4', '1'), + meFOURCC('m', 'p', '4', '1'), meFOURCC('M', 'P', '4', '2'), meFOURCC('m', 'p', '4', '2'), meFOURCC('D', 'I', 'V', '2'), @@ -144,8 +153,8 @@ static video_db_t video_db[] = { meFOURCC('m', 'p', 'g', '4'), 0 }, - BUF_VIDEO_MSMPEG4_V12, - "Microsoft MPEG-4 format v1/v2" + BUF_VIDEO_MSMPEG4_V2, + "Microsoft MPEG-4 format v2" }, { { |