[Mplayer-cvslog] CVS: main/loader/dshow DS_VideoDecoder.c,1.19,1.20 guids.c,1.4,1.5 guids.h,1.5,1.6 libwin32.h,1.7,1.8
Alex Beregszaszi
alex at mplayerhq.hu
Sun Jun 23 18:03:11 CEST 2002
Update of /cvsroot/mplayer/main/loader/dshow
In directory mail:/var/tmp.root/cvs-serv24663
Modified Files:
DS_VideoDecoder.c guids.c guids.h libwin32.h
Log Message:
yvu9 and if09 support. fixed i420,iyuv handling
Index: DS_VideoDecoder.c
===================================================================
RCS file: /cvsroot/mplayer/main/loader/dshow/DS_VideoDecoder.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- DS_VideoDecoder.c 17 Jan 2002 00:49:21 -0000 1.19
+++ DS_VideoDecoder.c 23 Jun 2002 16:03:08 -0000 1.20
@@ -74,9 +74,10 @@
{12, fccIYUV, &MEDIASUBTYPE_IYUV, CAP_IYUV},
{16, fccUYVY, &MEDIASUBTYPE_UYVY, CAP_UYVY},
{12, fccYV12, &MEDIASUBTYPE_YV12, CAP_YV12},
- {16, fccYV12, &MEDIASUBTYPE_YV12, CAP_YV12},
+ //{16, fccYV12, &MEDIASUBTYPE_YV12, CAP_YV12},
{16, fccYVYU, &MEDIASUBTYPE_YVYU, CAP_YVYU},
- //{12, fccI420, &MEDIASUBTYPE_I420, CAP_I420},
+ {12, fccI420, &MEDIASUBTYPE_I420, CAP_I420},
+ {9, fccYVU9, &MEDIASUBTYPE_YVU9, CAP_YVU9},
{0},
};
@@ -192,6 +193,7 @@
switch (this->iv.m_bh->biCompression)
{
+#if 0
case fccDIV3:
case fccDIV4:
case fccDIV5:
@@ -206,10 +208,12 @@
//m_Caps = CAP_I420;
this->m_Caps = (CAP_YUY2 | CAP_UYVY);
break;
+#endif
default:
this->m_Caps = CAP_NONE;
+ printf("Decoder supports the following YUV formats: ");
for (c = check; c->bits; c++)
{
this->m_sVhdr2->bmiHeader.biBitCount = c->bits;
@@ -217,12 +221,16 @@
this->m_sDestType.subtype = *c->subtype;
result = this->m_pDS_Filter->m_pOutputPin->vt->QueryAccept(this->m_pDS_Filter->m_pOutputPin, &this->m_sDestType);
if (!result)
+ {
this->m_Caps = (this->m_Caps | c->cap);
+ printf("%.4s ", &c->fcc);
+ }
}
+ printf("\n");
}
if (this->m_Caps != CAP_NONE)
- printf("Decoder is capable of YUV output ( flags 0x%x)\n", (int)this->m_Caps);
+ printf("Decoder is capable of YUV output (flags 0x%x)\n", (int)this->m_Caps);
this->m_sVhdr2->bmiHeader.biBitCount = 24;
this->m_sVhdr2->bmiHeader.biCompression = 0;
@@ -480,12 +488,17 @@
case fccIYUV:
this->m_sDestType.subtype = MEDIASUBTYPE_IYUV;
break;
+ case fccI420:
+ this->m_sDestType.subtype = MEDIASUBTYPE_I420;
+ break;
case fccUYVY:
this->m_sDestType.subtype = MEDIASUBTYPE_UYVY;
break;
case fccYVYU:
this->m_sDestType.subtype = MEDIASUBTYPE_YVYU;
break;
+ case fccYVU9:
+ this->m_sDestType.subtype = MEDIASUBTYPE_YVU9;
default:
ok = false;
break;
@@ -524,12 +537,20 @@
if(!(this->m_Caps & CAP_IYUV))
should_test=false;
break;
+ case fccI420:
+ if(!(this->m_Caps & CAP_I420))
+ should_test=false;
+ break;
case fccUYVY:
if(!(this->m_Caps & CAP_UYVY))
should_test=false;
break;
case fccYVYU:
if(!(this->m_Caps & CAP_YVYU))
+ should_test=false;
+ break;
+ case fccYVU9:
+ if(!(this->m_Caps & CAP_YVU9))
should_test=false;
break;
}
Index: guids.c
===================================================================
RCS file: /cvsroot/mplayer/main/loader/dshow/guids.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- guids.c 11 Dec 2001 23:29:24 -0000 1.4
+++ guids.c 23 Jun 2002 16:03:08 -0000 1.5
@@ -55,6 +55,10 @@
{0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
GUID MEDIASUBTYPE_YV12={0x32315659, 0x0000, 0x0010,
{0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
+GUID MEDIASUBTYPE_I420={0x30323449, 0x0000, 0x0010,
+ {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
+GUID MEDIASUBTYPE_IF09={0x39304649, 0x0000, 0x0010,
+ {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
GUID CLSID_MemoryAllocator={0x1e651cc0, 0xb199, 0x11d0,
{0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45}};
GUID IID_DivxHidden={0x598eba01, 0xb49a, 0x11d2,
Index: guids.h
===================================================================
RCS file: /cvsroot/mplayer/main/loader/dshow/guids.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- guids.h 11 Dec 2001 23:29:24 -0000 1.5
+++ guids.h 23 Jun 2002 16:03:08 -0000 1.6
@@ -92,5 +92,6 @@
extern GUID MEDIASUBTYPE_UYVY;
extern GUID MEDIASUBTYPE_Y211;
extern GUID MEDIASUBTYPE_YV12;
+extern GUID MEDIASUBTYPE_I420;
#endif
Index: libwin32.h
===================================================================
RCS file: /cvsroot/mplayer/main/loader/dshow/libwin32.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- libwin32.h 22 Nov 2001 03:16:31 -0000 1.7
+++ libwin32.h 23 Jun 2002 16:03:08 -0000 1.8
@@ -88,6 +88,8 @@
CAP_UYVY = 8,
CAP_YVYU = 16,
CAP_I420 = 32,
+ CAP_YVU9 = 64,
+ CAP_IF09 = 128,
};
enum DecodingMode
{
@@ -230,7 +232,7 @@
#define fccVCR2 mmioFOURCC('V', 'C', 'R', '2')
#define fccVCR1 mmioFOURCC('V', 'C', 'R', '1')
#define fccVYUY mmioFOURCC('V', 'Y', 'U', 'Y')
-#define fccYVU9 mmioFOURCC('I', 'Y', 'U', '9')
+#define fccIYU9 mmioFOURCC('I', 'Y', 'U', '9') // it was defined as fccYVU9
/* Asus codecs */
#define fccASV1 mmioFOURCC('A', 'S', 'V', '1')
@@ -255,5 +257,7 @@
#define fccIYUV mmioFOURCC('I', 'Y', 'U', 'V')/* Planar mode: Y + U + V (3 planes) */
#define fccUYVY mmioFOURCC('U', 'Y', 'V', 'Y')/* Packed mode: U0+Y0+V0+Y1 (1 plane) */
#define fccYVYU mmioFOURCC('Y', 'V', 'Y', 'U')/* Packed mode: Y0+V0+Y1+U0 (1 plane) */
+#define fccYVU9 mmioFOURCC('Y', 'V', 'U', '9')/* Planar 4:1:0 */
+#define fccIF09 mmioFOURCC('I', 'F', '0', '9')/* Planar 4:1:0 + delta */
#endif
More information about the MPlayer-cvslog
mailing list