MCPcopy Create free account
hub / github.com/anyrtcIO-Community/anyRTC-RTMP-OpenSource / encode

Function encode

webrtc/base/stringencode.cc:67–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65}
66
67size_t encode(char * buffer, size_t buflen,
68 const char * source, size_t srclen,
69 const char * illegal, char escape) {
70 RTC_DCHECK(buffer); // TODO(grunell): estimate output size
71 if (buflen <= 0)
72 return 0;
73
74 size_t srcpos = 0, bufpos = 0;
75 while ((srcpos < srclen) && (bufpos + 1 < buflen)) {
76 char ch = source[srcpos++];
77 if ((ch != escape) && !::strchr(illegal, ch)) {
78 buffer[bufpos++] = ch;
79 } else if (bufpos + 3 >= buflen) {
80 break;
81 } else {
82 buffer[bufpos+0] = escape;
83 buffer[bufpos+1] = hex_encode((static_cast<unsigned char>(ch) >> 4) & 0xF);
84 buffer[bufpos+2] = hex_encode((static_cast<unsigned char>(ch) ) & 0xF);
85 bufpos += 3;
86 }
87 }
88 buffer[bufpos] = '\0';
89 return bufpos;
90}
91
92size_t decode(char * buffer, size_t buflen,
93 const char * source, size_t srclen,

Callers 1

IdToFilenameMethod · 0.85

Calls 2

strchrFunction · 0.85
hex_encodeFunction · 0.85

Tested by

no test coverage detected