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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/h264_bitstream_parser.h

Issue 1314473008: H264 bitstream parser. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: win64 build warnings Created 5 years, 3 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
(Empty)
1 /*
2 * Copyright (c) 2015 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 #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_BITSTREAM_PARSER_H_
12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_BITSTREAM_PARSER_H_
13
14 #include <stdint.h>
15 #include <stddef.h>
16
17 namespace rtc {
18 class BitBuffer;
19 }
20
21 namespace webrtc {
22
23 class H264BitstreamParser {
noahric 2015/09/09 20:51:42 Comments, pretty please :)
pbos-webrtc 2015/09/21 15:55:32 Done.
24 public:
25 void ParseBitstream(const uint8_t* bitstream, size_t length);
26
27 int GetLastSliceQp() const;
28
29 private:
30 void ParseSlice(const uint8_t* slice, size_t length);
31 bool ParseSpsNalu(const uint8_t* sps_nalu, size_t length);
32 bool ParsePpsNalu(const uint8_t* pps_nalu, size_t length);
33 bool ParseNonParameterSetNalu(const uint8_t* source, size_t source_length);
34
35 // Captured in SPS and used when parsing slice NALUs.
36 // TODO(pbos): Put in struct and reinitialize on every new SPS.
37 uint32_t delta_pic_order_always_zero_flag_ = 0;
38 uint32_t separate_colour_plane_flag_ = 0;
39 uint32_t frame_mbs_only_flag_;
40 uint32_t log2_max_frame_num_minus4_;
41 uint32_t log2_max_pic_order_cnt_lsb_minus4_ = 0;
42 uint32_t pic_order_cnt_type_;
43 // Captured in PPS and used when parsing slice NALUs.
44 // TODO(pbos): Put in struct and reinitialize on every new PPS.
45 bool bottom_field_pic_order_in_frame_present_flag_;
46 uint32_t redundant_pic_cnt_present_flag_;
47
48 // QP calculation values.
49 int pic_init_qp_minus26_;
50 int32_t slice_qp_delta_ = 0;
51 };
52
53 } // namespace webrtc
54
55 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_BITSTREAM_PARSER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698