You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.4 KiB
111 lines
2.4 KiB
/*
|
|
describes a picture in yuv format
|
|
Copyright (C) 2000 Martin Vogt
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU Library General Public License as published by
|
|
the Free Software Foundation.
|
|
|
|
For more information look at the file COPYRIGHT in this package
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __YUVPICTURE_H
|
|
#define __YUVPICTURE_H
|
|
|
|
|
|
extern "C" {
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
}
|
|
|
|
#include "../timeStamp.h"
|
|
|
|
#define PICTURE_NO_TYPE -1
|
|
|
|
#define PICTURE_YUVMODE_CR_CB 1
|
|
#define PICTURE_YUVMODE_CB_CR 2
|
|
#define PICTURE_RGB 3
|
|
#define PICTURE_RGB_FLIPPED 4
|
|
#define PICTURE_YUVMODE_YUY2 5
|
|
#define PICTURE_YUVMODE_UYVY 6
|
|
|
|
class YUVPicture {
|
|
|
|
unsigned char* imagePtr; /* Pointer to complete yuv image */
|
|
|
|
unsigned char* luminance; /* Luminance plane. */
|
|
unsigned char* Cr; /* Cr plane. */
|
|
unsigned char* Cb; /* Cb plane. */
|
|
|
|
|
|
int width;
|
|
int height;
|
|
|
|
float picPerSec;
|
|
int lumLength;
|
|
int colorLength;
|
|
int imageSize;
|
|
|
|
TimeStamp* startTimeStamp;
|
|
TimeStamp* waitTime;
|
|
TimeStamp* earlyTime;
|
|
|
|
int mpegType;
|
|
int instance;
|
|
int imageType;
|
|
|
|
unsigned char* image_mode; /* start Pointer to complete image */
|
|
unsigned char* luminance_mode; /* Luminace plane. */
|
|
unsigned char* Cr_mode; /* Cr plane. */
|
|
unsigned char* Cb_mode; /* Cb plane. */
|
|
|
|
public:
|
|
YUVPicture(int width,int height);
|
|
~YUVPicture();
|
|
|
|
//
|
|
// For YUV Images
|
|
//
|
|
inline unsigned char* getLuminancePtr() {return luminance_mode;}
|
|
inline unsigned char* getCrPtr() {return Cr_mode;}
|
|
inline unsigned char* getCbPtr() {return Cb_mode;}
|
|
|
|
// general
|
|
inline unsigned char* getImagePtr() {return imagePtr;}
|
|
|
|
// use these to swap the image Types
|
|
inline int getImageType() { return imageType; }
|
|
void setImageType(int mode);
|
|
|
|
|
|
int getHeight();
|
|
int getWidth();
|
|
|
|
int getLumLength();
|
|
int getColorLength();
|
|
int getImageSize();
|
|
|
|
void setPicturePerSecond(float val);
|
|
float getPicturePerSecond();
|
|
|
|
|
|
void setStartTimeStamp(TimeStamp* timeStamp);
|
|
TimeStamp* getStartTimeStamp();
|
|
|
|
void setWaitTime(TimeStamp* waitTime);
|
|
TimeStamp* getWaitTime();
|
|
|
|
void setEarlyTime(TimeStamp* earlyTime);
|
|
TimeStamp* getEarlyTime();
|
|
|
|
void setMpegPictureType(int type);
|
|
int getMpegPictureType();
|
|
|
|
|
|
void print(const char* title);
|
|
};
|
|
#endif
|