从264码流中获取图像的宽高,代码如下,注意代码文件应该为cpp文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <assert.h>
typedef struct GetBitContext {
const uint8_t *buffer, *buffer_end;
int index;
int size_in_bits;
int size_in_bits_plus8;
} GetBitContext;
typedef struct H264PARSER{
GetBitContext gb;
uint8_t *rbsp_buf;
int rbsp_size;
}H264PARSER;
unsigned int ReadBit(GetBitContext *gb)
{
uint8_t nValue;
int nIndex, nOffset;
assert(gb->index <= gb->size_in_bits);
nIndex = gb->index / 8;
nOffset = gb->index % 8 + 1;
nValue = *(gb->buffer + nIndex);
gb->index++;
return (nValue >> (8 - nOffset) ) & 0x01;
}
unsigned int ReadBits(GetBitContext *gb, int n)
{
int r = 0, i = 0;
for( i = 0; i < n; i++){
r |= ( ReadBit(gb) << (n - i - 1) );
}
return r;
}
unsigned int ReadUE(GetBitContext *gb)