- Code: Tout sélectionner
Index: FLVSplitter.cpp
===================================================================
--- FLVSplitter.cpp (revision 192)
+++ FLVSplitter.cpp (working copy)
@@ -326,8 +326,19 @@
VideoTweak fudge;
ReadTag(fudge);
-
- if((m_pFile->BitRead(16) & 0x80fe) != 0x0046) break;
+
+ if (m_pFile->BitRead(1)) {
+ // Delta (inter) frame
+ break;
+ }
+ m_pFile->BitRead(6);
+ bool fSeparatedCoeff = !!m_pFile->BitRead(1);
+ m_pFile->BitRead(5);
+ int filterHeader = m_pFile->BitRead(2);
+ m_pFile->BitRead(1);
+ if (fSeparatedCoeff || !filterHeader) {
+ m_pFile->BitRead(16);
+ }
h = m_pFile->BitRead(8) * 16;
w = m_pFile->BitRead(8) * 16;
et un patch qui diffère du tien sur le filtre source ac3/dts :
- Code: Tout sélectionner
--- DTSAC3Source2.cpp Sat Sep 8 22:44:29 2007
+++ DTSAC3Source.cpp Sat Sep 8 22:40:08 2007
@@ -194,20 +194,16 @@
1509750,1920000,2048000,3072000,3840000,0,0,0
};
-#define DTS_MAGIC_NUMBER 6 //magic number to make sonic audio decoder 4.2 happy
-
m_nSamplesPerSec = freqtbl[freq];
m_nAvgBytesPerSec = (bitratetbl[transbitrate] + 4) / 8;
// m_nBytesPerFrame = m_nAvgBytesPerSec*10.656063618290258449304174950298/1000 + 0.5;
- m_nBytesPerFrame = framebytes*DTS_MAGIC_NUMBER;
- if (framebytes == 2012)
- {
- // DTS and DTS-HD tracks from HD DVD and Blu-Ray sources have framesizes of 2012 bytes
- // but if we handle them mathematically "correctly", audio sync will slowly drift away
- // we have to handle them as if they had 2013 bytes
- m_AvgTimePerFrame = 10000000i64 * (2013*DTS_MAGIC_NUMBER) * 8 / bitratetbl[transbitrate];
- }
- else
+ m_nBytesPerFrame = framebytes;
+ if( framebytes == 2012 )
+ // DTS and DTS-HD tracks from HD DVD and Blu-Ray sources have framesizes of 2012 bytes
+ // but if we handle them mathematically "correctly", audio sync will slowly drift away
+ // we have to handle them as if they had 2013 bytes
+ m_AvgTimePerFrame = 10000000i64 * 2013 * 8 / bitratetbl[transbitrate];
+ else
m_AvgTimePerFrame = 10000000i64 * m_nBytesPerFrame * 8 / bitratetbl[transbitrate];
m_subtype = MEDIASUBTYPE_DTS;
@@ -248,11 +244,9 @@
448000,448000,512000,512000,576000,576000,640000,640000
};
-#define AC3_MAGIC_NUMBER 3 //magic number to make sonic audio decoder 4.2 happy
-
m_nSamplesPerSec = freqtbl[freq];
m_nAvgBytesPerSec = (bitratetbl[bitrate] + 4) / 8;
- m_nBytesPerFrame = m_nAvgBytesPerSec*32/1000*AC3_MAGIC_NUMBER;
+ m_nBytesPerFrame = m_nAvgBytesPerSec*32/1000;
m_AvgTimePerFrame = 10000000i64 * m_nBytesPerFrame * 8 / bitratetbl[bitrate];
m_subtype = MEDIASUBTYPE_DOLBY_AC3;
@@ -272,8 +266,8 @@
int freqtbl[] = {48000,44100,32000,22400,22050,16000,48000};
m_nSamplesPerSec = freqtbl[fscod];
- m_nBytesPerFrame = (2+(id >> 23)+((id&0x00070000)>>7))*6;
- int timetbl[] = {320000, 640000, 960000, 1920000};
+ m_nBytesPerFrame = 2+(id >> 23)+((id&0x00070000)>>7);
+ int timetbl[] = {53333, 106667, 160000, 320000};
m_AvgTimePerFrame = timetbl[numblkscod];
m_subtype = MEDIASUBTYPE_DOLBY_AC3;
Pourquoi pas passer à la nouvelle icone aussi ?
j'attends la nouvelle build, et merci pour ton travail !