一.问题描述,如下:
在视频开发时,在视频播放之前,通常得确定该视频的原始长度和宽度,以这样的长度和宽度,才能得到最佳的视觉效果。
否则,长度或者宽度过大,就会造成失真,过小,则显然不必要。而视频的长度和宽度通常是通过相关算法变换后,存储
于视频的关键帧,因此,需要把它们解析出来,如下图给出了一些视频帧的数据:
比如,在网页YY的开发中,http://yy.com/#31499/81208043,其中的视频播放效果如下:
其中那美女的视频的长度和宽度,就需要解析出来,否则影响播放效果
转载请注明出处:山水间博客,http://blog.csdn.net/linyanwen99/article/details/8260199
二.视频关键帧的解析,即sps-parse.cpp的实现,如下:
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
typedef uint8_t byte, uint8, uint8_bitmask;
typedef uint16_t uint16, uint16_be, uint16_le;
typedef int16_t sint16, sint16_be, sint16_le;
typedef uint32_t uint32, uint32_be, uint32_le;
typedef int32_t sint32, sint32_be, sint32_le;
typedef struct __uint24 {
uint8 b[3];
} uint24, uint24_be, uint24_le;
typedef struct __bit_buffer {
byte * start;
size_t size;
byte * current;
uint8 read_bits;
} bit_buffer;
static void skip_bits(bit_buffer * b