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:
authorXhmikosR <xhmikosr@users.sourceforge.net>2010-09-15 02:49:43 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2010-09-15 02:49:43 +0400
commitc13db97086ad5d3013c9eec1ffa190ca220358be (patch)
treef82f4a276764dcbf29d3e0693f0bd22111bc2a96
parentbedd9c3950e29d2aceb80dd6f21cca91904acacb (diff)
added support for 'NONE' audio (old QuickTime PCM)
Patch by v0lt git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@2551 10f7b99b-c216-0410-bff0-8a66a9350fd8
-rw-r--r--include/moreuuids.h4
-rw-r--r--src/apps/mplayerc/Changelog.txt1
-rw-r--r--src/apps/mplayerc/FGManager.cpp1
-rw-r--r--src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h1
-rw-r--r--src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp1
-rw-r--r--src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp1
-rw-r--r--src/filters/transform/MpaDecFilter/MpaDecFilter.cpp6
7 files changed, 13 insertions, 2 deletions
diff --git a/include/moreuuids.h b/include/moreuuids.h
index b2ac1718e..3d40fb908 100644
--- a/include/moreuuids.h
+++ b/include/moreuuids.h
@@ -279,6 +279,10 @@ DEFINE_GUID(MEDIASUBTYPE_RACP,
// QuickTime PCM
+// 454E4F4E-0000-0010-8000-00AA00389B71
+DEFINE_GUID(MEDIASUBTYPE_PCM_NONE,
+ 0x454E4F4E, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
+
// 20776172-0000-0010-8000-00AA00389B71
DEFINE_GUID(MEDIASUBTYPE_PCM_RAW,
0x20776172, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
diff --git a/src/apps/mplayerc/Changelog.txt b/src/apps/mplayerc/Changelog.txt
index 37917a222..7f7432c1a 100644
--- a/src/apps/mplayerc/Changelog.txt
+++ b/src/apps/mplayerc/Changelog.txt
@@ -5,6 +5,7 @@ v1.5.xxxx.0 - unreleased
NEW : LCN support for DVB
NEW : Added support for 'in24', 'fl64' and 8-bit 'sowt' audio
NEW : Added support for 'IMA4' audio
+ NEW : Added support for 'NONE' audio (old QuickTime PCM)
NEW : Added channel encryption detection for DVB-t during scan
CHANGED: Updated FFmpeg
CHANGED: Cleaned up and optimized code for QT PCM, small corrections in MP4Splitter
diff --git a/src/apps/mplayerc/FGManager.cpp b/src/apps/mplayerc/FGManager.cpp
index faba37bbe..2052c3693 100644
--- a/src/apps/mplayerc/FGManager.cpp
+++ b/src/apps/mplayerc/FGManager.cpp
@@ -1808,6 +1808,7 @@ CFGManagerCustom::CFGManagerCustom(LPCTSTR pName, LPUNKNOWN pUnk)
pFGF = new CFGFilterInternal<CMpaDecFilter>(
(tra & TRA_PCM) ? ResStr(IDS_AG_PCM_DECODER) : L"PCM Audio Decoder (low merit)",
(tra & TRA_PCM) ? MERIT64_ABOVE_DSHOW : MERIT64_DO_USE);
+ pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_NONE);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_RAW);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_TWOS);
pFGF->AddType(MEDIATYPE_Audio, MEDIASUBTYPE_PCM_SOWT);
diff --git a/src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h b/src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h
index 85cffdaf3..16b5c1bf2 100644
--- a/src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h
+++ b/src/filters/parser/MP4Splitter/AP4/Core/Ap4Atom.h
@@ -251,6 +251,7 @@ const AP4_Atom::Type AP4_ATOM_TYPE__MP3 = AP4_ATOM_TYPE('.','m','p','3');
const AP4_Atom::Type AP4_ATOM_TYPE_IMA4 = AP4_ATOM_TYPE('i','m','a','4');
const AP4_Atom::Type AP4_ATOM_TYPE_QDMC = AP4_ATOM_TYPE('Q','D','M','C');
const AP4_Atom::Type AP4_ATOM_TYPE_QDM2 = AP4_ATOM_TYPE('Q','D','M','2');
+const AP4_Atom::Type AP4_ATOM_TYPE_NONE = AP4_ATOM_TYPE('N','O','N','E');
const AP4_Atom::Type AP4_ATOM_TYPE_TWOS = AP4_ATOM_TYPE('t','w','o','s');
const AP4_Atom::Type AP4_ATOM_TYPE_SOWT = AP4_ATOM_TYPE('s','o','w','t');
const AP4_Atom::Type AP4_ATOM_TYPE_IN24 = AP4_ATOM_TYPE('i','n','2','4');
diff --git a/src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp b/src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp
index 9b109516f..9c5f29382 100644
--- a/src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp
+++ b/src/filters/parser/MP4Splitter/AP4/Core/Ap4AtomFactory.cpp
@@ -407,6 +407,7 @@ AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream& stream,
case AP4_ATOM_TYPE_IMA4:
case AP4_ATOM_TYPE_QDMC:
case AP4_ATOM_TYPE_QDM2:
+ case AP4_ATOM_TYPE_NONE:
case AP4_ATOM_TYPE_RAW:
case AP4_ATOM_TYPE_TWOS:
case AP4_ATOM_TYPE_SOWT:
diff --git a/src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp b/src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp
index 24714df9b..059c8943c 100644
--- a/src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp
+++ b/src/filters/parser/MP4Splitter/AP4/Core/Ap4SampleEntry.cpp
@@ -342,6 +342,7 @@ AP4_AudioSampleEntry::AP4_AudioSampleEntry(AP4_Atom::Type format,
{
switch( format )
{
+ case AP4_ATOM_TYPE_NONE:
case AP4_ATOM_TYPE_RAW:
case AP4_ATOM_TYPE_TWOS:
case AP4_ATOM_TYPE_SOWT:
diff --git a/src/filters/transform/MpaDecFilter/MpaDecFilter.cpp b/src/filters/transform/MpaDecFilter/MpaDecFilter.cpp
index 6ceb1bdd7..84873a2d6 100644
--- a/src/filters/transform/MpaDecFilter/MpaDecFilter.cpp
+++ b/src/filters/transform/MpaDecFilter/MpaDecFilter.cpp
@@ -111,6 +111,7 @@ const AMOVIESETUP_MEDIATYPE sudPinTypesIn[] =
{&MEDIATYPE_Audio, &MEDIASUBTYPE_Vorbis2},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_FLAC_FRAMED},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_NELLYMOSER},
+ {&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_NONE},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_RAW},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_TWOS},
{&MEDIATYPE_Audio, &MEDIASUBTYPE_PCM_SOWT},
@@ -466,7 +467,7 @@ HRESULT CMpaDecFilter::Receive(IMediaSample* pIn)
else if(subtype == MEDIASUBTYPE_HDMV_LPCM_AUDIO)
hr = ProcessHdmvLPCM(pIn->IsSyncPoint());
else if(subtype == MEDIASUBTYPE_DOLBY_AC3 ||
- subtype == MEDIASUBTYPE_WAVE_DOLBY_AC3 ||
+ subtype == MEDIASUBTYPE_WAVE_DOLBY_AC3 ||
subtype == MEDIASUBTYPE_DOLBY_DDPLUS ||
subtype == MEDIASUBTYPE_DOLBY_TRUEHD)
hr = ProcessAC3();
@@ -484,7 +485,8 @@ HRESULT CMpaDecFilter::Receive(IMediaSample* pIn)
hr = ProcessFlac();
else if(subtype == MEDIASUBTYPE_NELLYMOSER)
hr = ProcessFfmpeg(CODEC_ID_NELLYMOSER);
- else if(subtype == MEDIASUBTYPE_PCM_RAW){
+ else if(subtype == MEDIASUBTYPE_PCM_NONE ||
+ subtype == MEDIASUBTYPE_PCM_RAW){
if(m_buff.GetCount() < 480){return S_OK;}
hr = ProcessPCMraw();
}