OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 bool inter_layer_predicted; // Frame is dependent on directly lower spatial | 61 bool inter_layer_predicted; // Frame is dependent on directly lower spatial |
62 // layer frame. | 62 // layer frame. |
63 uint8_t gof_idx; | 63 uint8_t gof_idx; |
64 | 64 |
65 // SS data. | 65 // SS data. |
66 size_t num_spatial_layers; // Always populated. | 66 size_t num_spatial_layers; // Always populated. |
67 bool spatial_layer_resolution_present; | 67 bool spatial_layer_resolution_present; |
68 uint16_t width[kMaxVp9NumberOfSpatialLayers]; | 68 uint16_t width[kMaxVp9NumberOfSpatialLayers]; |
69 uint16_t height[kMaxVp9NumberOfSpatialLayers]; | 69 uint16_t height[kMaxVp9NumberOfSpatialLayers]; |
70 GofInfoVP9 gof; | 70 GofInfoVP9 gof; |
71 | |
72 // Frame reference data. | |
73 uint8_t num_ref_pics; | |
74 uint8_t p_diff[kMaxVp9RefPics]; | |
75 }; | 71 }; |
76 | 72 |
77 struct CodecSpecificInfoGeneric { | 73 struct CodecSpecificInfoGeneric { |
78 uint8_t simulcast_idx; | 74 uint8_t simulcast_idx; |
79 }; | 75 }; |
80 | 76 |
81 struct CodecSpecificInfoH264 {}; | 77 struct CodecSpecificInfoH264 {}; |
82 | 78 |
83 union CodecSpecificInfoUnion { | 79 union CodecSpecificInfoUnion { |
84 CodecSpecificInfoGeneric generic; | 80 CodecSpecificInfoGeneric generic; |
85 CodecSpecificInfoVP8 VP8; | 81 CodecSpecificInfoVP8 VP8; |
86 CodecSpecificInfoVP9 VP9; | 82 CodecSpecificInfoVP9 VP9; |
87 CodecSpecificInfoH264 H264; | 83 CodecSpecificInfoH264 H264; |
88 }; | 84 }; |
89 | 85 |
90 // Note: if any pointers are added to this struct or its sub-structs, it | 86 // Note: if any pointers are added to this struct or its sub-structs, it |
91 // must be fitted with a copy-constructor. This is because it is copied | 87 // must be fitted with a copy-constructor. This is because it is copied |
92 // in the copy-constructor of VCMEncodedFrame. | 88 // in the copy-constructor of VCMEncodedFrame. |
93 struct CodecSpecificInfo | 89 struct CodecSpecificInfo |
94 { | 90 { |
95 VideoCodecType codecType; | 91 VideoCodecType codecType; |
96 CodecSpecificInfoUnion codecSpecific; | 92 CodecSpecificInfoUnion codecSpecific; |
97 }; | 93 }; |
98 | 94 |
99 } // namespace webrtc | 95 } // namespace webrtc |
100 | 96 |
101 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H | 97 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H |
OLD | NEW |