/usr/include/ptclib/pvidfile.h is in libpt2.4.5-dev 2.4.5-2build1.
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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | /*
* pvidfile.cxx
*
* Video file declaration
*
* Portable Windows Library
*
* Copyright (C) 2004 Post Increment
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Portable Windows Library.
*
* The Initial Developer of the Original Code is
* Craig Southeren <craigs@postincrement.com>
*
* All Rights Reserved.
*
* Contributor(s): ______________________________________.
*
* $Revision: 20385 $
* $Author: rjongbloed $
* $Date: 2008-06-04 10:40:38 +0000 (Wed, 04 Jun 2008) $
*/
#ifndef _PVIDFILE
#define _PVIDFILE
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <ptlib.h>
#if P_VIDEO
#if P_VIDFILE
#include <ptlib/videoio.h>
/**
* Abstract class for a file containing a sequence of video frames
*/
class PVideoFile : public PVideoFrameInfo
{
PCLASSINFO(PVideoFile, PVideoFrameInfo);
protected:
PVideoFile();
public:
virtual PBoolean SetFrameSize(
unsigned width, ///< New width of frame
unsigned height ///< New height of frame
);
virtual PBoolean Open(
const PFilePath & name, // Name of file to open.
PFile::OpenMode mode = PFile::ReadWrite, // Mode in which to open the file.
int opts = PFile::ModeDefault // #OpenOptions enum# for open operation.
);
virtual PBoolean IsOpen() const { return file.IsOpen(); }
virtual PBoolean Close() { return file.Close(); }
virtual PBoolean WriteFrame(const void * frame);
virtual PBoolean ReadFrame(void * frame);
virtual off_t GetLength() const;
virtual PBoolean SetLength(
off_t len // New length of file in frames.
);
virtual off_t GetPosition() const;
virtual PBoolean SetPosition(
off_t pos, ///< New position to set.
PFile::FilePositionOrigin origin = PFile::Start ///< Origin for position change.
);
const PFilePath & GetFilePath() const { return file.GetFilePath(); }
bool IsUnknownFrameSize() const { return unknownFrameSize; }
PINDEX GetFrameBytes() const { return frameBytes; }
static PBoolean ExtractHints(const PFilePath & fn, PVideoFrameInfo & info);
protected:
bool unknownFrameSize;
PINDEX frameBytes;
off_t headerOffset;
PFile file;
};
/**
* A file containing a sequence of raw YUV files in planar 4:2:0 format
* Example files can be found at http://media.xiph.org/video/derf/
*/
class PYUVFile : public PVideoFile
{
PCLASSINFO(PYUVFile, PVideoFile);
public:
PYUVFile();
virtual PBoolean Open(
const PFilePath & name, // Name of file to open.
PFile::OpenMode mode = PFile::ReadWrite, // Mode in which to open the file.
int opts = PFile::ModeDefault // #OpenOptions enum# for open operation.
);
virtual PBoolean WriteFrame(const void * frame);
virtual PBoolean ReadFrame(void * frame);
protected:
PBoolean y4mMode;
};
#endif
#endif
#endif // P_VIDFILE
|