summaryrefslogtreecommitdiffstats
path: root/dec_video.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-07-08 17:20:46 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-07-08 17:20:46 +0000
commit728e7eba4cebb564e8d9fd98d94748e21b89c0b7 (patch)
tree20ce683189e6198ae35d82a8318c6a4461733109 /dec_video.c
parent4844ff55e50fdd1689be0783ed0ae803590efcbc (diff)
downloadmpv-728e7eba4cebb564e8d9fd98d94748e21b89c0b7.tar.bz2
mpv-728e7eba4cebb564e8d9fd98d94748e21b89c0b7.tar.xz
VfwEx support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1298 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'dec_video.c')
-rw-r--r--dec_video.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/dec_video.c b/dec_video.c
index 41965bad1d..5080f948f9 100644
--- a/dec_video.c
+++ b/dec_video.c
@@ -30,7 +30,7 @@ extern double vout_time_usage;
extern picture_t *picture; // exported from libmpeg2/decode.c
-extern int init_video_codec(sh_video_t *sh_video);
+extern int init_video_codec(sh_video_t *sh_video,int ex);
#ifdef USE_DIRECTSHOW
#include "loader/DirectShow/DS_VideoDec.h"
@@ -77,7 +77,7 @@ unsigned int out_fmt=sh_video->codec->outfmt[sh_video->outfmtidx];
switch(sh_video->codec->driver){
case 2: {
- if(!init_video_codec(sh_video)) {
+ if(!init_video_codec(sh_video,0)) {
// GUI_MSG( mplUnknowError )
// exit(1);
return 0;
@@ -85,6 +85,15 @@ switch(sh_video->codec->driver){
if(verbose) printf("INFO: Win32 video codec init OK!\n");
break;
}
+ case 6: {
+ if(!init_video_codec(sh_video,1)) {
+// GUI_MSG( mplUnknowError )
+// exit(1);
+ return 0;
+ }
+ if(verbose) printf("INFO: Win32Ex video codec init OK!\n");
+ break;
+ }
case 4: { // Win32/DirectShow
#ifndef USE_DIRECTSHOW
fprintf(stderr,"MPlayer was compiled WITHOUT directshow support!\n");
@@ -309,6 +318,7 @@ switch(sh_video->codec->driver){
break;
}
#endif
+ case 6:
case 2: {
HRESULT ret;
unsigned int t=GetTimer();
@@ -320,6 +330,15 @@ switch(sh_video->codec->driver){
// sh_video->bih->biWidth = 1280;
// sh_video->o_bih.biWidth = 1280;
// ret = ICDecompress(avi_header.hic, ICDECOMPRESS_NOTKEYFRAME|(ICDECOMPRESS_HURRYUP|ICDECOMPRESS_PREROL),
+
+if(sh_video->codec->driver==6)
+ ret = ICDecompressEx(sh_video->hic,
+ ( (sh_video->ds->flags&1) ? 0 : ICDECOMPRESS_NOTKEYFRAME ) |
+ ( (drop_frame==2 && !(sh_video->ds->flags&1))?(ICDECOMPRESS_HURRYUP|ICDECOMPRESS_PREROL):0 ) ,
+ sh_video->bih, start,
+ &sh_video->o_bih,
+ drop_frame ? 0 : sh_video->our_out_buffer);
+else
ret = ICDecompress(sh_video->hic,
( (sh_video->ds->flags&1) ? 0 : ICDECOMPRESS_NOTKEYFRAME ) |
( (drop_frame==2 && !(sh_video->ds->flags&1))?(ICDECOMPRESS_HURRYUP|ICDECOMPRESS_PREROL):0 ) ,