40 lines
1.0 KiB
C++
40 lines
1.0 KiB
C++
////////////////////////////////////////////////////////////////////////////////
|
|
// Copyright 2018 Google LLC.
|
|
//
|
|
// This software is licensed under the terms defined in the Widevine Master
|
|
// License Agreement. For a copy of this agreement, please contact
|
|
// widevine-licensing@google.com.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "common/string_util.h"
|
|
|
|
#include <bitset>
|
|
#include <cstddef>
|
|
#include <sstream>
|
|
#include <string>
|
|
|
|
#include "common/status.h"
|
|
|
|
namespace widevine {
|
|
namespace string_util {
|
|
|
|
Status BitsetStringToBinaryString(const std::string& bitset,
|
|
std::string* output) {
|
|
if (output == nullptr) {
|
|
return Status(error::INTERNAL, "output is nullptr.");
|
|
}
|
|
|
|
std::stringstream sstream(bitset);
|
|
for (size_t i = 0; i < bitset.size(); i += 8) {
|
|
std::bitset<8> bits;
|
|
sstream >> bits;
|
|
char c = static_cast<char>(bits.to_ulong());
|
|
*output += c;
|
|
}
|
|
|
|
return OkStatus();
|
|
}
|
|
|
|
} // namespace string_util
|
|
} // namespace widevine
|