Commit a4b5275f authored by Ivan.Shulga's avatar Ivan.Shulga Committed by Alexander Trofimov

git-svn-id:...

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@52388 954022d7-b5bf-4e40-9824-e11837661b57
parent f31d7411
......@@ -42,7 +42,7 @@ ASCImageStudio3/ASCGraphics/cximage/tiff/Debug/Tiff.lib svn_mime_002dtype=applic
ASCImageStudio3/ASCGraphics/cximage/tiff/Release/Tiff.lib svn_mime_002dtype=application%2Foctet-stream
ASCImageStudio3/ASCGraphics/cximage/zlib/Debug/zlib.lib svn_mime_002dtype=application%2Foctet-stream
ASCImageStudio3/ASCGraphics/cximage/zlib/Release/zlib.lib svn_mime_002dtype=application%2Foctet-stream
ASCImageStudio3/AVSImageCompose3/AVSImageCompose.bmp svn_mime_002dtype=application%2Foctet-stream
ASCImageStudio3/AVSImageCompose3/ASCImageCompose.bmp svn_mime_002dtype=application%2Foctet-stream
ASCImageStudio3/AVSImageEditor/AVSImageEditor/AVSImageEditor.bmp svn_mime_002dtype=application%2Foctet-stream
ASCImageStudio3/AVSImageEditor/AVSImageEditor/Commands/Images/Cursors/closehand.cur svn_mime_002dtype=application%2Foctet-stream
ASCImageStudio3/AVSImageEditor/AVSImageEditor/Commands/Images/Cursors/hand.cur svn_mime_002dtype=application%2Foctet-stream
......
// AVSImageCompose.cpp : Implementation of DLL Exports.
// ASCImageCompose.cpp : Implementation of DLL Exports.
#include "stdafx.h"
#include "resource.h"
[module(dll,
uuid = "{0D13213C-CECF-42f2-89F5-E1F9C8188E16}",
name = "AVSImageCompose3",
helpstring="AVSImageCompose 3",
name = "ASCImageCompose3",
helpstring="ASCImageCompose 3",
resource_name = "IDR_NCTIMAGECOMPOSE")];
......@@ -88,10 +88,10 @@ END
STRINGTABLE
BEGIN
IDS_PROJNAME "AVSImageCompose"
IDS_PROJNAME "ASCImageCompose"
END
IDR_NCTIMAGECOMPOSE REGISTRY "AVSImageCompose.rgs"
IDR_NCTIMAGECOMPOSE REGISTRY "ASCImageCompose.rgs"
////////////////////////////////////////////////////////////////////////////
......
......@@ -2,8 +2,8 @@ HKCR
{
NoRemove AppID
{
'%APPID%' = s 'AVSImageCompose'
'AVSImageCompose.DLL'
'%APPID%' = s 'ASCImageCompose'
'ASCImageCompose.DLL'
{
val AppID = s '%APPID%'
}
......

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AVSImageCompose", "AVSImageCompose.vcproj", "{8A87F9AF-915E-441D-B508-7FED14707F47}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCImageCompose", "ASCImageCompose.vcproj", "{8A87F9AF-915E-441D-B508-7FED14707F47}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......
......@@ -2,9 +2,9 @@
<VisualStudioProject
ProjectType="Visual C++"
Version="8,00"
Name="AVSImageCompose"
Name="ASCImageCompose"
ProjectGUID="{8A87F9AF-915E-441D-B508-7FED14707F47}"
RootNamespace="AVSImageCompose"
RootNamespace="ASCImageCompose"
Keyword="AtlProj"
>
<Platforms>
......@@ -44,16 +44,16 @@
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/AVSImageCompose.tlb"
HeaderFileName="AVSImageCompose.h"
TypeLibraryName="$(IntDir)/ASCImageCompose.tlb"
HeaderFileName="ASCImageCompose.h"
DLLDataFileName=""
InterfaceIdentifierFileName="AVSImageCompose_i.c"
ProxyFileName="AVSImageCompose_p.c"
InterfaceIdentifierFileName="ASCImageCompose_i.c"
ProxyFileName="ASCImageCompose_p.c"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../Common;../../../../Common;../../AVSVideoStudio3/Common"
AdditionalIncludeDirectories="../../Common"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;_ATL_ATTRIBUTES"
MinimalRebuild="true"
BasicRuntimeChecks="3"
......@@ -78,13 +78,13 @@
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
OutputFile="$(OutDir)/AVSImageCompose3.dll"
OutputFile="$(OutDir)/ASCImageCompose3.dll"
LinkIncremental="2"
AdditionalLibraryDirectories=""
MergedIDLBaseFileName="_AVSImageCompose.idl"
MergedIDLBaseFileName="_ASCImageCompose.idl"
GenerateDebugInformation="true"
SubSystem="2"
ImportLibrary="$(OutDir)/AVSImageCompose.lib"
ImportLibrary="$(OutDir)/ASCImageCompose.lib"
TargetMachine="1"
/>
<Tool
......@@ -126,7 +126,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="X:\AVS\Redist\VersionControl.exe &quot;$(SolutionDir)\version.h&quot;"
CommandLine="..\..\Redist\VersionControl.exe &quot;$(SolutionDir)\version.h&quot;"
/>
<Tool
Name="VCCustomBuildTool"
......@@ -143,16 +143,16 @@
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/AVSImageCompose.tlb"
HeaderFileName="AVSImageCompose.h"
TypeLibraryName="$(IntDir)/ASCImageCompose.tlb"
HeaderFileName="ASCImageCompose.h"
DLLDataFileName=""
InterfaceIdentifierFileName="AVSImageCompose_i.c"
ProxyFileName="AVSImageCompose_p.c"
InterfaceIdentifierFileName="ASCImageCompose_i.c"
ProxyFileName="ASCImageCompose_p.c"
/>
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="../Common;../../../../Common;../../AVSVideoStudio3/Common"
AdditionalIncludeDirectories="../../Common"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES"
StringPooling="true"
RuntimeLibrary="2"
......@@ -177,15 +177,15 @@
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
OutputFile="$(OutDir)/AVSImageCompose3.dll"
OutputFile="$(OutDir)/ASCImageCompose3.dll"
LinkIncremental="1"
AdditionalLibraryDirectories=""
MergedIDLBaseFileName="_AVSImageCompose.idl"
MergedIDLBaseFileName="_ASCImageCompose.idl"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/AVSImageCompose.lib"
ImportLibrary="$(OutDir)/ASCImageCompose.lib"
TargetMachine="1"
/>
<Tool
......@@ -212,7 +212,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Copy to redist"
CommandLine="copy $(TargetPath) ..\..\..\..\AVS\Redist\AVSImageCompose3.dll"
CommandLine="copy $(TargetPath) ..\..\Redist\ASCImageCompose3.dll"
/>
</Configuration>
<Configuration
......@@ -227,7 +227,7 @@
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="X:\AVS\Redist\VersionControl.exe &quot;$(SolutionDir)\version.h&quot;"
CommandLine="..\..\Redist\VersionControl.exe &quot;$(SolutionDir)\version.h&quot;"
ExcludedFromBuild="true"
/>
<Tool
......@@ -245,16 +245,16 @@
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/AVSImageCompose.tlb"
HeaderFileName="AVSImageCompose.h"
TypeLibraryName="$(IntDir)/ASCImageCompose.tlb"
HeaderFileName="ASCImageCompose.h"
DLLDataFileName=""
InterfaceIdentifierFileName="AVSImageCompose_i.c"
ProxyFileName="AVSImageCompose_p.c"
InterfaceIdentifierFileName="ASCImageCompose_i.c"
ProxyFileName="ASCImageCompose_p.c"
/>
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="../Common;../../../../Common;../../AVSVideoStudio3/Common"
AdditionalIncludeDirectories="../../Common"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES"
StringPooling="true"
RuntimeLibrary="2"
......@@ -282,12 +282,12 @@
OutputFile="$(OutDir)/ASCImageCompose3.dll"
LinkIncremental="1"
AdditionalLibraryDirectories=""
MergedIDLBaseFileName="_AVSImageCompose.idl"
MergedIDLBaseFileName="_ASCImageCompose.idl"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(OutDir)/AVSImageCompose.lib"
ImportLibrary="$(OutDir)/ASCImageCompose.lib"
TargetMachine="1"
/>
<Tool
......@@ -326,7 +326,7 @@
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
>
<File
RelativePath="AVSImageCompose.cpp"
RelativePath="ASCImageCompose.cpp"
>
</File>
<File
......@@ -404,11 +404,11 @@
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
>
<File
RelativePath="AVSImageCompose.rc"
RelativePath="ASCImageCompose.rc"
>
</File>
<File
RelativePath="AVSImageCompose.rgs"
RelativePath="ASCImageCompose.rgs"
>
</File>
</Filter>
......@@ -416,19 +416,19 @@
Name="Common Files"
>
<File
RelativePath="..\..\..\..\Common\Geometry.h"
RelativePath="..\..\Common\Geometry.h"
>
</File>
<File
RelativePath="..\..\AVSVideoStudio3\Common\ImageStudioUtils.h"
RelativePath="..\..\ImageStudioUtils.h"
>
</File>
<File
RelativePath="..\Common\Imaging.h"
RelativePath="..\..\Common\Imaging.h"
>
</File>
<File
RelativePath="..\..\..\..\Common\Registration.h"
RelativePath="..\..\Common\Registration.h"
>
</File>
</Filter>
......
#pragma once
#include <ImageColors.h>
#include <ImageCore.h>
#include "../Common/ImageColors.h"
#include "../Common/ImageCore.h"
class SmartImage
{
......
......@@ -62,5 +62,5 @@
// include namespaces
using namespace ATL;
#import "../../../../AVS/Redist/AVSMediaCore3.dll" named_guids rename_namespace("MediaCore")
#import "../../../../AVS/Redist/AVSMediaFormatSettings3.dll" named_guids rename_namespace("MediaFormat")
#import "../../Redist/OfficeCore.dll" named_guids rename_namespace("MediaCore")
//#import "../../../../AVS/Redist/AVSMediaFormatSettings3.dll" named_guids rename_namespace("MediaFormat")
#pragma once
#include <ImageStudioUtils.h>
#include "../../Common/ImageStudioUtils.h"
namespace ImageStudio
{
......
// AVSAudioBuffer.cpp : Implementation of CAVSAudioBuffer
#include "stdafx.h"
#include "AVSAudioBuffer.h"
// CAVSAudioBuffer
This diff is collapsed.
#pragma once
#include "AVSMediaData.h"
[object, uuid("31858644-1101-4825-A7FE-3AA261BA74AC"), dual, pointer_default(unique)]
__interface IAVSAudioData : IAVSMediaData
{
[id(201000 + 1), propget] HRESULT FormatTag([out, retval] long* pVal);
[id(201000 + 2), propget] HRESULT SampleRate([out, retval] long* pVal);
[id(201000 + 3), propget] HRESULT Bitrate([out, retval] long* pVal);
[id(201000 + 4), propget] HRESULT Channels([out, retval] long* pVal);
[id(201000 + 5), propget] HRESULT SampleSize([out, retval] long* pVal);
[id(201000 + 6), propget] HRESULT BlockAlign([out, retval] long* pVal);
[id(201000 + 7), propget] HRESULT ChannelsMask([out, retval] long* pVal);
[id(201000 + 7), propput] HRESULT ChannelsMask([in] long newVal);
};
template <class CoT, class T>
class CAVSAudioDataImpl : public CAVSMediaDataImpl<CoT, T>
{
protected:
LONG m_lChannelsMask;
protected:
WAVEFORMATEX* GetArrayFormatPtr()
{
return (WAVEFORMATEX*)(m_pMediaBuffer->GetBuffer());
}
public:
CAVSAudioDataImpl()
{
m_lMediaType = MEDIAFORMAT_AUDIO;
m_lChannelsMask = 0x02;
}
STDMETHOD(CreateDuplicate)(long DublicateType, IAVSMediaData** pMediaData)
{
CAVSMediaDataImpl<CoT, T>::CreateDuplicate(DublicateType, pMediaData);
if (NULL == *pMediaData)
return S_OK;
IAVSAudioData* pAVSAudioData = NULL;
(*pMediaData)->QueryInterface(__uuidof(IAVSAudioData), (void**)(&pAVSAudioData));
if (NULL == pAVSAudioData)
{
(*pMediaData)->Release();
*pMediaData = NULL;
return S_OK;
}
pAVSAudioData->put_ChannelsMask(m_lChannelsMask);
RELEASEINTERFACE(pAVSAudioData)
return S_OK;
}
STDMETHOD(get_FormatTag)(LONG* pVal)
{
*pVal = GetArrayFormatPtr()->wFormatTag;
return S_OK;
}
STDMETHOD(get_SampleRate)(LONG* pVal)
{
*pVal = GetArrayFormatPtr()->nSamplesPerSec;
return S_OK;
}
STDMETHOD(get_Bitrate)(LONG* pVal)
{
*pVal = GetArrayFormatPtr()->nAvgBytesPerSec*8;
return S_OK;
}
STDMETHOD(get_Channels)(LONG* pVal)
{
*pVal = GetArrayFormatPtr()->nChannels;
return S_OK;
}
STDMETHOD(get_SampleSize)(LONG* pVal)
{
*pVal = GetArrayFormatPtr()->wBitsPerSample;
return S_OK;
}
STDMETHOD(get_BlockAlign)(LONG* pVal)
{
*pVal = GetArrayFormatPtr()->nBlockAlign;
return S_OK;
}
STDMETHOD(get_ChannelsMask)(LONG* pVal)
{
*pVal = m_lChannelsMask;
return S_OK;
}
STDMETHOD(put_ChannelsMask)(LONG newVal)
{
m_lChannelsMask = newVal;
return S_OK;
}
};
[coclass, uuid("3AC2E3B2-9B92-4006-AC78-A1A376F1A212"), threading(apartment), vi_progid("AVSMediaCore3.AVSAudioData"), progid("AVSMediaCore3.AVSAudioData.1"), version(1.0)]
class ATL_NO_VTABLE CAVSAudioData : public CAVSAudioDataImpl<CAVSAudioData, IAVSAudioData>
{
};
#pragma once
#include "AVSMediaData.h"
[object, uuid("35B7E717-3EF0-4473-884D-A42C41E80AE1"), dual, pointer_default(unique)]
__interface IAVSAudioDataEx : IAVSMediaData
{
[id(210000 + 1), propget] HRESULT FormatTag([out, retval] long* pVal);
[id(210000 + 2), propget] HRESULT SampleRate([out, retval] long* pVal);
[id(210000 + 3), propget] HRESULT Bitrate([out, retval] long* pVal);
[id(210000 + 4), propget] HRESULT Channels([out, retval] long* pVal);
[id(210000 + 5), propget] HRESULT SampleSize([out, retval] long* pVal);
[id(210000 + 6), propget] HRESULT BlockAlign([out, retval] long* pVal);
[id(210000 + 7), propget] HRESULT ChannelsMask([out, retval] long* pVal);
[id(210000 + 7), propput] HRESULT ChannelsMask([in] long newVal);
[id(210000 + 8)] HRESULT AllocateHeader([in] long HeaderSize);
[id(210000 + 9), propget] HRESULT Header([out, retval] BYTE** pVal);
[id(210000 + 10), propget] HRESULT HeaderSize([out, retval] long* pVal);
};
template <class CoT, class T>
class CAVSAudioDataExImpl : public CAVSMediaDataImpl<CoT, T>
{
protected:
LONG m_lChannelsMask;
CMediaBuffer* m_pAudioHeader;
protected:
WAVEFORMATEX* GetArrayFormatPtr()
{
return (WAVEFORMATEX*)(m_pAudioHeader->GetBuffer());
}
public:
CAVSAudioDataExImpl()
{
m_lMediaType = MEDIAFORMAT_AUDIO;
m_lChannelsMask = 0x03; //FL+FR
m_pAudioHeader = new CMediaBuffer();
}
~CAVSAudioDataExImpl(void)
{
RELEASEINTERFACE(m_pAudioHeader)
}
STDMETHOD(AllocateHeader)(LONG HeaderSize)
{
m_pAudioHeader->SetBuffer(HeaderSize);
return S_OK;
}
STDMETHOD(get_Header)(BYTE** pVal)
{
*pVal = 0;
if (NULL!=m_pAudioHeader)
*pVal = m_pAudioHeader->GetBuffer();
return S_OK;
}
STDMETHOD(get_HeaderSize)(LONG* pVal)
{
*pVal = 0;
if (NULL!=m_pAudioHeader)
*pVal = m_pAudioHeader->GetBufferSize();
return S_OK;
}
STDMETHOD(CreateDuplicate)(long DublicateType, IAVSMediaData** pMediaData)
{
CAVSMediaDataImpl<CoT, T>::CreateDuplicate(DublicateType, pMediaData);
if (NULL == *pMediaData)
return S_OK;
IAVSAudioDataEx* pAVSAudioData = NULL;
(*pMediaData)->QueryInterface(__uuidof(IAVSAudioData), (void**)(&pAVSAudioData));
if (NULL == pAVSAudioData)
{
(*pMediaData)->Release();
*pMediaData = NULL;
return S_OK;
}
//Set Audio Header
pAVSAudioData->put_ChannelsMask(m_lChannelsMask);
pAVSAudioData->AllocateHeader(m_pAudioHeader->GetBufferSize());
BYTE *Header=NULL;
pAVSAudioData->get_Header(&Header);
if (Header)
memcpy(Header,m_pAudioHeader->GetBuffer(),m_pAudioHeader->GetBufferSize());
RELEASEINTERFACE(pAVSAudioData)
return S_OK;
}
STDMETHOD(get_FormatTag)(LONG* pVal)
{
if (m_pAudioHeader->GetBuffer())
*pVal = GetArrayFormatPtr()->wFormatTag;
else
*pVal=0;
return S_OK;
}
STDMETHOD(get_SampleRate)(LONG* pVal)
{
if (m_pAudioHeader->GetBuffer())
*pVal = GetArrayFormatPtr()->nSamplesPerSec;
else
*pVal=0;
return S_OK;
}
STDMETHOD(get_Bitrate)(LONG* pVal)
{
if (m_pAudioHeader->GetBuffer())
*pVal = GetArrayFormatPtr()->nAvgBytesPerSec*8;
else
*pVal=0;
return S_OK;
}
STDMETHOD(get_Channels)(LONG* pVal)
{
if (m_pAudioHeader->GetBuffer())
*pVal = GetArrayFormatPtr()->nChannels;
else
*pVal=0;
return S_OK;
}
STDMETHOD(get_SampleSize)(LONG* pVal)
{
if (m_pAudioHeader->GetBuffer())
*pVal = GetArrayFormatPtr()->wBitsPerSample;
else
*pVal=0;
return S_OK;
}
STDMETHOD(get_BlockAlign)(LONG* pVal)
{
if (m_pAudioHeader->GetBuffer())
*pVal = GetArrayFormatPtr()->nBlockAlign;
else
*pVal=0;
return S_OK;
}
STDMETHOD(get_ChannelsMask)(LONG* pVal)
{
*pVal = m_lChannelsMask;
return S_OK;
}
STDMETHOD(put_ChannelsMask)(LONG newVal)
{
m_lChannelsMask = newVal;
return S_OK;
}
};
[coclass, uuid("181B5438-55CF-4bbb-82C7-F20BA8F032B3"), threading(apartment), vi_progid("AVSMediaCore3.AVSAudioDataEx"), progid("AVSMediaCore3.AVSAudioDataEx.1"), version(1.0)]
class ATL_NO_VTABLE CAVSAudioDataEx : public CAVSAudioDataExImpl<CAVSAudioDataEx, IAVSAudioDataEx>
{
};
#pragma once
#include "AVSMediaData.h"
[object, uuid("D1AB8643-9E1E-4037-A4C1-D166CCF47467"), dual, pointer_default(unique)]
__interface IAVSCompressedVideoFrame : IAVSMediaData
{
[id(203000 + 1), propget] HRESULT fccHandler([out, retval] ULONG* pVal);
[id(203000 + 1), propput] HRESULT fccHandler([in] ULONG newVal);
[id(203000 + 2), propget] HRESULT IsKeyFrame([out, retval] VARIANT_BOOL* pVal);
[id(203000 + 3), propget] HRESULT FrameType([out, retval] long* pVal);
[id(203000 + 3), propput] HRESULT FrameType([in] long newVal);
};
template <class CoT, class T>
class CAVSCompressedVideoFrameImpl : public CAVSMediaDataImpl<CoT, T>
{
protected:
ULONG m_lFccHandler;
LONG m_lFrameType;
public:
CAVSCompressedVideoFrameImpl()
{
m_lMediaType = MEDIAFORMAT_VIDEO_COMPRESSED;
m_lFccHandler = 0xFFFFFFFF;
m_lFrameType = 0;
}
STDMETHOD(CreateDuplicate)(long DublicateType, IAVSMediaData** pMediaData)
{
CAVSMediaDataImpl<CoT, T>::CreateDuplicate(DublicateType, pMediaData);
if (NULL == *pMediaData)
return S_OK;
IAVSCompressedVideoFrame* pAVSVideoData = NULL;
(*pMediaData)->QueryInterface(__uuidof(IAVSCompressedVideoFrame), (void**)(&pAVSVideoData));
if (NULL == pAVSVideoData)
{
(*pMediaData)->Release();
*pMediaData = NULL;
return S_OK;
}
pAVSVideoData->put_fccHandler(m_lFccHandler);
pAVSVideoData->put_FrameType(m_lFrameType);
RELEASEINTERFACE(pAVSVideoData)
return S_OK;
}
STDMETHOD(get_fccHandler)(ULONG* pVal)
{
*pVal = m_lFccHandler;
return S_OK;
}
STDMETHOD(put_fccHandler)(ULONG newVal)
{
m_lFccHandler = newVal;
return S_OK;
}
STDMETHOD(get_IsKeyFrame)(VARIANT_BOOL* pVal)
{
if (m_lFrameType == 1)
*pVal = VARIANT_TRUE;
else
*pVal = VARIANT_FALSE;
return S_OK;
}
STDMETHOD(get_FrameType)(LONG* pVal)
{
*pVal = m_lFrameType;
return S_OK;
}
STDMETHOD(put_FrameType)(LONG newVal)
{
m_lFrameType = newVal;
return S_OK;
}
};
[coclass, uuid("B1775B10-FD1E-448d-A5AB-68F1BCDDF4EB"), threading(apartment), vi_progid("AVSMediaCore3.AVSVideoFrameCmp"), progid("AVSMediaCore3.AVSVideoFrameCmp.1"), version(1.0)]
class ATL_NO_VTABLE CAVSCompressedVideoFrame : public CAVSCompressedVideoFrameImpl<CAVSCompressedVideoFrame, IAVSCompressedVideoFrame>
{
};
This diff is collapsed.
// AVSExtraData.cpp : Implementation of CAVSExtraData
#include "stdafx.h"
#include "ATLDefine.h"
#include "AVSExtraData.h"
// CAVSExtraData
STDMETHODIMP CAVSExtraData::get_Year(long *pVal)
{
*pVal=ExtraInfo.Year;
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Year(long newVal)
{
ExtraInfo.Year=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Title(BSTR *pVal)
{
*pVal=ExtraInfo.Title.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Title(BSTR newVal)
{
ExtraInfo.Title=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Copyright(BSTR *pVal)
{
*pVal=ExtraInfo.Copyright.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Copyright(BSTR newVal)
{
ExtraInfo.Copyright=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Comments(BSTR *pVal)
{
*pVal=ExtraInfo.Comments.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Comments(BSTR newVal)
{
ExtraInfo.Comments=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Artist(BSTR *pVal)
{
*pVal=ExtraInfo.Artist.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Artist(BSTR newVal)
{
ExtraInfo.Artist=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Album(BSTR *pVal)
{
*pVal=ExtraInfo.Album.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Album(BSTR newVal)
{
ExtraInfo.Album=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Genre(BSTR *pVal)
{
*pVal=ExtraInfo.Genre.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Genre(BSTR newVal)
{
ExtraInfo.Genre=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Composer(BSTR *pVal)
{
*pVal=ExtraInfo.Composer.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Composer(BSTR newVal)
{
ExtraInfo.Composer=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_EncodedBy(BSTR *pVal)
{
*pVal=ExtraInfo.EncodedBy.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_EncodedBy(BSTR newVal)
{
ExtraInfo.EncodedBy=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Track(long *pVal)
{
*pVal=ExtraInfo.Track;
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Track(long newVal)
{
ExtraInfo.Track=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_URL(BSTR *pVal)
{
*pVal=ExtraInfo.URL.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_URL(BSTR newVal)
{
ExtraInfo.URL=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_OriginalArtist(BSTR* pVal)
{
*pVal=ExtraInfo.OriginalArtist.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_OriginalArtist(BSTR newVal)
{
ExtraInfo.OriginalArtist=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Picture(IPictureDisp** pVal)
{
*pVal = ExtraInfo.Picture;
ADDREFINTERFACE((*pVal));
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Picture( IPictureDisp* newVal)
{
RELEASEINTERFACE(ExtraInfo.Picture);
ExtraInfo.Picture = newVal;
ADDREFINTERFACE(ExtraInfo.Picture);
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_AdditionalCount( long* pVal)
{
*pVal = (long)ExtraInfo.Additional.GetCount();
return S_OK;
}
STDMETHODIMP CAVSExtraData::GetAdditional(long Index, BSTR* Name,BSTR* Value)
{
if (Index>=(long)ExtraInfo.Additional.GetCount())
return S_OK;
*Name=ExtraInfo.Additional[Index].Name.Copy();
*Value=ExtraInfo.Additional[Index].Value.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::SetAdditional(long Index, BSTR Name, BSTR Value)
{
_ExtraInfo::_Additional newAdditional;
newAdditional.Name="";
newAdditional.Value="";
while (Index>=(long)ExtraInfo.Additional.GetCount())
{
ExtraInfo.Additional.Add(newAdditional);
}
ExtraInfo.Additional[Index].Name=Name;
ExtraInfo.Additional[Index].Value=Value;
return S_OK;
}
STDMETHODIMP CAVSExtraData::DeleteAdditional(long Index)
{
ExtraInfo.Additional.RemoveAt(Index);
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_MarkerCount( long* pVal)
{
*pVal = (long)ExtraInfo.Marker.GetCount();
return S_OK;
}
STDMETHODIMP CAVSExtraData::GetMarker(long Index,double* TimeStamp,double* Duration,BSTR* Label,BSTR* Note)
{
if (Index>(long)ExtraInfo.Marker.GetCount())
return S_OK;
*TimeStamp=ExtraInfo.Marker[Index].Position;
*Duration=ExtraInfo.Marker[Index].Length;
*Label=ExtraInfo.Marker[Index].Label.Copy();
*Note=ExtraInfo.Marker[Index].Note.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::SetMarker(long Index,double TimeStamp,double Duration,BSTR Label,BSTR Note)
{
_ExtraInfo::_Marker newMarker;
newMarker.Label="";
newMarker.Length=0;
newMarker.Note="";
newMarker.Position=0;
while (Index>=(long)ExtraInfo.Marker.GetCount())
{
ExtraInfo.Marker.Add(newMarker);
}
ExtraInfo.Marker[Index].Label=Label;
ExtraInfo.Marker[Index].Length=Duration;
ExtraInfo.Marker[Index].Note=Note;
ExtraInfo.Marker[Index].Position=TimeStamp;
return S_OK;
}
STDMETHODIMP CAVSExtraData::DeleteMarker(long Index)
{
ExtraInfo.Marker.RemoveAt(Index);
return S_OK;
}
// AVSExtraData.h : Declaration of the CAVSExtraData
#pragma once
#include "resource.h" // main symbols
#include "../Common/AudioDefines.h" // main symbols
// IAVSExtraData
[
object,
uuid("F04698FD-7956-4BCF-B579-512CBC1ECB0F"),
dual, helpstring("IAVSExtraData Interface"),
pointer_default(unique)
]
__interface IAVSExtraData : IDispatch
{
[propget, id(208000 + 1)] HRESULT Album([out, retval] BSTR *pVal);
[propput, id(208000 + 1)] HRESULT Album([in] BSTR newVal);
[propget, id(208000 + 2)] HRESULT Artist([out, retval] BSTR *pVal);
[propput, id(208000 + 2)] HRESULT Artist([in] BSTR newVal);
[propget, id(208000 + 3)] HRESULT Comments([out, retval] BSTR *pVal);
[propput, id(208000 + 3)] HRESULT Comments([in] BSTR newVal);
[propget, id(208000 + 4)] HRESULT Copyright([out, retval] BSTR *pVal);
[propput, id(208000 + 4)] HRESULT Copyright([in] BSTR newVal);
[propget, id(208000 + 6)] HRESULT Title([out, retval] BSTR *pVal);
[propput, id(208000 + 6)] HRESULT Title([in] BSTR newVal);
[propget, id(208000 + 7)] HRESULT Year([out, retval] long *pVal);
[propput, id(208000 + 7)] HRESULT Year([in] long newVal);
[propget, id(208000 + 8)] HRESULT URL([out, retval] BSTR *pVal);
[propput, id(208000 + 8)] HRESULT URL([in] BSTR newVal);
[propget, id(208000 + 9)] HRESULT Track([out, retval] long *pVal);
[propput, id(208000 + 9)] HRESULT Track([in] long newVal);
[propget, id(208000 + 10)] HRESULT EncodedBy([out, retval] BSTR *pVal);
[propput, id(208000 + 10)] HRESULT EncodedBy([in] BSTR newVal);
[propget, id(208000 + 11)] HRESULT Composer([out, retval] BSTR *pVal);
[propput, id(208000 + 11)] HRESULT Composer([in] BSTR newVal);
[propget, id(208000 + 12)] HRESULT Genre([out, retval] BSTR *pVal);
[propput, id(208000 + 12)] HRESULT Genre([in] BSTR newVal);
[propget, id(208000 + 13)] HRESULT OriginalArtist([out, retval] BSTR* pVal);
[propput, id(208000 + 13)] HRESULT OriginalArtist([in] BSTR newVal);
[propget, id(208000 + 14)] HRESULT Picture([out, retval] IPictureDisp** pVal);
[propput, id(208000 + 14)] HRESULT Picture([in] IPictureDisp* newVal);
[propget, id(208000 + 20)] HRESULT AdditionalCount([out, retval] long* pVal);
[id(208000 + 21)] HRESULT GetAdditional([in]long Index,[out] BSTR* Name,[out]BSTR* Value);
[id(208000 + 22)] HRESULT SetAdditional([in]long Index,[in] BSTR Name,[in]BSTR Value);
[id(208000 + 23)] HRESULT DeleteAdditional([in]long Index);
[propget, id(208000 + 30)] HRESULT MarkerCount([out, retval] long* pVal);
[id(208000 + 31)] HRESULT GetMarker([in]long Index,[out]double* Position,[out]double* Length,[out]BSTR* Label,[out]BSTR* Note);
[id(208000 + 32)] HRESULT SetMarker([in]long Index,[in]double Position,[in]double Length,[in]BSTR Label,[in]BSTR Note);
[id(208000 + 33)] HRESULT DeleteMarker([in]long Index);
[id(208000 + 50)] HRESULT CreateDuplicate([out, retval] IAVSExtraData** pMediaData);
};
// CAVSExtraData
[
coclass,
threading(apartment),
vi_progid("AVSMediaCore3.AVSExtraData"),
progid("AVSMediaCore3.AVSExtraData.1"),
version(1.0),
uuid("174EA295-730D-4132-A830-9C71ED225496"),
helpstring("AVSExtraData Class")
]
class ATL_NO_VTABLE CAVSExtraData :
public IAVSExtraData
{
protected:
public:
CAVSExtraData()
{
ExtraInfo.Clear();
}
~CAVSExtraData(void)
{
ExtraInfo.Clear();
}
STDMETHOD(CreateDuplicate)(IAVSExtraData** pExtraData)
{
if (NULL == pExtraData)
return S_OK;
*pExtraData = NULL;
CoCreateInstance(__uuidof(CAVSExtraData), NULL, CLSCTX_ALL, __uuidof(IAVSExtraData), (void**)pExtraData);
if (NULL == *pExtraData)
return S_OK;
return S_OK;
}
STDMETHOD(get_Year)(long *pVal);
STDMETHOD(put_Year)(long newVal);
STDMETHOD(get_Title)(BSTR *pVal);
STDMETHOD(put_Title)(BSTR newVal);
STDMETHOD(get_Copyright)(BSTR *pVal);
STDMETHOD(put_Copyright)(BSTR newVal);
STDMETHOD(get_Comments)(BSTR *pVal);
STDMETHOD(put_Comments)(BSTR newVal);
STDMETHOD(get_Artist)(BSTR *pVal);
STDMETHOD(put_Artist)(BSTR newVal);
STDMETHOD(get_Album)(BSTR *pVal);
STDMETHOD(put_Album)(BSTR newVal);
STDMETHOD(get_Genre)(BSTR *pVal);
STDMETHOD(put_Genre)(BSTR newVal);
STDMETHOD(get_Composer)(BSTR *pVal);
STDMETHOD(put_Composer)(BSTR newVal);
STDMETHOD(get_EncodedBy)(BSTR *pVal);
STDMETHOD(put_EncodedBy)(BSTR newVal);
STDMETHOD(get_Track)(long *pVal);
STDMETHOD(put_Track)(long newVal);
STDMETHOD(get_URL)(BSTR *pVal);
STDMETHOD(put_URL)(BSTR newVal);
STDMETHOD(get_OriginalArtist)(BSTR* pVal);
STDMETHOD(put_OriginalArtist)(BSTR newVal);
STDMETHOD(get_Picture)( IPictureDisp** pVal);
STDMETHOD(put_Picture)( IPictureDisp* newVal);
STDMETHOD(get_AdditionalCount)( long* pVal);
STDMETHOD(GetAdditional)(long Index, BSTR* Name,BSTR* Value);
STDMETHOD(SetAdditional)(long Index, BSTR Name,BSTR Value);
STDMETHOD(DeleteAdditional)(long Index);
STDMETHOD(get_MarkerCount)( long* pVal);
STDMETHOD(GetMarker)(long Index,double* TimeStamp,double* Duration,BSTR* Label,BSTR* Note);
STDMETHOD(SetMarker)(long Index,double TimeStamp,double Duration,BSTR Label,BSTR Note);
STDMETHOD(DeleteMarker)(long Index);
private:
_ExtraInfo ExtraInfo;
};
#pragma once
class CMediaBuffer
{
protected:
__declspec(align(32)) LONG m_dwRef;
BYTE* m_pMediaBuffer;
LONG m_lFrameSize;
LONG m_lBufferSize;
public:
CMediaBuffer()
{
m_dwRef = 1;
m_pMediaBuffer = NULL;
m_lFrameSize = 0;
m_lBufferSize = 0;
}
~CMediaBuffer(void)
{
RELEASEHEAP(m_pMediaBuffer);
}
LONG __fastcall AddRef()
{
return InterlockedIncrement(&m_dwRef);
}
LONG __fastcall Release()
{
long lResult = InterlockedDecrement(&m_dwRef);
if (lResult == 0)
delete this;
return lResult;
}
BOOL __fastcall SetBuffer(LONG lSize, BOOL bAlign64 = TRUE)
{
RELEASEHEAP(m_pMediaBuffer);
m_lFrameSize = lSize;
if (bAlign64)
m_lBufferSize = ((lSize + 63) & 0xFFFFFFC0) + 64;
else
m_lBufferSize = lSize;
if (m_lBufferSize == 0)
return TRUE;
//ATLTRACE("GetProcessHeap(): 0x%08X\n",GetProcessHeap());
m_pMediaBuffer = (BYTE*)::HeapAlloc(GetProcessHeap(), NULL, m_lBufferSize);
if (!m_pMediaBuffer)
return FALSE;
LONG lAlignSize = (m_lBufferSize - m_lFrameSize);
if (lAlignSize > 0)
{
memset(m_pMediaBuffer + m_lFrameSize, 0xFF, lAlignSize);
}
return TRUE;
}
BYTE* GetBuffer()
{
return m_pMediaBuffer;
}
LONG GetBufferSize()
{
return m_lFrameSize;
}
};
// AVSMediaCore3.cpp : Implementation of DLL Exports.
#include "stdafx.h"
#include "resource.h"
// The module attribute causes DllMain, DllRegisterServer and DllUnregisterServer to be automatically implemented for you
[ module(dll, uuid = "{F0A0AAE5-06FE-4ABC-A9F1-26BFFEE2A11F}",
name = "AVSMediaCore3",
helpstring = "AVSMediaCore3 1.0 Type Library",
resource_name = "IDR_AVSMEDIACORE3") ];
#include "AVSMediaData.h"
#include "AVSAudioData.h"
#include "AVSAudioDataEx.h"
#include "AVSUncompressedVideoFrame.h"
#include "AVSCompressedVideoFrame.h"
#include "AVSVideoFrameColorTransform.h"
#include "AVSDVDSubpictureFrame.h"
#include "AVSVideoFramePainter.h"
#include "AVSVideoFramePainter2.h"
#include "AVSSubtitleData.h"
#include "AVSPacketsAudioData.h"
\ No newline at end of file
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define COMPONENT_NAME "MediaCore3"
#include "FileInfo.h"
#include "version.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Russian resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
#ifdef _WIN32
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#pragma code_page(1251)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // Russian resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION INTVER
PRODUCTVERSION INTVER
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", COMPANY_NAME
VALUE "FileDescription", FILE_DESCRIPTION_ACTIVEX
VALUE "FileVersion", STRVER
VALUE "InternalName", COMPONENT_FILE_NAME_DLL
VALUE "LegalCopyright", LEGAL_COPYRIGHT
VALUE "OriginalFilename", COMPONENT_FILE_NAME_DLL
VALUE "ProductName", FILE_DESCRIPTION_ACTIVEX
VALUE "ProductVersion", STRVER
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// REGISTRY
//
IDR_AVSMEDIACORE3 REGISTRY "AVSMediaCore3.rgs"
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_PROJNAME "AVSMediaCore3"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
HKCR
{
NoRemove AppID
{
'%APPID%' = s 'AVSMediaCore3'
'AVSMediaCore3.DLL'
{
val AppID = s '%APPID%'
}
}
}
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AVSMediaCore3", "AVSMediaCore3.vcproj", "{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}"
ProjectSection(ProjectDependencies) = postProject
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328} = {DCD092A5-1FC9-4A77-BE0B-56B2407F4328}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VideoFrameTransformLib", "VideoFrameTransformLib\VideoFrameTransformLib.vcproj", "{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
ReleaseASC|Win32 = ReleaseASC|Win32
ReleaseASC|x64 = ReleaseASC|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.Debug|Win32.ActiveCfg = Debug|Win32
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.Debug|Win32.Build.0 = Debug|Win32
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.Debug|x64.ActiveCfg = Debug|x64
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.Debug|x64.Build.0 = Debug|x64
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.Release|Win32.ActiveCfg = Release|Win32
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.Release|Win32.Build.0 = Release|Win32
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.Release|x64.ActiveCfg = Release|x64
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.Release|x64.Build.0 = Release|x64
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.ReleaseASC|Win32.ActiveCfg = ReleaseASC|Win32
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.ReleaseASC|Win32.Build.0 = ReleaseASC|Win32
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.ReleaseASC|x64.ActiveCfg = ReleaseASC|x64
{C39EA7A2-78A4-4C36-8CF6-F175EEB51780}.ReleaseASC|x64.Build.0 = ReleaseASC|x64
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.Debug|Win32.ActiveCfg = Debug|Win32
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.Debug|Win32.Build.0 = Debug|Win32
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.Debug|x64.ActiveCfg = Debug|x64
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.Debug|x64.Build.0 = Debug|x64
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.Release|Win32.ActiveCfg = Release|Win32
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.Release|Win32.Build.0 = Release|Win32
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.Release|x64.ActiveCfg = Release|x64
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.Release|x64.Build.0 = Release|x64
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.ReleaseASC|Win32.ActiveCfg = Release|Win32
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.ReleaseASC|Win32.Build.0 = Release|Win32
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.ReleaseASC|x64.ActiveCfg = Release|x64
{DCD092A5-1FC9-4A77-BE0B-56B2407F4328}.ReleaseASC|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
This diff is collapsed.
#pragma once
#include <ATLDefine.h>
#include <MediaFormatDefine.h>
#include <MediaDataDefine.h>
#include <VideoFileErrorDescription.h>
#include "AVSMediaBuffer.h"
[object, uuid("C04D2557-D06D-406c-BA7D-27657B1F788C"), dual, pointer_default(unique)]
__interface IAVSMediaData : IDispatch
{
[id(200000 + 1), propget] HRESULT MediaType([out, retval] long* pVal);
//. "MediaDataDefine.h" DUBLICATE_TYPE_
[id(200000 + 2)] HRESULT CreateDuplicate([in] long DublicateType, [out, retval] IAVSMediaData** pMediaData);
[id(200000 + 3)] HRESULT AllocateBuffer([in] long BufferSize);
[id(200000 + 4), propget] HRESULT Buffer([out, retval] BYTE** pVal);
[id(200000 + 5), propget] HRESULT BufferSize([out, retval] long* pVal);
[id(200000 + 6), propget] HRESULT DataSize([out, retval] long* pVal);
[id(200000 + 6), propput] HRESULT DataSize([in] long newVal);
[id(200000 + 7), propget] HRESULT IsDiscontinuity([out, retval] VARIANT_BOOL* pVal);
[id(200000 + 7), propput] HRESULT IsDiscontinuity([in] VARIANT_BOOL newVal);
[id(200000 + 8), propget] HRESULT IsTimeStampExist([out, retval] VARIANT_BOOL* pVal);
[id(200000 + 9), propget] HRESULT TimeStamp([out, retval] double* pVal);
[id(200000 + 9), propput] HRESULT TimeStamp([in] double newVal);
[id(200000 + 10), propget] HRESULT IsDurationExist([out, retval] VARIANT_BOOL* pVal);
[id(200000 + 11), propget] HRESULT Duration([out, retval] double* pVal);
[id(200000 + 11), propput] HRESULT Duration([in] double newVal);
[id(200000 + 12)] HRESULT SetAdditionalParam([in] BSTR ParamName, [in] VARIANT ParamValue);
[id(200000 + 13)] HRESULT GetAdditionalParam([in] BSTR ParamName, [out,retval] VARIANT* ParamValue);
};
template <class CoT, class T>
class CAVSMediaDataImpl : public IDispatchImpl<T>
{
protected:
LONG m_lMediaType;
VARIANT_BOOL m_bIsDiscontinuity;
VARIANT_BOOL m_bTimeStampExist;
DOUBLE m_dTimeStamp;
VARIANT_BOOL m_bDurationExist;
DOUBLE m_dDuration;
CMediaBuffer* m_pMediaBuffer;
long m_lDataSize;
public:
CAVSMediaDataImpl()
{
m_lMediaType = MEDIAFORMAT_UNKNOWN;
m_bIsDiscontinuity = VARIANT_FALSE;
m_bTimeStampExist = VARIANT_FALSE;
m_dTimeStamp = 0;
m_bDurationExist = VARIANT_FALSE;
m_dDuration = 0;
m_lDataSize = 0;
m_pMediaBuffer = new CMediaBuffer();
}
~CAVSMediaDataImpl(void)
{
RELEASEINTERFACE(m_pMediaBuffer)
}
STDMETHOD(get_MediaType)(LONG* pVal)
{
*pVal = m_lMediaType;
return S_OK;
}
STDMETHOD(CreateDuplicate)(long DublicateType, IAVSMediaData** pMediaData)
{
if (NULL == pMediaData)
return S_OK;
*pMediaData = NULL;
CoCreateInstance(__uuidof(CoT), NULL, CLSCTX_ALL, __uuidof(IAVSMediaData), (void**)pMediaData);
if (NULL == *pMediaData)
return S_OK;
(*pMediaData)->put_IsDiscontinuity(m_bIsDiscontinuity);
if (m_bTimeStampExist != VARIANT_FALSE)
(*pMediaData)->put_TimeStamp(m_dTimeStamp);
if (m_bDurationExist != VARIANT_FALSE)
(*pMediaData)->put_Duration(m_dDuration);
CAVSMediaDataImpl* pMediaDataImpl = (CAVSMediaDataImpl*)(*pMediaData);
RELEASEINTERFACE(pMediaDataImpl->m_pMediaBuffer)
if (NULL!=m_pMediaBuffer)
{
switch (DublicateType)
{
case DUBLICATE_TYPE_LINK:
{
pMediaDataImpl->m_pMediaBuffer = m_pMediaBuffer;
pMediaDataImpl->m_pMediaBuffer->AddRef();
}
break;
case DUBLICATE_TYPE_COPY:
{
pMediaDataImpl->m_pMediaBuffer = new CMediaBuffer();
if (NULL!=pMediaDataImpl->m_pMediaBuffer)
{
pMediaDataImpl->m_pMediaBuffer->SetBuffer(m_pMediaBuffer->GetBufferSize());
memcpy(pMediaDataImpl->m_pMediaBuffer->GetBuffer(), m_pMediaBuffer->GetBuffer(), m_pMediaBuffer->GetBufferSize());
}
}
break;
}
}
(*pMediaData)->put_DataSize(m_lDataSize);
return S_OK;
}
STDMETHOD(AllocateBuffer)(LONG BufferSize)
{
m_pMediaBuffer->SetBuffer(BufferSize);
m_lDataSize = m_pMediaBuffer->GetBufferSize();
return S_OK;
}
STDMETHOD(get_Buffer)(BYTE** pVal)
{
*pVal = 0;
if (NULL!=m_pMediaBuffer)
*pVal = m_pMediaBuffer->GetBuffer();
return S_OK;
}
STDMETHOD(get_BufferSize)(LONG* pVal)
{
*pVal = 0;
if (NULL!=m_pMediaBuffer)
*pVal = m_pMediaBuffer->GetBufferSize();
return S_OK;
}
STDMETHOD(get_DataSize)(long* pVal)
{
*pVal = m_lDataSize;
return S_OK;
}
STDMETHOD(put_DataSize)(long newVal)
{
if (NULL==m_pMediaBuffer)
m_lDataSize = 0;
else
m_lDataSize = min(newVal, m_pMediaBuffer->GetBufferSize());
return S_OK;
}
STDMETHOD(get_IsDiscontinuity)(VARIANT_BOOL* pVal)
{
*pVal = m_bIsDiscontinuity;
return S_OK;
}
STDMETHOD(put_IsDiscontinuity)(VARIANT_BOOL newVal)
{
m_bIsDiscontinuity = newVal;
return S_OK;
}
STDMETHOD(get_IsTimeStampExist)(VARIANT_BOOL* pVal)
{
*pVal = m_bTimeStampExist;
return S_OK;
}
STDMETHOD(get_TimeStamp)(DOUBLE* pVal)
{
*pVal = m_dTimeStamp;
return S_OK;
}
STDMETHOD(put_TimeStamp)(DOUBLE newVal)
{
m_dTimeStamp = newVal;
m_bTimeStampExist = VARIANT_TRUE;
return S_OK;
}
STDMETHOD(get_IsDurationExist)(VARIANT_BOOL* pVal)
{
*pVal = m_bDurationExist;
return S_OK;
}
STDMETHOD(get_Duration)(DOUBLE* pVal)
{
*pVal = m_dDuration;
return S_OK;
}
STDMETHOD(put_Duration)(DOUBLE newVal)
{
m_dDuration = newVal;
m_bDurationExist = VARIANT_TRUE;
return S_OK;
}
STDMETHOD(SetAdditionalParam)(BSTR ParamName, VARIANT ParamValue)
{
return S_OK;
}
STDMETHOD(GetAdditionalParam)(BSTR ParamName, VARIANT* ParamValue)
{
return S_OK;
}
};
[coclass, uuid("142B5713-0AA8-4d89-87CC-0AE636F381E9"), threading(apartment), vi_progid("AVSMediaCore3.AVSMediaData"), progid("AVSMediaCore3.AVSMediaData.1"), version(1.0)]
class ATL_NO_VTABLE CAVSMediaData : public CAVSMediaDataImpl<CAVSMediaData, IAVSMediaData>
{
};
#pragma once
#include "AVSAudioData.h"
[object, uuid("1B92459A-0727-491b-9E7F-FB0D1AA81F7B"), dual, pointer_default(unique)]
__interface IAVSPacketsAudioData : IAVSAudioData
{
[id(212000 + 1), propget] HRESULT PacketsCount([out, retval] long* pVal);
[id(212000 + 2), propget] HRESULT PacketOffset([in] long Index, [out, retval] long* pVal);
[id(212000 + 3)] HRESULT AddPacket([in] long Offset);
[id(212000 + 4)] HRESULT InsertPacket([in] long Index, [in] long Offset);
[id(212000 + 5)] HRESULT RemovePacket([in] long Index);
[id(212000 + 6)] HRESULT RemovePacketAll();
};
template <class CoT, class T>
class CAVSPacketsAudioDataImpl : public CAVSAudioDataImpl<CoT, T>
{
public:
CAVSPacketsAudioDataImpl()
{
}
STDMETHOD(CreateDuplicate)(long DublicateType, IAVSMediaData** pMediaData)
{
CAVSAudioDataImpl<CoT, T>::CreateDuplicate(DublicateType, pMediaData);
if (NULL == *pMediaData)
return S_OK;
IAVSPacketsAudioData* pAVSPacketsAudioData = NULL;
(*pMediaData)->QueryInterface(__uuidof(IAVSPacketsAudioData), (void**)(&pAVSPacketsAudioData));
if (NULL == pAVSPacketsAudioData)
{
(*pMediaData)->Release();
*pMediaData = NULL;
return S_OK;
}
size_t nCount = m_arOffsets.GetCount();
for (size_t nIndex = 0; nIndex < nCount; nIndex++)
{
pAVSPacketsAudioData->AddPacket(m_arOffsets[nIndex]);
}
RELEASEINTERFACE(pAVSPacketsAudioData)
return S_OK;
}
STDMETHOD(get_PacketsCount)(long* pVal)
{
*pVal = (long)m_arOffsets.GetCount();
return S_OK;
}
STDMETHOD(get_PacketOffset)(long Index, long* pVal)
{
*pVal = 0;
if ((Index < 0) || (Index >= (long)m_arOffsets.GetCount()))
return S_FALSE;
*pVal = m_arOffsets[Index];
return S_OK;
}
STDMETHOD(AddPacket)(long Offset)
{
m_arOffsets.Add(Offset);
return S_OK;
}
STDMETHOD(InsertPacket)(long Index, long Offset)
{
m_arOffsets.InsertAt(Index, Offset);
return S_OK;
}
STDMETHOD(RemovePacket)(long Index)
{
if ((Index < 0) || (Index >= (long)m_arOffsets.GetCount()))
return S_FALSE;
m_arOffsets.RemoveAt(Index);
return S_OK;
}
STDMETHOD(RemovePacketAll)()
{
m_arOffsets.RemoveAll();
return S_OK;
}
protected:
CAtlArray<long> m_arOffsets;
};
[coclass, uuid("43191873-1C10-43ba-B13D-0B827F2CF116"), threading(apartment), vi_progid("AVSMediaCore3.AVSPacketsAudioData"), progid("AVSMediaCore3.AVSPacketsAudioData.1"), version(1.0)]
class ATL_NO_VTABLE CAVSPacketsAudioData : public CAVSPacketsAudioDataImpl<CAVSPacketsAudioData, IAVSPacketsAudioData>
{
};
// AVSSubtitleData.h : Declaration of the CAVSSubtitleData
#pragma once
#include "resource.h" // main symbols
#include "AVSMediaData.h"
#include "MemoryUtils.h"
#include <atlcoll.h>
// AVSSubtitleData
[object, uuid("96FDBD8F-33B1-4092-B731-005A41579FAA"), dual, pointer_default(unique)]
__interface IAVSSubtitleData : IAVSMediaData
{
[id(211000 + 1), propget] HRESULT TextBox([out, retval] RECT* pVal);
[id(211000 + 1), propput] HRESULT TextBox([in] RECT newVal);
[id(211000 + 2), propget] HRESULT TypeScroll([out, retval] long* pVal);
[id(211000 + 2), propput] HRESULT TypeScroll([in] long newVal);
[id(211000 + 3), propget] HRESULT ContinuousScroll([out, retval] VARIANT_BOOL* pVal);
[id(211000 + 3), propput] HRESULT ContinuousScroll([in] VARIANT_BOOL newVal);
[id(211000 + 4), propget] HRESULT TextOverlay([out, retval] VARIANT_BOOL* pVal);
[id(211000 + 4), propput] HRESULT TextOverlay([in] VARIANT_BOOL newVal);
[id(211000 + 5), propget] HRESULT AutoScale([out, retval] VARIANT_BOOL* pVal);
[id(211000 + 5), propput] HRESULT AutoScale([in] VARIANT_BOOL newVal);
};
template <class CoT, class T>
class CAVSSubtitleDataImpl : public CAVSMediaDataImpl<CoT, T>
{
public:
CAVSSubtitleDataImpl()
{
m_lMediaType = MEDIAFORMAT_TEXT;
m_TextBox.top=0;
m_TextBox.left=0;
m_TextBox.right=-1;//max by frame
m_TextBox.bottom=-1;//max by frame
m_TypeScroll=0;
m_ContinuousScroll=FALSE;
m_TextOverlay=FALSE;
m_AutoScale=-1;
}
STDMETHOD(CreateDuplicate)(long DublicateType, IAVSMediaData** pMediaData)
{
CAVSMediaDataImpl<CoT, T>::CreateDuplicate(DublicateType, pMediaData);
if (NULL == *pMediaData)
return S_OK;
IAVSSubtitleData* pAVSSubTitle = NULL;
(*pMediaData)->QueryInterface(__uuidof(IAVSSubtitleData), (void**)(&pAVSSubTitle));
if (NULL == pAVSSubTitle)
{
(*pMediaData)->Release();
*pMediaData = NULL;
return S_OK;
}
RELEASEINTERFACE(pAVSSubTitle)
return S_OK;
}
STDMETHOD(get_TextBox)(RECT* pVal)
{
*pVal = m_TextBox;
return S_OK;
}
STDMETHOD(put_TextBox)(RECT newVal)
{
m_TextBox = newVal;
return S_OK;
}
STDMETHOD(get_TypeScroll)(long* pVal)
{
*pVal = m_TypeScroll;
return S_OK;
}
STDMETHOD(put_TypeScroll)(long newVal)
{
//0 - not
//1 - horizontal
//2 - vertical
m_TypeScroll = newVal;
return S_OK;
}
STDMETHOD(get_ContinuousScroll)(VARIANT_BOOL* pVal)
{
*pVal = m_ContinuousScroll;
return S_OK;
}
STDMETHOD(put_ContinuousScroll)(VARIANT_BOOL newVal)
{
//
m_ContinuousScroll = newVal;
return S_OK;
}
STDMETHOD(get_TextOverlay)(VARIANT_BOOL* pVal)
{
*pVal = m_TextOverlay;
return S_OK;
}
STDMETHOD(put_TextOverlay)(VARIANT_BOOL newVal)
{
m_TextOverlay = newVal;
return S_OK;
}
STDMETHOD(get_AutoScale)(VARIANT_BOOL* pVal)
{
*pVal = m_AutoScale;
return S_OK;
}
STDMETHOD(put_AutoScale)(VARIANT_BOOL newVal)
{
m_AutoScale = newVal;
return S_OK;
}
protected:
RECT m_TextBox;
long m_TypeScroll;
VARIANT_BOOL m_ContinuousScroll;
VARIANT_BOOL m_TextOverlay;
VARIANT_BOOL m_AutoScale;
};
// CAVSSubtitleData
[coclass, uuid("3E4433F7-1D47-49eb-AA85-402B7EF50432"), threading(apartment), vi_progid("AVSMediaCore3.AVSSubtitleData"), progid("AVSMediaCore3.AVSDVDSubpictureFram.1"), version(1.0)]
class ATL_NO_VTABLE CAVSSubtitleData : public CAVSSubtitleDataImpl<CAVSSubtitleData, IAVSSubtitleData>
{
};
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// AVSVideoFramePainter.h
#pragma once
#include "resource.h" // main symbols
#include "DrawLogo.h"
// IAVSVideoFrameDrawing
[ object, uuid("6ACCCD45-B500-4141-8111-90DB4CEDE0C8"), dual, pointer_default(unique)]
__interface IAVSVideoFramePainter2 : IDispatch
{
[id(209500 + 10)] HRESULT SetPicture ([in] IUnknown* pFrame);
[id(209500 + 20)] HRESULT Draw ([in] IUnknown* pFrame, [in] long Left, [in] long Top);
};
// CAVSVideoFrameColorTransform
[ coclass, threading(apartment), vi_progid("AVSMediaCore3.IAVSVideoFramePainter2"), progid("AVSMediaCore3.IAVSVideoFramePainter.2"), version(1.0), uuid("05B7DB51-7EF4-4363-9B2A-0EF156F97A5A")]
class ATL_NO_VTABLE CAVSVideoFramePainter2 :
public IAVSVideoFramePainter2
{
protected:
CDrawLogo m_oLogoPainter;
public:
CAVSVideoFramePainter2 ()
{
}
public:
STDMETHOD (SetPicture) (IUnknown* pFrame)
{
if (NULL == pFrame)
{
m_oLogoPainter.SetLogo (NULL);
return S_OK;
}
IAVSUncompressedVideoFrame *pLogo = NULL;
pFrame->QueryInterface (&pLogo);
m_oLogoPainter.SetLogo (pLogo);
pLogo->Release ();
return S_OK;
}
STDMETHOD (Draw) (IUnknown* pFrame, long Left, long Top)
{
if (NULL == pFrame)
return S_OK;
IMediaFrame *pMF = NULL;
pFrame->QueryInterface (&pMF);
if (pMF)
{
m_oLogoPainter.DrawLogo (pMF, Left, Top);
pMF->Release ();
}
return S_OK;
}
};
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#pragma once
// MEDIACORE
#ifdef ASCBUILD
// ASC
// Module
#define MEDIACORE_MODULENAME "TMMediaCore3"
#define MEDIACORE_MODULEUUID "{717B0AB9-5568-4b9f-B662-C7656D940E28}"
#define MEDIACORE_MODULEHELPSTRING "TMMediaCore3 1.0 Type Library"
// Interfaces
#define MEDIACORE_IAVSMEDIADATA_UUID "068D934E-6F50-4563-BBF3-C80EBFDB3144"
#define MEDIACORE_IAVSAUDIOBUFFER_UUID "090640FC-DFB7-4d34-AC22-3D9B6D8302B8"
#define MEDIACORE_IAVSAUDIODATAEX_UUID "FC44E9DD-9489-4fba-B9AB-A1A00A10EED4"
#define MEDIACORE_IAVSCOMPRESSEDVIDEOFRAME_UUID "3B7C347A-57CF-402e-A33F-E2D6C082EEE9"
#define MEDIACORE_IAVSDVDSUBPICTUREFRAME_UUID "8A21F70D-E05C-474d-978C-E84F5E14FFB2"
#define MEDIACORE_IAVSEXTRADATA_UUID "2A83CD05-23BE-437d-8A32-34960599C38B"
#define MEDIACORE_IAVSPACKETSAUDIODATA_UUID "B9E8961F-EF74-4638-A484-C5BB2885AC64"
#define MEDIACORE_IAVSSUBTITLEDATA_UUID "C790308E-31F5-4bd1-BB93-ADA047C55154"
#define MEDIACORE_IAVSUNCOMPRESSEDVIDEOFRAME_UUID "32DC73CD-B614-4db0-BBE0-DA3FAD2CE91B"
#define MEDIACORE_IAVSUNCOMPRESSEDVIDEOFRAMESERIALIZE_UUID "384DB2B2-17BA-477f-9D74-089F9487E575"
#define MEDIACORE_IAVSVIDEOFRAMECOLORTRANSFORM_UUID "840C5506-A871-4207-886B-84448FB5D0E2"
#define MEDIACORE_IAVSVIDOFRAMEPAINTER_UUID "3E2E26DE-D808-438d-909D-6E23C1CBB2A8"
#define MEDIACORE_IAVSVIDEOFRAMETRANSFORM_UUID "0D25DF10-5207-4686-A9F9-F4F52FF544EE"
// Classes
// CAVSMediaData
#define MEDIACORE_CAVSMEDIADATA_UUID "6049F0C2-7723-4109-85C4-25620FC95D89"
#define MEDIACORE_CAVSMEDIADATA_VIPROGID "TMMediaCore3.TMMediaData"
#define MEDIACORE_CAVSMEDIADATA_PROGID "TMMediaCore3.TMMediaData.1"
// CAVSAudioBuffer
#define MEDIACORE_CAVSAUDIOBUFFER_UUID "B17EDD1A-DF53-4f15-B938-B915E5E2A507"
#define MEDIACORE_CAVSAUDIOBUFFER_VIPROGID "TMMediaCore3.TMAudioBuffer"
#define MEDIACORE_CAVSAUDIOBUFFER_PROGID "TMMediaCore3.TMAudioBuffer.1"
// CAVSAudioDataEx
#define MEDIACORE_CAVSAUDIODATAEX_UUID "8C70B5F6-44F7-4d3b-917B-E0E675630BB6"
#define MEDIACORE_CAVSAUDIODATAEX_VIPROGID "TMMediaCore3.TMAudioDataEx"
#define MEDIACORE_CAVSAUDIODATAEX_PROGID "TMMediaCore3.TMAudioDataEx.1"
// CAVSCompressedVideoFrame
#define MEDIACORE_CAVSCOMPRESSEDVIDEOFRAME_UUID "D41F7C95-6373-456d-8650-0CDE03C4645B"
#define MEDIACORE_CAVSCOMPRESSEDVIDEOFRAME_VIPROGID "TMMediaCore3.TMVideoFrameCmp"
#define MEDIACORE_CAVSCOMPRESSEDVIDEOFRAME_PROGID "TMMediaCore3.TMVideoFrameCmp.1"
// CAVSDVDSubpictureFrame
#define MEDIACORE_CAVSDVDSUBPICTUREFRAME_UUID "3796275B-4897-47ec-B5CB-C5706BBBE365"
#define MEDIACORE_CAVSDVDSUBPICTUREFRAME_VIPROGID "TMDVDSubpicture.TMDVDSubpictureFrame"
#define MEDIACORE_CAVSDVDSUBPICTUREFRAME_PROGID "TMDVDSubpicture.TMDVDSubpictureFram.1"
// CAVSExtraData
#define MEDIACORE_CAVSEXTRADATA_UUID "DD8AB2B9-FF5E-4934-82DC-3DC9036ADC8D"
#define MEDIACORE_CAVSEXTRADATA_VIPROGID "TMMediaCore3.TMExtraData"
#define MEDIACORE_CAVSEXTRADATA_PROGID "TMMediaCore3.TMExtraData.1"
// CAVSPacketsAudioData
#define MEDIACORE_CAVSPACKETSAUDIODATA_UUID "B29CDA19-819D-4e73-ABD3-20D77196F4E5"
#define MEDIACORE_CAVSPACKETSAUDIODATA_VIPROGID "TMMediaCore3.TMPacketsAudioData"
#define MEDIACORE_CAVSPACKETSAUDIODATA_PROGID "TMMediaCore3.TMPacketsAudioData.1"
// CAVSSubtitleData
#define MEDIACORE_CAVSSUBTITLEDATA_UUID "1BDBE3FE-B020-4033-81B6-90E535ECB135"
#define MEDIACORE_CAVSSUBTITLEDATA_VIPROGID "TMMediaCore3.TMSubtitleData"
#define MEDIACORE_CAVSSUBTITLEDATA_PROGID "TMMediaCore3.TMDVDSubpictureFram.1"
// CAVSUncompressedVideoFrame
#define MEDIACORE_CAVSUNCOMPRESSEDVIDEOFRAME_UUID "69D6002F-4624-46c3-9086-0E5E6D810AA2"
#define MEDIACORE_CAVSUNCOMPRESSEDVIDEOFRAME_VIPROGID "TMMediaCore3.TMVideoFrameUnc"
#define MEDIACORE_CAVSUNCOMPRESSEDVIDEOFRAME_PROGID "TMMediaCore3.TMVideoFrameUnc.1"
// CAVSVideoFrameColorTransform
#define MEDIACORE_CAVSVIDEOFRAMECOLORTRANSFORM_UUID "82E8B3B7-1D0F-4854-AA8F-5A6606E10BBA"
#define MEDIACORE_CAVSVIDEOFRAMECOLORTRANSFORM_VIPROGID "TMMediaCore3.TMVideoFrameColorTransfo"
#define MEDIACORE_CAVSVIDEOFRAMECOLORTRANSFORM_PROGID "TMMediaCore3.TMVideoFrameColorTrans.1"
// CAVSVideoFramePainter
#define MEDIACORE_CAVSVIDOFRAMEPAINTER_UUID "183EB4FA-EEF9-4289-8A86-C067BC56E810"
#define MEDIACORE_CAVSVIDOFRAMEPAINTER_VIPROGID "TMMediaCore3.TMVideoFramePainter"
#define MEDIACORE_CAVSVIDOFRAMEPAINTER_PROGID "TMMediaCore3.TMVideoFramePainter.1"
// CAVSVideoFrameTransform
#define MEDIACORE_CAVSVIDEOFRAMETRANSFORM_UUID "086BDC05-D3F4-42ea-80B3-2ADE0B9C5089"
#define MEDIACORE_CAVSVIDEOFRAMETRANSFORM_VIPROGID "TMMediaCore3.TMVideoFrameTransform"
#define MEDIACORE_CAVSVIDEOFRAMETRANSFORM_PROGID "TMMediaCore3.TMVideoFrameTransform.1"
// Dll import Table
#define COMLIB_MEDIAFORMATSETTINGS3 "TMMediaFormatSettings3.dll"
//#define COMLIB_MEDIAFORMATSETTINGS3 "AVSMediaFormatSettings3.dll"
#else // ASCBUILD
// AVS
// Module
#define MEDIACORE_MODULENAME "AVSMediaCore3"
#define MEDIACORE_MODULEUUID "{F0A0AAE5-06FE-4ABC-A9F1-26BFFEE2A11F}"
#define MEDIACORE_MODULEHELPSTRING "AVSMediaCore3 1.0 Type Library"
// Interfaces
#define MEDIACORE_IAVSMEDIADATA_UUID "C04D2557-D06D-406c-BA7D-27657B1F788C"
#define MEDIACORE_IAVSAUDIOBUFFER_UUID "1CB6CE9F-0E75-4B17-8512-668FF3B10745"
#define MEDIACORE_IAVSAUDIODATAEX_UUID "35B7E717-3EF0-4473-884D-A42C41E80AE1"
#define MEDIACORE_IAVSCOMPRESSEDVIDEOFRAME_UUID "D1AB8643-9E1E-4037-A4C1-D166CCF47467"
#define MEDIACORE_IAVSDVDSUBPICTUREFRAME_UUID "BEE83C44-5BE4-4545-9657-6A47184ACB4F"
#define MEDIACORE_IAVSEXTRADATA_UUID "F04698FD-7956-4BCF-B579-512CBC1ECB0F"
#define MEDIACORE_IAVSPACKETSAUDIODATA_UUID "1B92459A-0727-491b-9E7F-FB0D1AA81F7B"
#define MEDIACORE_IAVSSUBTITLEDATA_UUID "96FDBD8F-33B1-4092-B731-005A41579FAA"
#define MEDIACORE_IAVSUNCOMPRESSEDVIDEOFRAME_UUID "B78DE084-9D29-431c-B76B-B996D02F5F02"
#define MEDIACORE_IAVSUNCOMPRESSEDVIDEOFRAMESERIALIZE_UUID "89063236-01B8-4b21-9A8D-4B82C819D32B"
#define MEDIACORE_IAVSVIDEOFRAMECOLORTRANSFORM_UUID "E84E31CD-914C-4442-BFB3-FF81D34CF887"
#define MEDIACORE_IAVSVIDOFRAMEPAINTER_UUID "AE1D7D3F-ED9D-4159-922A-024F1F45B274"
#define MEDIACORE_IAVSVIDEOFRAMETRANSFORM_UUID "DEA8B89A-6350-49E0-890A-84377006633C"
// Classes
// CAVSMediaData
#define MEDIACORE_CAVSMEDIADATA_UUID "142B5713-0AA8-4d89-87CC-0AE636F381E9"
#define MEDIACORE_CAVSMEDIADATA_VIPROGID "AVSMediaCore3.AVSMediaData"
#define MEDIACORE_CAVSMEDIADATA_PROGID "AVSMediaCore3.AVSMediaData.1"
// CAVSAudioBuffer
#define MEDIACORE_CAVSAUDIOBUFFER_UUID "7F8D7AC7-C05E-4986-9C31-DFEF2B7298CC"
#define MEDIACORE_CAVSAUDIOBUFFER_VIPROGID "AVSMediaCore3.AVSAudioBuffer"
#define MEDIACORE_CAVSAUDIOBUFFER_PROGID "AVSMediaCore3.AVSAudioBuffer.1"
// CAVSAudioDataEx
#define MEDIACORE_CAVSAUDIODATAEX_UUID "181B5438-55CF-4bbb-82C7-F20BA8F032B3"
#define MEDIACORE_CAVSAUDIODATAEX_VIPROGID "AVSMediaCore3.AVSAudioDataEx"
#define MEDIACORE_CAVSAUDIODATAEX_PROGID "AVSMediaCore3.AVSAudioDataEx.1"
// CAVSCompressedVideoFrame
#define MEDIACORE_CAVSCOMPRESSEDVIDEOFRAME_UUID "B1775B10-FD1E-448d-A5AB-68F1BCDDF4EB"
#define MEDIACORE_CAVSCOMPRESSEDVIDEOFRAME_VIPROGID "AVSMediaCore3.AVSVideoFrameCmp"
#define MEDIACORE_CAVSCOMPRESSEDVIDEOFRAME_PROGID "AVSMediaCore3.AVSVideoFrameCmp.1"
// CAVSDVDSubpictureFrame
#define MEDIACORE_CAVSDVDSUBPICTUREFRAME_UUID "C97B1CB0-AEB6-41BB-8CFB-74AEC476ECC5"
#define MEDIACORE_CAVSDVDSUBPICTUREFRAME_VIPROGID "AVSDVDSubpicture.AVSDVDSubpictureFrame"
#define MEDIACORE_CAVSDVDSUBPICTUREFRAME_PROGID "AVSDVDSubpicture.AVSDVDSubpictureFram.1"
// CAVSExtraData
#define MEDIACORE_CAVSEXTRADATA_UUID "174EA295-730D-4132-A830-9C71ED225496"
#define MEDIACORE_CAVSEXTRADATA_VIPROGID "AVSMediaCore3.AVSExtraData"
#define MEDIACORE_CAVSEXTRADATA_PROGID "AVSMediaCore3.AVSExtraData.1"
// CAVSPacketsAudioData
#define MEDIACORE_CAVSPACKETSAUDIODATA_UUID "43191873-1C10-43ba-B13D-0B827F2CF116"
#define MEDIACORE_CAVSPACKETSAUDIODATA_VIPROGID "AVSMediaCore3.AVSPacketsAudioData"
#define MEDIACORE_CAVSPACKETSAUDIODATA_PROGID "AVSMediaCore3.AVSPacketsAudioData.1"
// CAVSSubtitleData
#define MEDIACORE_CAVSSUBTITLEDATA_UUID "3E4433F7-1D47-49eb-AA85-402B7EF50432"
#define MEDIACORE_CAVSSUBTITLEDATA_VIPROGID "AVSMediaCore3.AVSSubtitleData"
#define MEDIACORE_CAVSSUBTITLEDATA_PROGID "AVSMediaCore3.AVSDVDSubpictureFram.1"
// CAVSUncompressedVideoFrame
#define MEDIACORE_CAVSUNCOMPRESSEDVIDEOFRAME_UUID "AA742621-AE1E-41ba-B577-4A1F3D1B3417"
#define MEDIACORE_CAVSUNCOMPRESSEDVIDEOFRAME_VIPROGID "AVSMediaCore3.AVSVideoFrameUnc"
#define MEDIACORE_CAVSUNCOMPRESSEDVIDEOFRAME_PROGID "AVSMediaCore3.AVSVideoFrameUnc.1"
// CAVSVideoFrameColorTransform
#define MEDIACORE_CAVSVIDEOFRAMECOLORTRANSFORM_UUID "7F993343-4C1A-4A1B-BCE4-B87EA40E3A00"
#define MEDIACORE_CAVSVIDEOFRAMECOLORTRANSFORM_VIPROGID "AVSMediaCore3.AVSVideoFrameColorTransfo"
#define MEDIACORE_CAVSVIDEOFRAMECOLORTRANSFORM_PROGID "AVSMediaCore3.AVSVideoFrameColorTrans.1"
// CAVSVideoFramePainter
#define MEDIACORE_CAVSVIDOFRAMEPAINTER_UUID "DFACD890-DDCB-4432-921E-E46BDA97DE02"
#define MEDIACORE_CAVSVIDOFRAMEPAINTER_VIPROGID "AVSMediaCore3.IAVSVideoFramePainter"
#define MEDIACORE_CAVSVIDOFRAMEPAINTER_PROGID "AVSMediaCore3.IAVSVideoFramePainter.1"
// CAVSVideoFrameTransform
#define MEDIACORE_CAVSVIDEOFRAMETRANSFORM_UUID "E093D454-88E3-44B2-84DC-F4270861298D"
#define MEDIACORE_CAVSVIDEOFRAMETRANSFORM_VIPROGID "AVSMediaCore3.AVSVideoFrameTransform"
#define MEDIACORE_CAVSVIDEOFRAMETRANSFORM_PROGID "AVSMediaCore3.AVSVideoFrameTransform.1"
// Dll import Table
#define COMLIB_MEDIAFORMATSETTINGS3 "AVSMediaFormatSettings3.dll"
#endif // not ASCBUILD
\ No newline at end of file
#pragma once
#include "MediaFormatDefine.h"
#define PLANE_COUNT 4
struct SUncompressedVideoFrame
{
BYTE* Plane[PLANE_COUNT];
LONG Stride[PLANE_COUNT];
LONG Width;
LONG Height;
LONG ColorSpace;
LONG AspectX;
LONG AspectY;
BOOL Interlaced;
double kx;
double ky;
SUncompressedVideoFrame()
: Width(320)
, Height(240)
, ColorSpace(CSP_BGRA|CSP_VFLIP)
, AspectX(0)
, AspectY(1)
, Interlaced(false)
, kx(1.0)
, ky(1.0)
{
for (int i=0;i<PLANE_COUNT;i++)
{
Plane[i] = NULL;
Stride[i] = 0;
}
}
SUncompressedVideoFrame& operator= (const SUncompressedVideoFrame& x)
{
for (int i=0;i<PLANE_COUNT;i++)
{
Plane[i] = x.Plane[i];
Stride[i] = x.Stride[i];
}
Width = x.Width;
Height = x.Height;
ColorSpace = x.ColorSpace;
AspectX = x.AspectX;
AspectY = x.AspectY;
Interlaced = x.Interlaced;
kx = x.kx;
ky = x.ky;
return *this;
}
};
\ No newline at end of file
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by AVSMediaCore3.rc
//
#define IDS_PROJNAME 100
#define IDR_AVSMEDIACORE3 101
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 201
#define _APS_NEXT_COMMAND_VALUE 32768
#define _APS_NEXT_CONTROL_VALUE 201
#define _APS_NEXT_SYMED_VALUE 102
#endif
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#pragma once
typedef void (fastconvet_emmsFunc) ();
typedef fastconvet_emmsFunc *fastconvert_emmsFuncPtr;
fastconvet_emmsFunc fastconvert_emms_c;
fastconvet_emmsFunc fastconvert_emms_mmx;
fastconvet_emmsFunc fastconvert_emms_3dn;
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// stdafx.cpp : source file that includes just the standard includes
// AVSMediaCore3.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment