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.
tdemultimedia/mpeglib/lib/mpegplay/mpegVideoHeader.h

84 lines
2.5 KiB

/*
stores sequence header info, for reinit of stream
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 __MPEGVIDEOHEADER_H
#define __MPEGVIDEOHEADER_H
/**
Some vcd do only have one sequence header for the whole
cd.
This means we must store this info even after a seek
which usually destroy the video stream object.
We then can re-init the video object with the values
we store here.
Here we have the "header" for an mpeg video stream.
*/
class MpegVideoHeader {
unsigned int h_size; /* Horiz. size in pixels. */
unsigned int v_size; /* Vert. size in pixels. */
int mb_height; /* Vert. size in mblocks. */
int mb_width; /* Horiz. size in mblocks. */
int mb_size; /* mb_height*mb_width-1 */
unsigned char aspect_ratio; /* Code for aspect ratio. */
unsigned int bit_rate; /* Bit rate. */
unsigned int vbv_buffer_size; /* Minimum buffer size. */
int const_param_flag; /* Contrained parameter flag. */
float picture_rate; /* Parse off picture rate code*/
unsigned int intra_quant_matrix[8][8]; /* Quantization matrix for
intracoded frames. */
unsigned int non_intra_quant_matrix[8][8]; /* Quanitization matrix for
non intracoded frames. */
class MpegExtension* extension;
public:
MpegVideoHeader();
~MpegVideoHeader();
int parseSeq(class MpegVideoStream* mpegVideoStream);
void copyTo(MpegVideoHeader* dest);
void print(char* description);
void init_quanttables();
inline int getMB_Height() { return mb_height;}
inline int getMB_Size() { return mb_size;}
inline int getMB_Width() { return mb_width;}
inline float getPictureRate() { return picture_rate ;}
double getPictureTime();
inline unsigned int* getIntra_quant_matrix() {
// printf("getI:%p\n",intra_quant_matrix[0]);
return intra_quant_matrix[0]; }
inline unsigned int* getNon_intra_quant_matrix() {
// printf("getN:%p\n",non_intra_quant_matrix[0]);
return non_intra_quant_matrix[0]; }
private:
void init();
};
#endif