OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/gpu/vt_video_decode_accelerator_mac.h" | 5 #include "media/gpu/vt_video_decode_accelerator_mac.h" |
6 | 6 |
7 #include <CoreVideo/CoreVideo.h> | 7 #include <CoreVideo/CoreVideo.h> |
8 #include <OpenGL/CGLIOSurface.h> | 8 #include <OpenGL/CGLIOSurface.h> |
9 #include <OpenGL/gl.h> | 9 #include <OpenGL/gl.h> |
10 #include <stddef.h> | 10 #include <stddef.h> |
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 | 615 |
616 // Record the configuration. | 616 // Record the configuration. |
617 // TODO(sandersd): Ideally this would be skipped if we know there | 617 // TODO(sandersd): Ideally this would be skipped if we know there |
618 // have not been any parameter sets since the last frame. | 618 // have not been any parameter sets since the last frame. |
619 active_sps_ = last_sps_; | 619 active_sps_ = last_sps_; |
620 active_spsext_ = last_spsext_; | 620 active_spsext_ = last_spsext_; |
621 active_pps_ = last_pps_; | 621 active_pps_ = last_pps_; |
622 | 622 |
623 // Compute and store frame properties. |image_size| gets filled in | 623 // Compute and store frame properties. |image_size| gets filled in |
624 // later, since it comes from the decoder configuration. | 624 // later, since it comes from the decoder configuration. |
625 int32_t pic_order_cnt; | 625 base::Optional<int32_t> pic_order_cnt = |
626 if (!poc_.ComputePicOrderCnt(sps, slice_hdr, &pic_order_cnt)) { | 626 poc_.ComputePicOrderCnt(sps, slice_hdr); |
| 627 if (!pic_order_cnt.has_value()) { |
627 DLOG(ERROR) << "Unable to compute POC"; | 628 DLOG(ERROR) << "Unable to compute POC"; |
628 NotifyError(UNREADABLE_INPUT, SFT_INVALID_STREAM); | 629 NotifyError(UNREADABLE_INPUT, SFT_INVALID_STREAM); |
629 return; | 630 return; |
630 } | 631 } |
631 | 632 |
632 frame->has_slice = true; | 633 frame->has_slice = true; |
633 frame->is_idr = nalu.nal_unit_type == media::H264NALU::kIDRSlice; | 634 frame->is_idr = nalu.nal_unit_type == media::H264NALU::kIDRSlice; |
634 frame->has_mmco5 = poc_.IsPendingMMCO5(); | 635 frame->has_mmco5 = poc_.IsPendingMMCO5(); |
635 frame->pic_order_cnt = pic_order_cnt; | 636 frame->pic_order_cnt = *pic_order_cnt; |
636 frame->reorder_window = ComputeReorderWindow(sps); | 637 frame->reorder_window = ComputeReorderWindow(sps); |
637 } | 638 } |
638 | 639 |
639 // Intentional fallthrough. | 640 // Intentional fallthrough. |
640 default: | 641 default: |
641 nalus.push_back(nalu); | 642 nalus.push_back(nalu); |
642 data_size += kNALUHeaderLength + nalu.size; | 643 data_size += kNALUHeaderLength + nalu.size; |
643 break; | 644 break; |
644 } | 645 } |
645 } | 646 } |
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1226 SupportedProfile profile; | 1227 SupportedProfile profile; |
1227 profile.profile = supported_profile; | 1228 profile.profile = supported_profile; |
1228 profile.min_resolution.SetSize(16, 16); | 1229 profile.min_resolution.SetSize(16, 16); |
1229 profile.max_resolution.SetSize(4096, 2160); | 1230 profile.max_resolution.SetSize(4096, 2160); |
1230 profiles.push_back(profile); | 1231 profiles.push_back(profile); |
1231 } | 1232 } |
1232 return profiles; | 1233 return profiles; |
1233 } | 1234 } |
1234 | 1235 |
1235 } // namespace media | 1236 } // namespace media |
OLD | NEW |