Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(571)

Side by Side Diff: content/common/gpu/media/exynos_video_decode_accelerator.h

Issue 13890012: Integrate VDA with WebRTC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Create new VDA thread, copy gpu_factories, and add DestructionObserver Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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,
wuchengli 2013/06/10 12:33:43 Increasing the buffer counts has much better decod
Ami GONE FROM CHROMIUM 2013/06/11 23:48:05 These numbers are arbitrary (as l.86 says) so no n
89 kMfcInputBufferMaxSize = 512 * 1024, 89 kMfcInputBufferMaxSize = 512 * 1024,
90 kGscInputBufferCount = 4, 90 kGscInputBufferCount = 8,
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,
Pawel Osciak 2013/06/12 23:38:22 This adds almost 42MB to our memory footprint for
sheu 2013/06/13 01:24:26 I can give you two buffers for free by removing kG
wuchengli 2013/06/13 10:28:07 That's great. Will you do it? Or should I remove i
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698