Update to 2.0.0 tree from current Fremantle build
[opencv] / otherlibs / cvcam / src / windows / cvcamavi.cpp
diff --git a/otherlibs/cvcam/src/windows/cvcamavi.cpp b/otherlibs/cvcam/src/windows/cvcamavi.cpp
deleted file mode 100644 (file)
index a8c257e..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-/*M///////////////////////////////////////////////////////////////////////////////////////
-//
-//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
-//
-//  By downloading, copying, installing or using the software you agree to this license.
-//  If you do not agree to this license, do not download, install,
-//  copy or use the software.
-//
-//
-//                        Intel License Agreement
-//                For Open Source Computer Vision Library
-//
-// Copyright (C) 2000, Intel Corporation, all rights reserved.
-// Third party copyrights are property of their respective owners.
-//
-// Redistribution and use in source and binary forms, with or without modification,
-// are permitted provided that the following conditions are met:
-//
-//   * Redistribution's of source code must retain the above copyright notice,
-//     this list of conditions and the following disclaimer.
-//
-//   * Redistribution's in binary form must reproduce the above copyright notice,
-//     this list of conditions and the following disclaimer in the documentation
-//     and/or other materials provided with the distribution.
-//
-//   * The name of Intel Corporation may not be used to endorse or promote products
-//     derived from this software without specific prior written permission.
-//
-// This software is provided by the copyright holders and contributors "as is" and
-// any express or implied warranties, including, but not limited to, the implied
-// warranties of merchantability and fitness for a particular purpose are disclaimed.
-// In no event shall the Intel Corporation or contributors be liable for any direct,
-// indirect, incidental, special, exemplary, or consequential damages
-// (including, but not limited to, procurement of substitute goods or services;
-// loss of use, data, or profits; or business interruption) however caused
-// and on any theory of liability, whether in contract, strict liability,
-// or tort (including negligence or otherwise) arising in any way out of
-// the use of this software, even if advised of the possibility of such damage.
-//
-//M*/
-
-#define WM_GRAPHNOTIFY  WM_USER+13
-
-
-#include <objbase.h>
-#include <streams.h>
-#include "iProxyTrans.h"
-#include "ProxyTransuids.h"
-#include "highgui.h"
-#include "cvcamavi.h"
-
-IPin* get_pin( IBaseFilter* pFilter, PIN_DIRECTION dir );
-HWND _cvcamCreateWindow();
-
-const int FRAMES_FORMAT = 0;
-const int TIME_FORMAT = 1;
-
-
-cvcamSourceFile::cvcamSourceFile(const char* file , void (*callback)(void*) ):
-Iusecom(),
-m_pGraph(NULL),
-m_pMediaControl(NULL),
-m_pEvent(NULL),
-m_pVideoWindow(NULL),
-m_pPin(NULL),
-m_pBasicVideo(NULL),
-m_pSFilter(NULL),
-m_pProxyTrans(NULL),
-m_pSourceOut(NULL),
-m_pProxyIn(NULL),
-m_pProxyOut(NULL),
-m_pEnumPins(NULL),
-m_pProxyBase(NULL),
-m_file(),
-m_pcallback(NULL),
-m_width(0),
-m_height(0),
-IsValid(true),
-m_hr(),
-m_hWnd(NULL),
-m_pMediaSeeking(NULL)
-
-{
-    try
-    {
-    
-    //Get the file
-    if (file) 
-    {
-        m_file = file;
-    }
-    else
-    {
-        char path[256];
-        memset(path,0,256);
-
-        OPENFILENAME fn;
-        
-        fn.lStructSize = sizeof(OPENFILENAME);
-        fn.hwndOwner = NULL;
-        fn.lpstrFilter = NULL;
-        fn.lpstrFile = path;
-        fn.nMaxFile = 256;
-        fn.lpstrFileTitle = NULL;
-        fn.lpstrInitialDir = NULL;
-        fn.lpstrTitle = NULL;
-        fn.Flags = NULL;
-        fn.lpstrDefExt = "avi";
-        fn.hInstance = DLLhinst;
-        fn.lpfnHook = NULL;
-        fn.lpstrCustomFilter = NULL;
-        fn.lCustData = NULL;
-        
-        
-        if(!GetOpenFileName(&fn))
-            throw 1;
-
-        m_file = path;
-       
-    }//else after if(file)
-
-    // Create the filter graph manager and query for interfaces.
-    CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
-        IID_IGraphBuilder, (void **)&m_pGraph);
-    
-    // Build the graph.
-    wchar_t wpath[256];
-    mbstowcs(wpath, m_file.c_str(), strlen(m_file.c_str())+1);
-    
-    
-    m_hr = m_pGraph->AddSourceFilter(wpath,L"source",&m_pSFilter);
-    
-    
-    // Create a proxy transform filter 
-    if(FAILED(CoCreateInstance(CLSID_ProxyTransform, NULL, CLSCTX_INPROC_SERVER, 
-        IID_IProxyTransform, (void**)&m_pProxyTrans)))
-    {
-        throw 1;
-    }
-    
-    //set callback
-    m_hr = m_pProxyTrans->set_transform((void(__cdecl*)(void*))m_pcallback, 0);
-    
-    //Get Source output pin
-    m_hr = m_pSFilter->EnumPins(&m_pEnumPins);
-    
-    unsigned long fetched(0);
-    m_hr = m_pEnumPins->Next(1,&m_pSourceOut,&fetched);
-    if(!fetched)
-        throw 1 ;
-    
-    m_pEnumPins = NULL;
-    
-    //Put ProxyTrans into graph
-    m_hr = m_pProxyTrans->QueryInterface(IID_IBaseFilter,(void**)&m_pProxyBase);
-    m_hr = m_pGraph->AddFilter(m_pProxyBase.value(),L"proxy");
-    
-    //Get ProxyTrans Pins
-    m_pProxyIn = get_pin( m_pProxyBase.value(), PINDIR_INPUT );
-    m_pProxyOut= get_pin( m_pProxyBase.value(), PINDIR_OUTPUT );
-    
-    m_hr = m_pGraph->Connect(m_pSourceOut.value(),m_pProxyIn.value());
-    
-    m_hr = m_pGraph->Render(m_pProxyOut.value());
-    
-    
-    
-    //Gain additional interfaces
-    m_hr = m_pGraph->QueryInterface(IID_IMediaControl, (void **)&m_pMediaControl);
-    m_hr = m_pGraph->QueryInterface(IID_IMediaEventEx, (void **)&m_pEvent);
-    m_hr = m_pGraph->QueryInterface(IID_IVideoWindow, (void **)&m_pVideoWindow);
-    m_hr = m_pGraph->QueryInterface(IID_IMediaSeeking, (void**)&m_pMediaSeeking);
-    
-    if(!m_pMediaControl.is_valid() ||!m_pEvent.is_valid() ||!m_pVideoWindow.is_valid())
-        throw 1;
-    
-
-
-}//try
-catch (...) 
-{
-    IsValid = false;
-    return;
-}//catch
-
-
-
-
-}//cvcamSourceFile()
-
-
-bool cvcamSourceFile::IsRunning()
-{
-    long evCode;
-    
-    HRESULT hr = m_pEvent->WaitForCompletion(0, &evCode);
-    
-    if(SUCCEEDED(hr))
-    {
-        if(!evCode)
-            return true;
-    }
-    
-    return false;
-}
-
-HRESULT cvcamSourceFile::SetWindow(const HWND window)
-{
-    
-    
-    if(IsRunning())
-        return E_FAIL;
-        
-    m_hWnd = window;
-    
-    if (!m_hWnd) 
-    {
-        m_hWnd = _cvcamCreateWindow();  
-    }
-
-    return S_OK;
-    
-   
-}
-
-HRESULT cvcamSourceFile::Start()
-{
-    try
-    {
-    
-    if (IsRunning())
-    {
-        return NOERROR;
-    }
-
-    //Set up the window
-    
-    m_hr = m_pVideoWindow->put_Owner((OAHWND)m_hWnd);
-    long flags;
-    m_hr = m_pEvent->SetNotifyWindow((OAHWND)m_hWnd, WM_GRAPHNOTIFY, 0);
-    m_hr = m_pEvent->SetNotifyFlags(0x00);
-    m_hr = m_pEvent->CancelDefaultHandling(EC_COMPLETE);
-    m_hr = m_pVideoWindow->get_WindowStyle(&flags);
-    m_hr = m_pVideoWindow->put_WindowStyle(flags & (~WS_CAPTION) | WS_CHILD);
-    m_hr = m_pVideoWindow->put_MessageDrain((OAHWND)m_hWnd);
-
-    // Get the rectangle dimensions and resize the client window
-    m_hr = m_pGraph->QueryInterface(IID_IBasicVideo,(void**)&m_pBasicVideo);
-     
-    long left, top, w, h;
-    m_pBasicVideo->GetSourcePosition(&left, &top,&w,&h);
-    m_pBasicVideo->SetDestinationPosition(0, 0, m_width?m_width:w, m_height?m_height:h);
-    m_pVideoWindow->SetWindowPosition(0,0,m_width?m_width:w,m_height?m_height:h);
-    const char* name = cvGetWindowName(m_hWnd);
-    cvResizeWindow(name, m_width?m_width:w, m_height?m_height:h);
-        
-        
-    
-    // Run the graph.
-    m_hr = m_pMediaControl->Run();
-    
-    return S_OK;
-    
-    }//try
-    catch(HrExeption exp)
-    {
-        return exp.hr;
-    }//catch
-
-}
-
-HRESULT cvcamSourceFile::Stop()
-{
-    if( m_pMediaControl.is_valid() )
-    {
-        OAFilterState fs;
-        m_pMediaControl->GetState(0,&fs);
-        if(fs == State_Stopped)
-            return NOERROR;
-        
-        
-        m_pMediaControl->StopWhenReady();
-        
-        
-        
-        if(m_pVideoWindow.is_valid() )
-        {
-            m_pVideoWindow->put_Visible(OAFALSE);
-            m_pVideoWindow->put_Owner(NULL);
-            m_pVideoWindow->put_MessageDrain(0);
-        }
-    }           
-return S_OK;
-}
-
-HRESULT cvcamSourceFile::Pause()
-{
-    if( m_pMediaControl.is_valid() )
-    {
-        OAFilterState fs;
-        m_pMediaControl->GetState(0,&fs);
-        if(fs == State_Stopped)
-            return S_OK;
-        m_pMediaControl->Pause();
-    }  
-    
-    
-    
-    return S_OK;
-}
-
-HRESULT cvcamSourceFile::Resume()
-{
-    if( m_pMediaControl.is_valid() )
-    {
-        OAFilterState fs;
-        m_pMediaControl->GetState(0,&fs);
-        if(fs == State_Stopped)
-            return S_OK;
-        
-        m_pMediaControl->Run();
-    }
-    
-    
-    return S_OK;
-}
-
-HRESULT cvcamSourceFile::SetCallBack(void (__cdecl *callback)(void *))
-{
-    if(IsRunning())
-        return E_FAIL;
-
-    m_pcallback = callback;
-    
-    m_pProxyTrans->set_transform((void(__cdecl*)(void*))m_pcallback, 0);
-
-    return S_OK;
-}
-
-HRESULT cvcamSourceFile::SetHeight(const int height)
-{
-    m_height = height;
-
-    return S_OK;
-}
-
-HRESULT cvcamSourceFile::SetWidth(const int width)
-{
-    m_width = width;
-
-    return S_OK;
-}
-
-HRESULT cvcamSourceFile::WaitForCompletion()
-{
-    long evCode;
-
-    return m_pEvent->WaitForCompletion(INFINITE, &evCode);
-
-}
-
-HRESULT cvcamSourceFile::SetTimeFormat(const int format)
-{
-    if (format == FRAMES_FORMAT) 
-    {
-        return m_pMediaSeeking->SetTimeFormat(&TIME_FORMAT_FRAME );
-    }else
-    if (format == TIME_FORMAT) 
-        
-    {
-        
-        return m_pMediaSeeking->SetTimeFormat(&TIME_FORMAT_MEDIA_TIME);
-    }else
-        return E_FAIL;
-}
-
-HRESULT cvcamSourceFile::GetDuration(LONGLONG *pDuration)
-{
-    return m_pMediaSeeking->GetDuration(pDuration);
-}
-
-HRESULT cvcamSourceFile::GetCurrentPosition(LONGLONG *pCurrent)
-{
-    
-    return m_pMediaSeeking->GetCurrentPosition(pCurrent);
-}
-
-HRESULT cvcamSourceFile::SetPosition(LONGLONG *pCurrent)
-{
-
-    return m_pMediaSeeking->SetPositions(pCurrent,AM_SEEKING_AbsolutePositioning,NULL,
-                                                            AM_SEEKING_NoPositioning);
-}