| Index: media/video/h264_poc.h
|
| diff --git a/media/video/h264_poc.h b/media/video/h264_poc.h
|
| index a2319cacd005b2cc6f775a1124973304a2161f31..90d0eb904cf54b71cc85999cce42867b5501cee4 100644
|
| --- a/media/video/h264_poc.h
|
| +++ b/media/video/h264_poc.h
|
| @@ -21,11 +21,21 @@ class MEDIA_EXPORT H264POC {
|
|
|
| // Compute the picture order count for a slice, storing the result into
|
| // |*pic_order_cnt|.
|
| + // TODO(sandersd): Switch to a base::Optional<int32_t> return type.
|
| bool ComputePicOrderCnt(
|
| const H264SPS* sps,
|
| const H264SliceHeader& slice_hdr,
|
| int32_t* pic_order_cnt);
|
|
|
| + // As specified, the POC of a frame with MMCO5 changes (to zero) after
|
| + // decoding. We instead return 0 immediately, and flag that this has occurred
|
| + // by returning true here until ComputePicOrderCnt() is called again.
|
| + //
|
| + // Frames with MMCO5 do not reorder relative to frames earlier in decode
|
| + // order, but may reorder relative to frames later in decode order (just like
|
| + // IDRs).
|
| + bool IsPendingMMCO5() { return pending_mmco5_; }
|
| +
|
| // Reset computation state. It's best (although not strictly required) to call
|
| // this after a seek.
|
| void Reset();
|
| @@ -35,6 +45,7 @@ class MEDIA_EXPORT H264POC {
|
| int32_t ref_pic_order_cnt_lsb_;
|
| int32_t prev_frame_num_;
|
| int32_t prev_frame_num_offset_;
|
| + bool pending_mmco5_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(H264POC);
|
| };
|
|
|