OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file contains an implementation of VideoDecoderAccelerator | 5 // This file contains an implementation of VideoDecoderAccelerator |
6 // that utilizes the hardware video decoder present on the Exynos SoC. | 6 // that utilizes the hardware video decoder present on the Exynos SoC. |
7 | 7 |
8 #ifndef CONTENT_COMMON_GPU_MEDIA_EXYNOS_VIDEO_DECODE_ACCELERATOR_H_ | 8 #ifndef CONTENT_COMMON_GPU_MEDIA_EXYNOS_VIDEO_DECODE_ACCELERATOR_H_ |
9 #define CONTENT_COMMON_GPU_MEDIA_EXYNOS_VIDEO_DECODE_ACCELERATOR_H_ | 9 #define CONTENT_COMMON_GPU_MEDIA_EXYNOS_VIDEO_DECODE_ACCELERATOR_H_ |
10 | 10 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
78 // Do any necessary initialization before the sandbox is enabled. | 78 // Do any necessary initialization before the sandbox is enabled. |
79 static void PreSandboxInitialization(); | 79 static void PreSandboxInitialization(); |
80 | 80 |
81 // Lazily initialize static data after sandbox is enabled. Return false on | 81 // Lazily initialize static data after sandbox is enabled. Return false on |
82 // init failure. | 82 // init failure. |
83 static bool PostSandboxInitialization(); | 83 static bool PostSandboxInitialization(); |
84 | 84 |
85 private: | 85 private: |
86 // These are rather subjectively tuned. | 86 // These are rather subjectively tuned. |
87 enum { | 87 enum { |
88 kMfcInputBufferCount = 8, | 88 kMfcInputBufferCount = 12, |
sheu
2013/06/14 04:15:37
Each one of these are 512 kB, so it's not so bad t
| |
89 kMfcInputBufferMaxSize = 512 * 1024, | 89 kMfcInputBufferMaxSize = 512 * 1024, |
90 kGscInputBufferCount = 4, | 90 kGscInputBufferCount = 8, |
sheu
2013/06/14 04:15:37
These buffers are basically placeholders for MFC b
| |
91 // Number of output buffers to use for each VDA stage above what's required | 91 // Number of output buffers to use for each VDA stage above what's required |
92 // by the decoder (e.g. DPB size, in H264). | 92 // by the decoder (e.g. DPB size, in H264). |
93 kDpbOutputBufferExtraCount = 3, | 93 kDpbOutputBufferExtraCount = 8, |
sheu
2013/06/14 04:15:37
The revert of the tearing hack landed. Try the pe
wuchengli
2013/06/18 16:11:23
After rebasing chrome and chrome OS source, the pe
| |
94 // We're continuing to have issues with synchronization between Mali 3D and | 94 // We're continuing to have issues with synchronization between Mali 3D and |
95 // Exynos video decode, so we buffer this many extra GSC output buffers in | 95 // Exynos video decode, so we buffer this many extra GSC output buffers in |
96 // the GSC free output buffers queue, to add a safety margin. | 96 // the GSC free output buffers queue, to add a safety margin. |
97 // Must be lesser than or equal to kDpbOutputBufferExtraCount. | 97 // Must be lesser than or equal to kDpbOutputBufferExtraCount. |
98 // TODO(sheu): remove this hack (http://crbug.com/225563). | 98 // TODO(sheu): remove this hack (http://crbug.com/225563). |
99 kGscOutputBufferExtraForSyncCount = 2, | 99 kGscOutputBufferExtraForSyncCount = 2, |
100 }; | 100 }; |
101 | 101 |
102 // Internal state of the decoder. | 102 // Internal state of the decoder. |
103 enum State { | 103 enum State { |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
427 | 427 |
428 // The codec we'll be decoding for. | 428 // The codec we'll be decoding for. |
429 media::VideoCodecProfile video_profile_; | 429 media::VideoCodecProfile video_profile_; |
430 | 430 |
431 DISALLOW_COPY_AND_ASSIGN(ExynosVideoDecodeAccelerator); | 431 DISALLOW_COPY_AND_ASSIGN(ExynosVideoDecodeAccelerator); |
432 }; | 432 }; |
433 | 433 |
434 } // namespace content | 434 } // namespace content |
435 | 435 |
436 #endif // CONTENT_COMMON_GPU_MEDIA_EXYNOS_VIDEO_DECODE_ACCELERATOR_H_ | 436 #endif // CONTENT_COMMON_GPU_MEDIA_EXYNOS_VIDEO_DECODE_ACCELERATOR_H_ |
OLD | NEW |