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

Side by Side Diff: webrtc/modules/video_coding/codecs/interface/video_codec_interface.h

Issue 2727633002: Resolve inconsistent definition of video's webrtc::CodecSpecificInfo. (Closed)
Patch Set: Resolve inconsistent definition of video's webrtc::CodecSpecificInfo. Created 3 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
11 #ifndef WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H_ 11 #ifndef WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H_
12 #define WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H_ 12 #define WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H_
13 13
14 #pragma message("WARNING: video_coding/codecs/interface is DEPRECATED; " 14 #pragma message("WARNING: video_coding/codecs/interface is DEPRECATED; "
15 "use video_coding/include") 15 "use video_coding/include")
16 #include <vector>
17 16
18 #include "webrtc/api/video/video_frame.h" 17 #include "webrtc/modules/video_coding/include/video_codec_interface.h"
19 #include "webrtc/common_types.h"
20 #include "webrtc/modules/include/module_common_types.h"
21 #include "webrtc/modules/video_coding/include/video_error_codes.h"
22 #include "webrtc/typedefs.h"
23 #include "webrtc/video_decoder.h"
24 #include "webrtc/video_encoder.h"
25
26 namespace webrtc {
27
28 class RTPFragmentationHeader; // forward declaration
29
30 // Note: if any pointers are added to this struct, it must be fitted
31 // with a copy-constructor. See below.
32 struct CodecSpecificInfoVP8 {
33 bool hasReceivedSLI;
34 uint8_t pictureIdSLI;
35 bool hasReceivedRPSI;
36 uint64_t pictureIdRPSI;
37 int16_t pictureId; // Negative value to skip pictureId.
38 bool nonReference;
39 uint8_t simulcastIdx;
40 uint8_t temporalIdx;
41 bool layerSync;
42 int tl0PicIdx; // Negative value to skip tl0PicIdx.
43 int8_t keyIdx; // Negative value to skip keyIdx.
44 };
45
46 struct CodecSpecificInfoVP9 {
47 bool has_received_sli;
48 uint8_t picture_id_sli;
49 bool has_received_rpsi;
50 uint64_t picture_id_rpsi;
51 int16_t picture_id; // Negative value to skip pictureId.
52
53 bool inter_pic_predicted; // This layer frame is dependent on previously
54 // coded frame(s).
55 bool flexible_mode;
56 bool ss_data_available;
57
58 int tl0_pic_idx; // Negative value to skip tl0PicIdx.
59 uint8_t temporal_idx;
60 uint8_t spatial_idx;
61 bool temporal_up_switch;
62 bool inter_layer_predicted; // Frame is dependent on directly lower spatial
63 // layer frame.
64 uint8_t gof_idx;
65
66 // SS data.
67 size_t num_spatial_layers; // Always populated.
68 bool spatial_layer_resolution_present;
69 uint16_t width[kMaxVp9NumberOfSpatialLayers];
70 uint16_t height[kMaxVp9NumberOfSpatialLayers];
71 GofInfoVP9 gof;
72
73 // Frame reference data.
74 uint8_t num_ref_pics;
75 uint8_t p_diff[kMaxVp9RefPics];
76 };
77
78 struct CodecSpecificInfoGeneric {
79 uint8_t simulcast_idx;
80 };
81
82 struct CodecSpecificInfoH264 {};
83
84 union CodecSpecificInfoUnion {
85 CodecSpecificInfoGeneric generic;
86 CodecSpecificInfoVP8 VP8;
87 CodecSpecificInfoVP9 VP9;
88 CodecSpecificInfoH264 H264;
89 };
90
91 // Note: if any pointers are added to this struct or its sub-structs, it
92 // must be fitted with a copy-constructor. This is because it is copied
93 // in the copy-constructor of VCMEncodedFrame.
94 struct CodecSpecificInfo {
95 VideoCodecType codecType;
96 CodecSpecificInfoUnion codecSpecific;
97 };
98
99 } // namespace webrtc
100 18
101 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H_ 19 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H_
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698