media/webrtc/signaling/src/sipcc/include/ccsdp_rtcp_fb.h

Thu, 15 Jan 2015 15:59:08 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:59:08 +0100
branch
TOR_BUG_9701
changeset 10
ac0c01689b40
permissions
-rw-r--r--

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.

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

mercurial