mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-30 07:26:53 +08:00
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
#ifndef MEDIA_VIDEO_H264_POC_H_
|
||
|
#define MEDIA_VIDEO_H264_POC_H_
|
||
|
|
||
|
#include <stdint.h>
|
||
|
#include "macros.h"
|
||
|
|
||
|
using namespace std;
|
||
|
|
||
|
namespace media {
|
||
|
|
||
|
struct H264SPS;
|
||
|
struct H264SliceHeader;
|
||
|
|
||
|
class MEDIA_EXPORT H264POC {
|
||
|
public:
|
||
|
H264POC();
|
||
|
~H264POC();
|
||
|
|
||
|
// Compute the picture order count for a slice, storing the result into
|
||
|
// |*pic_order_cnt|.
|
||
|
bool ComputePicOrderCnt(
|
||
|
const H264SPS* sps,
|
||
|
const H264SliceHeader& slice_hdr,
|
||
|
int32_t* pic_order_cnt);
|
||
|
|
||
|
// Reset computation state. It's best (although not strictly required) to call
|
||
|
// this after a seek.
|
||
|
void Reset();
|
||
|
|
||
|
private:
|
||
|
int32_t ref_pic_order_cnt_msb_;
|
||
|
int32_t ref_pic_order_cnt_lsb_;
|
||
|
int32_t prev_frame_num_;
|
||
|
int32_t prev_frame_num_offset_;
|
||
|
|
||
|
DISALLOW_COPY_AND_ASSIGN(H264POC);
|
||
|
};
|
||
|
|
||
|
} // namespace media
|
||
|
|
||
|
#endif // MEDIA_VIDEO_H264_POC_H_
|