| // 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_ |
| |
| 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_ |