Line data Source code
1 : /*
2 : * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 : *
4 : * Use of this source code is governed by a BSD-style license
5 : * that can be found in the LICENSE file in the root of the source
6 : * tree. An additional intellectual property rights grant can be found
7 : * in the file PATENTS. All contributing project authors may
8 : * be found in the AUTHORS file in the root of the source tree.
9 : */
10 :
11 : #include "webrtc/video_frame.h"
12 :
13 : #include <string.h>
14 :
15 : #include <algorithm> // swap
16 :
17 : #include "webrtc/base/bind.h"
18 : #include "webrtc/base/checks.h"
19 :
20 : namespace webrtc {
21 :
22 : // FFmpeg's decoder, used by H264DecoderImpl, requires up to 8 bytes padding due
23 : // to optimized bitstream readers. See avcodec_decode_video2.
24 : const size_t EncodedImage::kBufferPaddingBytesH264 = 8;
25 :
26 0 : size_t EncodedImage::GetBufferPaddingBytes(VideoCodecType codec_type) {
27 0 : switch (codec_type) {
28 : case kVideoCodecVP8:
29 : case kVideoCodecVP9:
30 0 : return 0;
31 : case kVideoCodecH264:
32 0 : return kBufferPaddingBytesH264;
33 : case kVideoCodecI420:
34 : case kVideoCodecRED:
35 : case kVideoCodecULPFEC:
36 : case kVideoCodecFlexfec:
37 : case kVideoCodecGeneric:
38 : case kVideoCodecUnknown:
39 0 : return 0;
40 : }
41 0 : RTC_NOTREACHED();
42 0 : return 0;
43 : }
44 :
45 : } // namespace webrtc
|