1
0
Fork 0
- Fixed bug: sometimes frames were marked wrongly as interlaced.
- Fixed bug: timestamps are passed 'as is' when ts manipulation is off.

git-svn-id: svn://svn.code.sf.net/p/qsdecoder/code/trunk/IntelQuickSyncDecoder@99 dfccccb7-dd81-40b7-a334-5a7ba89c2b1d
This commit is contained in:
egur 2014-02-05 14:54:02 +00:00
parent ec528dd53d
commit 05456a249d
4 changed files with 14 additions and 7 deletions

View File

@ -29,7 +29,7 @@
#pragma once
#define QS_DEC_DLL_NAME "IntelQuickSyncDecoder.dll"
#define QS_DEC_VERSION "v0.44"
#define QS_DEC_VERSION "v0.45"
// Forward declarations
struct IDirect3DDeviceManager9;

View File

@ -14,8 +14,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,44,0,0
PRODUCTVERSION 0,44,0,0
FILEVERSION 0,45,0,0
PRODUCTVERSION 0,45,0,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -32,13 +32,13 @@ BEGIN
BEGIN
VALUE "CompanyName", "Intel Corp."
VALUE "FileDescription", "IntelQuickSyncDecoder DLL"
VALUE "FileVersion", "0.44.0.0"
VALUE "FileVersion", "0.45.0.0"
VALUE "InternalName", "IntelQuickSyncDecoder"
VALUE "LegalCopyright", "BSD lisence. © 2013 Intel ® Corp. By Eric Gur"
VALUE "LegalCopyright", "BSD lisence. © 2014 Intel ® Corp. By Eric Gur"
VALUE "LegalTrademarks", "Intel QuickSync Decoder"
VALUE "OriginalFilename", "IntelQuickSyncDecoder.dll"
VALUE "ProductName", "Intel QuickSync Decoder"
VALUE "ProductVersion", "0.44.0.0"
VALUE "ProductVersion", "0.45.0.0"
END
END
BLOCK "VarFileInfo"

View File

@ -837,7 +837,7 @@ void CQuickSync::PicStructToDsFlags(mfxU32 picStruct, DWORD& flags, QsFrameData:
}
// Progressive frame - note that sometimes interlaced content has the MFX_PICSTRUCT_PROGRESSIVE in combination with other flags
// Frame doubling/trpling implies progressive source
// Frame doubling/tripling implies progressive source
if (picStruct == MFX_PICSTRUCT_PROGRESSIVE || picStruct & MFX_PICSTRUCT_FRAME_DOUBLING || picStruct & MFX_PICSTRUCT_FRAME_TRIPLING)
{
flags = AM_VIDEO_FLAG_WEAVE;
@ -853,6 +853,12 @@ void CQuickSync::PicStructToDsFlags(mfxU32 picStruct, DWORD& flags, QsFrameData:
flags |= AM_VIDEO_FLAG_FIELD1FIRST;
}
// frame is progressive.
if (picStruct & MFX_PICSTRUCT_PROGRESSIVE)
{
flags |= AM_VIDEO_FLAG_WEAVE;
}
// Telecine flag
if (picStruct & MFX_PICSTRUCT_FIELD_REPEATED)
{

View File

@ -85,6 +85,7 @@ void CFrameConstructor::UpdateTimeStamp(IMediaSample* pSample, mfxBitstream* pBS
if (!(S_OK == hr || VFW_S_NO_STOP_TIME == hr))
rtStart = INVALID_REFTIME;
MSDK_VTRACE("QsDecoder: Input time stamp (%I64d)\n", rtStart);
pBS->TimeStamp = m_TimeManager->ConvertReferenceTime2MFXTime(rtStart);
}