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.
74 lines
1.3 KiB
74 lines
1.3 KiB
15 years ago
|
/*
|
||
|
reads/parse slice infos
|
||
|
Copyright (C) 1999 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
|
||
|
|
||
|
*/
|
||
|
|
||
|
|
||
|
#include "slice.h"
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
Slice::Slice() {
|
||
|
mpegExtension=new MpegExtension();
|
||
|
}
|
||
|
|
||
|
|
||
|
Slice::~Slice() {
|
||
|
delete mpegExtension;
|
||
|
|
||
|
}
|
||
|
|
||
|
unsigned int Slice::getVertPos() {
|
||
|
return vert_pos;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
void Slice::setQuantScale(unsigned int quant_scale) {
|
||
|
this->quant_scale=quant_scale;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
*--------------------------------------------------------------
|
||
|
*
|
||
|
* ParseSlice --
|
||
|
*
|
||
|
* Parses off slice header.
|
||
|
*
|
||
|
* Results:
|
||
|
* Values found in slice header put into video stream structure.
|
||
|
*
|
||
|
* Side effects:
|
||
|
* Bit stream irreversibly parsed.
|
||
|
*
|
||
|
*--------------------------------------------------------------
|
||
|
*/
|
||
|
int Slice::parseSlice(MpegVideoStream* mpegVideoStream) {
|
||
|
|
||
|
/* Flush slice start code. */
|
||
|
mpegVideoStream->flushBits(24);
|
||
|
|
||
|
/* Parse off slice vertical position. */
|
||
|
/* its the "slice number" */
|
||
|
vert_pos=mpegVideoStream->getBits(8);
|
||
|
|
||
|
/* Parse off quantization scale. */
|
||
|
quant_scale=mpegVideoStream->getBits(5);
|
||
|
|
||
|
/* Parse off extra bit slice info. */
|
||
|
mpegExtension->processExtra_bit_info(mpegVideoStream);
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
|
||
|
|