Index: media/video/h264_poc.cc |
diff --git a/media/video/h264_poc.cc b/media/video/h264_poc.cc |
index c643ed73bdf7bc14e96267a6d5f591e3538ec057..e5796be458c7d813163e0dde2a2a49286d957d4f 100644 |
--- a/media/video/h264_poc.cc |
+++ b/media/video/h264_poc.cc |
@@ -57,15 +57,15 @@ void H264POC::Reset() { |
pending_mmco5_ = false; |
} |
-bool H264POC::ComputePicOrderCnt( |
+base::Optional<int32_t> H264POC::ComputePicOrderCnt( |
const H264SPS* sps, |
- const H264SliceHeader& slice_hdr, |
- int32_t *pic_order_cnt) { |
+ const H264SliceHeader& slice_hdr) { |
if (slice_hdr.field_pic_flag) { |
DLOG(ERROR) << "Interlaced frames are not supported"; |
- return false; |
+ return base::nullopt; |
} |
+ int32_t pic_order_cnt = 0; |
bool mmco5 = HasMMCO5(slice_hdr); |
int32_t max_frame_num = 1 << (sps->log2_max_frame_num_minus4 + 4); |
int32_t max_pic_order_cnt_lsb = |
@@ -117,9 +117,9 @@ bool H264POC::ComputePicOrderCnt( |
// change to 0 after decoding; we change it immediately and set the |
// |pending_mmco5_| flag. |
if (mmco5) |
- *pic_order_cnt = 0; |
+ pic_order_cnt = 0; |
else |
- *pic_order_cnt = std::min(top_foc, bottom_foc); |
+ pic_order_cnt = std::min(top_foc, bottom_foc); |
// Store state. |
pending_mmco5_ = mmco5; |
@@ -166,7 +166,7 @@ bool H264POC::ComputePicOrderCnt( |
// Moved inside 8-9 to avoid division when this check is not done. |
if (sps->num_ref_frames_in_pic_order_cnt_cycle == 0) { |
DLOG(ERROR) << "Invalid num_ref_frames_in_pic_order_cnt_cycle"; |
- return false; |
+ return base::nullopt; |
} |
// H264Parser checks that num_ref_frames_in_pic_order_cnt_cycle < 255. |
@@ -192,9 +192,9 @@ bool H264POC::ComputePicOrderCnt( |
// Compute POC. MMCO5 handling is the same as |pic_order_cnt_type| == 0. |
if (mmco5) |
- *pic_order_cnt = 0; |
+ pic_order_cnt = 0; |
else |
- *pic_order_cnt = std::min(top_foc, bottom_foc); |
+ pic_order_cnt = std::min(top_foc, bottom_foc); |
// Store state. |
pending_mmco5_ = mmco5; |
@@ -229,9 +229,9 @@ bool H264POC::ComputePicOrderCnt( |
// Compute POC. MMCO5 handling is the same as |pic_order_cnt_type| == 0. |
if (mmco5) |
- *pic_order_cnt = 0; |
+ pic_order_cnt = 0; |
else |
- *pic_order_cnt = temp_pic_order_count; |
+ pic_order_cnt = temp_pic_order_count; |
// Store state. |
pending_mmco5_ = mmco5; |
@@ -246,10 +246,10 @@ bool H264POC::ComputePicOrderCnt( |
default: |
DLOG(ERROR) << "Invalid pic_order_cnt_type: " << sps->pic_order_cnt_type; |
- return false; |
+ return base::nullopt; |
} |
- return true; |
+ return pic_order_cnt; |
} |
} // namespace media |