| Index: content/common/gpu/media/vt_video_decode_accelerator.h
|
| diff --git a/content/common/gpu/media/vt_video_decode_accelerator.h b/content/common/gpu/media/vt_video_decode_accelerator.h
|
| index 2a08421b51b1d5eca59c795662352958e8588d46..327ab590e2b74d134d94ac61862a5596dea2c49d 100644
|
| --- a/content/common/gpu/media/vt_video_decode_accelerator.h
|
| +++ b/content/common/gpu/media/vt_video_decode_accelerator.h
|
| @@ -16,9 +16,9 @@
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/threading/thread.h"
|
| #include "base/threading/thread_checker.h"
|
| -#include "content/common/gpu/media/h264_dpb.h"
|
| #include "content/common/gpu/media/vt.h"
|
| #include "media/filters/h264_parser.h"
|
| +#include "media/video/h264_poc.h"
|
| #include "media/video/video_decode_accelerator.h"
|
| #include "ui/gfx/geometry/size.h"
|
| #include "ui/gl/gl_context_cgl.h"
|
| @@ -77,9 +77,12 @@ class VTVideoDecodeAccelerator : public media::VideoDecodeAccelerator {
|
| int32_t bitstream_id;
|
|
|
| // Relative presentation order of this frame (see AVC spec).
|
| - // TODO(sandersd): Reorder window size.
|
| int32_t pic_order_cnt;
|
|
|
| + // Nnumber of frames after this one in decode order that can appear before
|
| + // before it in presentation order.
|
| + int32_t reorder_window;
|
| +
|
| // Size of the decoded frame.
|
| // TODO(sandersd): visible_rect.
|
| gfx::Size coded_size;
|
| @@ -100,6 +103,13 @@ class VTVideoDecodeAccelerator : public media::VideoDecodeAccelerator {
|
| // Methods for interacting with VideoToolbox. Run on |decoder_thread_|.
|
| //
|
|
|
| + // Compute the |pic_order_cnt| for a frame. Returns true or calls
|
| + // NotifyError() before returning false.
|
| + bool ComputePicOrderCnt(
|
| + const media::H264SPS* sps,
|
| + const media::H264SliceHeader& slice_hdr,
|
| + Frame* frame);
|
| +
|
| // Set up VideoToolbox using the current SPS and PPS. Returns true or calls
|
| // NotifyError() before returning false.
|
| bool ConfigureDecoder();
|
| @@ -198,6 +208,7 @@ class VTVideoDecodeAccelerator : public media::VideoDecodeAccelerator {
|
| std::vector<uint8_t> last_spsext_;
|
| int last_pps_id_;
|
| std::vector<uint8_t> last_pps_;
|
| + media::H264POC poc_;
|
|
|
| //
|
| // Shared state (set up and torn down on GPU thread).
|
|
|