This file is indexed.

/usr/include/visp/vpDirectShowSampleGrabberI.h is in libvisp-dev 2.9.0-3+b2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
/****************************************************************************
 *
 * $Id: vpDirectShowSampleGrabberI.h 4574 2014-01-09 08:48:51Z fspindle $
 *
 * This file is part of the ViSP software.
 * Copyright (C) 2005 - 2014 by INRIA. All rights reserved.
 * 
 * This software is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * ("GPL") version 2 as published by the Free Software Foundation.
 * See the file LICENSE.txt at the root directory of this source
 * distribution for additional information about the GNU GPL.
 *
 * For using ViSP with software that can not be combined with the GNU
 * GPL, please contact INRIA about acquiring a ViSP Professional 
 * Edition License.
 *
 * See http://www.irisa.fr/lagadic/visp/visp.html for more information.
 * 
 * This software was developed at:
 * INRIA Rennes - Bretagne Atlantique
 * Campus Universitaire de Beaulieu
 * 35042 Rennes Cedex
 * France
 * http://www.irisa.fr/lagadic
 *
 * If you have questions regarding the use of this file, please contact
 * INRIA at visp@inria.fr
 * 
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 *
 *
 * Description:
 * DirectShow framegrabber callback.
 *
 * Authors:
 * Bruno Renier
 *
 *****************************************************************************/

#ifndef vpDirectShowSampleGrabberI_hh
#define vpDirectShowSampleGrabberI_hh

#ifndef DOXYGEN_SHOULD_SKIP_THIS

#include <visp/vpConfig.h>
#if ( defined(VISP_HAVE_DIRECTSHOW) ) 

#include <qedit.h>
#include <stdio.h>
#include <dshow.h>

#include <visp/vpImage.h>
#include <visp/vpRGBa.h>

/*!
	This class is needed in order to implement a callback function
	associated with the grabber
*/
class VISP_EXPORT vpDirectShowSampleGrabberI : public ISampleGrabberCB
{
	vpDirectShowSampleGrabberI();
	virtual ~vpDirectShowSampleGrabberI();

	//needed by the interface
	STDMETHODIMP_(ULONG) AddRef() { return 1; }
    STDMETHODIMP_(ULONG) Release() { return 2; }
 
    STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject);
 
	//not implemented
    STDMETHODIMP SampleCB(double Time, IMediaSample *pSample)
    {
		return E_NOTIMPL;
    }
 
	//our callback function
    STDMETHODIMP BufferCB(double Time, BYTE *pBuffer, long BufferLen);

private:
	//the currently connected media type
	AM_MEDIA_TYPE connectedMediaType;

	//true if the source media type is not a standard one
	bool specialMediaType;
	//true if the image needs to be flipped (only for special media types)
	bool invertedSource;

	//booleans used to signal a demand from acquire
	bool acqGrayDemand;
	bool acqRGBaDemand;

	//pointer on the image to fill during the next callback if there has been a demand
	vpImage<vpRGBa> * rgbaIm;
	vpImage<unsigned char> * grayIm;

	//semaphore used to synchronize the productor (callback) and the consumer (acquire)
	HANDLE copySem;

	friend class vpDirectShowGrabberImpl;
};

#endif
#endif
#endif