Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkongfl888 <kongfl888@outlook.com>2016-12-16 08:54:56 +0300
committerKacper Michajłow <kasper93@users.noreply.github.com>2017-03-07 01:19:34 +0300
commit2f00b0e1f63346042a49a695ee5e1d977c08d2b4 (patch)
tree6292151a2035ecedca010d7c9bd88d8e28cb9f7f
parentef84997561ed0bb29c8be12308c3fe08f0da5991 (diff)
Internal filters: enable Microsoft Video 1 support.
-rw-r--r--include/moreuuids.h12
-rw-r--r--src/mpc-hc/AppSettings.cpp3
-rw-r--r--src/mpc-hc/FGManager.cpp6
-rw-r--r--src/mpc-hc/FilterEnum.h3
-rw-r--r--src/mpc-hc/InternalFiltersConfig.h3
-rw-r--r--src/mpc-hc/PPageInternalFilters.cpp5
6 files changed, 31 insertions, 1 deletions
diff --git a/include/moreuuids.h b/include/moreuuids.h
index 87db4eaa5..46a43d9b3 100644
--- a/include/moreuuids.h
+++ b/include/moreuuids.h
@@ -1016,6 +1016,18 @@ DEFINE_GUID(MEDIASUBTYPE_MPG2,
DEFINE_GUID(MEDIASUBTYPE_FLIC,
0x434C4641, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+// {4D415243-0000-0010-8000-00AA00389B71}
+DEFINE_GUID(MEDIASUBTYPE_CRAM,
+ MAKEFOURCC('C', 'R', 'A', 'M'), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+
+// {4D414857-0000-0010-8000-00AA00389B71}
+DEFINE_GUID(MEDIASUBTYPE_WHAM,
+ MAKEFOURCC('W', 'H', 'A', 'M'), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+
+// {4356534D-0000-0010-8000-00AA00389B71}
+DEFINE_GUID(MEDIASUBTYPE_MSVC,
+ MAKEFOURCC('M', 'S', 'V', 'C'), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+
// {30313476-0000-0010-8000-00AA00389B71}
DEFINE_GUID(MEDIASUBTYPE_v410,
MAKEFOURCC('v', '4', '1', '0'), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
diff --git a/src/mpc-hc/AppSettings.cpp b/src/mpc-hc/AppSettings.cpp
index 643fef890..2fc4cd757 100644
--- a/src/mpc-hc/AppSettings.cpp
+++ b/src/mpc-hc/AppSettings.cpp
@@ -408,6 +408,9 @@ CAppSettings::CAppSettings()
#if INTERNAL_DECODER_FLIC
TraFiltersKeys[TRA_FLIC] = FilterKey(_T("TRA_FLIC"), true);
#endif
+#if INTERNAL_DECODER_MSVIDEO
+ TraFiltersKeys[TRA_MSVIDEO] = FilterKey(_T("TRA_MSVIDEO"), true);
+#endif
#if INTERNAL_DECODER_V210_V410
TraFiltersKeys[TRA_V210_V410] = FilterKey(_T("TRA_V210_V410"), false);
#endif
diff --git a/src/mpc-hc/FGManager.cpp b/src/mpc-hc/FGManager.cpp
index ae75d40d7..a96f0d6df 100644
--- a/src/mpc-hc/FGManager.cpp
+++ b/src/mpc-hc/FGManager.cpp
@@ -2122,6 +2122,12 @@ CFGManagerCustom::CFGManagerCustom(LPCTSTR pName, LPUNKNOWN pUnk)
pFGF = tra[TRA_FLIC] ? pFGLAVVideo : pFGLAVVideoLM;
pFGF->AddType(MEDIATYPE_Video, MEDIASUBTYPE_FLIC);
#endif
+#if INTERNAL_DECODER_MSVIDEO
+ pFGF = tra[TRA_MSVIDEO] ? pFGLAVVideo : pFGLAVVideoLM;
+ pFGF->AddType(MEDIATYPE_Video, MEDIASUBTYPE_CRAM);
+ pFGF->AddType(MEDIATYPE_Video, MEDIASUBTYPE_WHAM);
+ pFGF->AddType(MEDIATYPE_Video, MEDIASUBTYPE_MSVC);
+#endif
#if INTERNAL_DECODER_V210_V410
pFGF = tra[TRA_V210_V410] ? pFGLAVVideo : pFGLAVVideoLM;
pFGF->AddType(MEDIATYPE_Video, MEDIASUBTYPE_v210);
diff --git a/src/mpc-hc/FilterEnum.h b/src/mpc-hc/FilterEnum.h
index 921d6e204..6f53b9679 100644
--- a/src/mpc-hc/FilterEnum.h
+++ b/src/mpc-hc/FilterEnum.h
@@ -228,6 +228,9 @@ enum DECODER {
#if INTERNAL_DECODER_FLIC
TRA_FLIC,
#endif
+#if INTERNAL_DECODER_MSVIDEO
+ TRA_MSVIDEO,
+#endif
#if INTERNAL_DECODER_V210_V410
TRA_V210_V410,
#endif
diff --git a/src/mpc-hc/InternalFiltersConfig.h b/src/mpc-hc/InternalFiltersConfig.h
index fb0f8499f..5287a06a0 100644
--- a/src/mpc-hc/InternalFiltersConfig.h
+++ b/src/mpc-hc/InternalFiltersConfig.h
@@ -105,6 +105,7 @@
#define INTERNAL_DECODER_INDEO INTERNAL_FILTERS_ENABLED
#define INTERNAL_DECODER_SCREEN INTERNAL_FILTERS_ENABLED
#define INTERNAL_DECODER_FLIC INTERNAL_FILTERS_ENABLED
+#define INTERNAL_DECODER_MSVIDEO INTERNAL_FILTERS_ENABLED
#define INTERNAL_DECODER_V210_V410 INTERNAL_FILTERS_ENABLED
@@ -127,4 +128,4 @@
(INTERNAL_DECODER_MPEG1 || INTERNAL_DECODER_MPEG2 || INTERNAL_DECODER_REALVIDEO || INTERNAL_DECODER_H264 || INTERNAL_DECODER_HEVC || INTERNAL_DECODER_VC1 || \
INTERNAL_DECODER_FLV || INTERNAL_DECODER_DIVX || INTERNAL_DECODER_XVID || INTERNAL_DECODER_WMV || INTERNAL_DECODER_MSMPEG4 || INTERNAL_DECODER_SVQ || \
INTERNAL_DECODER_H263 || INTERNAL_DECODER_THEORA || INTERNAL_DECODER_AMVV || INTERNAL_DECODER_VP356 || INTERNAL_DECODER_VP8 || INTERNAL_DECODER_VP9 || \
- INTERNAL_DECODER_MJPEG || INTERNAL_DECODER_INDEO || INTERNAL_DECODER_SCREEN || INTERNAL_DECODER_V210_V410)
+ INTERNAL_DECODER_MJPEG || INTERNAL_DECODER_INDEO || INTERNAL_DECODER_SCREEN || INTERNAL_DECODER_V210_V410 || INTERNAL_DECODER_MSVIDEO)
diff --git a/src/mpc-hc/PPageInternalFilters.cpp b/src/mpc-hc/PPageInternalFilters.cpp
index 5556aa73c..1e812abf8 100644
--- a/src/mpc-hc/PPageInternalFilters.cpp
+++ b/src/mpc-hc/PPageInternalFilters.cpp
@@ -631,6 +631,11 @@ void CPPageInternalFilters::InitFiltersList()
m_filters.Add(filter_t(_T("FLIC"), VIDEO_DECODER, TRA_FLIC, IDS_INTERNAL_LAVF));
}
#endif
+#if INTERNAL_DECODER_MSVIDEO
+ if (bLAVVideoIsAvailable) {
+ m_filters.Add(filter_t(_T("Microsoft Video"), VIDEO_DECODER, TRA_MSVIDEO, IDS_INTERNAL_LAVF));
+ }
+#endif
#if INTERNAL_DECODER_V210_V410
if (bLAVVideoIsAvailable) {
m_filters.Add(filter_t(_T("v210/v410"), VIDEO_DECODER, TRA_V210_V410, IDS_INTERNAL_LAVF));