⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frameextractfilter.cpp

📁 6410BSP1
💻 CPP
字号:
//------------------------------------------------------------------------------
// File: FrameExtractFilter.cpp
//
// Desc: FrameExtractFilter DirectShow filter
//
// Author : JiyoungShin(idon.shin@samsung.com)
//
// Copyright 2007 Samsung System LSI, All rights reserved.
//------------------------------------------------------------------------------

#include "stdafx.h"
#include "fFrameExtractFilter.h"

#include <initguid.h>
#include "FrameExtractFilter.h"


//
// Setup data for filter registration
//
const AMOVIESETUP_MEDIATYPE sudPinTypes =
{    &MEDIATYPE_NULL,    // Major CLSID
    &MEDIASUBTYPE_NULL    // Minor type
};

const AMOVIESETUP_MEDIATYPE sudOutputPinTypes[] =
{
    {&MEDIATYPE_Stream, &MEDIASUBTYPE_m4v},
    {&MEDIATYPE_Stream, &MEDIASUBTYPE_h264raw},
    {&MEDIATYPE_Stream, &MEDIASUBTYPE_rcv}
};

const AMOVIESETUP_PIN psudPins[] =
{
    {
        L"Output",            // Pin's string name
        FALSE,                // Is it rendered
        TRUE,                // Is it an output
        FALSE,                // Allowed none
        FALSE,                // Allowed many
        &CLSID_NULL,        // Connects to filter
        L"Input",            // Connects to pin
        sizeof(sudOutputPinTypes) / sizeof(AMOVIESETUP_MEDIATYPE),  // Number of media types
        sudOutputPinTypes    // Pin type information
    },
};

const AMOVIESETUP_FILTER sudFrameExtractFilter =
{
    &CLSID_FrameExtractFilter,    // CLSID of filter
    L"FrameExtract Filter",        // Filter's name
    MERIT_DO_NOT_USE,            // Filter merit
    1,                            // Number of pins
    psudPins                    // Pin information
};


//
//  Object creation template
//
CFactoryTemplate g_Templates[] = 
{
    {
        L"FrameExtract Filter",
        &CLSID_FrameExtractFilter,
        CFrameExtractFilter::CreateInstance,
        NULL,
        &sudFrameExtractFilter
    },
};

int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);


//
// Filter registration functions
//
HRESULT DllRegisterServer()
{
    return AMovieDllRegisterServer2(TRUE);
}

HRESULT DllUnregisterServer()
{
    return AMovieDllRegisterServer2(FALSE);
}


//
// Create a new instance of this class
//
CUnknown *CFrameExtractFilter::CreateInstance(LPUNKNOWN pUnk, HRESULT *phr)
{
    RETAILMSG(1, (L"\n{ CFrameExtractFilter } Instance created\n"));



    //    DLLEntry does the right thing with the return code and
    //    returned value on failure
    CUnknown *pUnknown = new CFrameExtractFilter(pUnk, phr);
    if (pUnknown == NULL)
    {
        *phr = E_OUTOFMEMORY;
    }

    return pUnknown;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -