Thu, 15 Jan 2015 15:59:08 +0100
Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef __CCSDP_RTCP_FB_H__
6 #define __CCSDP_RTCP_FB_H__
8 /* a=rtcp-fb enumerations */
10 typedef enum {
11 SDP_RTCP_FB_ANY = -1,
12 SDP_RTCP_FB_ACK = 0,
13 SDP_RTCP_FB_CCM,
14 SDP_RTCP_FB_NACK,
15 SDP_RTCP_FB_TRR_INT,
16 SDP_MAX_RTCP_FB,
17 SDP_RTCP_FB_UNKNOWN
18 } sdp_rtcp_fb_type_e;
20 typedef enum {
21 SDP_RTCP_FB_NACK_NOT_FOUND = -1,
22 SDP_RTCP_FB_NACK_BASIC = 0,
23 SDP_RTCP_FB_NACK_SLI,
24 SDP_RTCP_FB_NACK_PLI,
25 SDP_RTCP_FB_NACK_RPSI,
26 SDP_RTCP_FB_NACK_APP,
27 SDP_RTCP_FB_NACK_RAI,
28 SDP_RTCP_FB_NACK_TLLEI,
29 SDP_RTCP_FB_NACK_PSLEI,
30 SDP_RTCP_FB_NACK_ECN,
31 SDP_MAX_RTCP_FB_NACK,
32 SDP_RTCP_FB_NACK_UNKNOWN
33 } sdp_rtcp_fb_nack_type_e;
35 typedef enum {
36 SDP_RTCP_FB_ACK_NOT_FOUND = -1,
37 SDP_RTCP_FB_ACK_RPSI = 0,
38 SDP_RTCP_FB_ACK_APP,
39 SDP_MAX_RTCP_FB_ACK,
40 SDP_RTCP_FB_ACK_UNKNOWN
41 } sdp_rtcp_fb_ack_type_e;
43 typedef enum {
44 SDP_RTCP_FB_CCM_NOT_FOUND = -1,
45 SDP_RTCP_FB_CCM_FIR = 0,
46 SDP_RTCP_FB_CCM_TMMBR,
47 SDP_RTCP_FB_CCM_TSTR,
48 SDP_RTCP_FB_CCM_VBCM,
49 SDP_MAX_RTCP_FB_CCM,
50 SDP_RTCP_FB_CCM_UNKNOWN
51 } sdp_rtcp_fb_ccm_type_e;
53 #ifdef __cplusplus
54 static_assert(SDP_MAX_RTCP_FB_NACK +
55 SDP_MAX_RTCP_FB_ACK +
56 SDP_MAX_RTCP_FB_CCM < 32,
57 "rtcp-fb Bitmap is larger than 32 bits");
58 #endif
60 static int32_t
61 sdp_rtcp_fb_nack_to_bitmap(sdp_rtcp_fb_nack_type_e type)
62 {
63 int bitnumber = type;
65 if (type < 0 || type >= SDP_MAX_RTCP_FB_NACK) {
66 return 0;
67 }
69 return (1 << bitnumber);
70 }
72 static int32_t
73 sdp_rtcp_fb_ack_to_bitmap(sdp_rtcp_fb_ack_type_e type)
74 {
75 int bitnumber = type + SDP_MAX_RTCP_FB_NACK;
77 if (type < 0 || type >= SDP_MAX_RTCP_FB_ACK) {
78 return 0;
79 }
81 return (1 << bitnumber);
82 }
84 static int32_t
85 sdp_rtcp_fb_ccm_to_bitmap(sdp_rtcp_fb_ccm_type_e type)
86 {
87 int bitnumber = type + SDP_MAX_RTCP_FB_NACK + SDP_MAX_RTCP_FB_ACK;
89 if (type < 0 || type >= SDP_MAX_RTCP_FB_CCM) {
90 return 0;
91 }
93 return (1 << bitnumber);
94 }
96 #endif