diff --git a/common_video/h265/h265_bitstream_parser.cc b/common_video/h265/h265_bitstream_parser.cc
index 9247d5d..9b95d12 100644
--- a/common_video/h265/h265_bitstream_parser.cc
+++ b/common_video/h265/h265_bitstream_parser.cc
@@ -542,4 +542,13 @@
   return parsed_qp;
 }
 
+absl::optional<uint32_t> H265BitstreamParser::GetLastSlicePpsId() const {
+  if (!last_slice_pps_id_) {
+    RTC_LOG(LS_ERROR) << "Failed to parse PPS id from bitstream.";
+    return absl::nullopt;
+  }
+
+  return last_slice_pps_id_;
+}
+
 }  // namespace webrtc
diff --git a/common_video/h265/h265_bitstream_parser.h b/common_video/h265/h265_bitstream_parser.h
index 3c0883c..48f27ef 100644
--- a/common_video/h265/h265_bitstream_parser.h
+++ b/common_video/h265/h265_bitstream_parser.h
@@ -22,12 +22,13 @@
 #include "common_video/h265/h265_sps_parser.h"
 #include "common_video/h265/h265_vps_parser.h"
 #include "rtc_base/containers/flat_map.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
 // Stateful H265 bitstream parser (due to VPS/SPS/PPS). Used to parse out QP
 // values from the bitstream.
-class H265BitstreamParser : public BitstreamParser {
+class RTC_EXPORT H265BitstreamParser : public BitstreamParser {
  public:
   H265BitstreamParser();
   ~H265BitstreamParser() override;
@@ -36,6 +37,8 @@
   void ParseBitstream(rtc::ArrayView<const uint8_t> bitstream) override;
   absl::optional<int> GetLastSliceQp() const override;
 
+  absl::optional<uint32_t> GetLastSlicePpsId() const;
+
   static absl::optional<uint32_t> ParsePpsIdFromSliceSegmentLayerRbsp(
       const uint8_t* data,
       size_t length,
diff --git a/common_video/h265/h265_common.h b/common_video/h265/h265_common.h
index d32de7f..b9186dc 100644
--- a/common_video/h265/h265_common.h
+++ b/common_video/h265/h265_common.h
@@ -16,6 +16,7 @@
 
 #include "common_video/h265/h265_inline.h"
 #include "rtc_base/buffer.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
@@ -76,11 +77,11 @@
 };
 
 // Returns a vector of the NALU indices in the given buffer.
-std::vector<NaluIndex> FindNaluIndices(const uint8_t* buffer,
-                                       size_t buffer_size);
+RTC_EXPORT std::vector<NaluIndex> FindNaluIndices(const uint8_t* buffer,
+                                                  size_t buffer_size);
 
 // Get the NAL type from the header byte immediately following start sequence.
-NaluType ParseNaluType(uint8_t data);
+RTC_EXPORT NaluType ParseNaluType(uint8_t data);
 
 // Methods for parsing and writing RBSP. See section 7.4.2 of the H.265 spec.
 //
diff --git a/common_video/h265/h265_pps_parser.h b/common_video/h265/h265_pps_parser.h
index 625869d..62bc18f 100644
--- a/common_video/h265/h265_pps_parser.h
+++ b/common_video/h265/h265_pps_parser.h
@@ -15,11 +15,12 @@
 #include "api/array_view.h"
 #include "common_video/h265/h265_sps_parser.h"
 #include "rtc_base/bitstream_reader.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
 // A class for parsing out picture parameter set (PPS) data from a H265 NALU.
-class H265PpsParser {
+class RTC_EXPORT H265PpsParser {
  public:
   // The parsed state of the PPS. Only some select values are stored.
   // Add more as they are actually needed.
diff --git a/common_video/h265/h265_sps_parser.h b/common_video/h265/h265_sps_parser.h
index 854c0f2..7ec1706 100644
--- a/common_video/h265/h265_sps_parser.h
+++ b/common_video/h265/h265_sps_parser.h
@@ -16,6 +16,7 @@
 #include "absl/types/optional.h"
 #include "api/array_view.h"
 #include "rtc_base/bitstream_reader.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
@@ -42,7 +43,7 @@
 };
 
 // A class for parsing out sequence parameter set (SPS) data from an H265 NALU.
-class H265SpsParser {
+class RTC_EXPORT H265SpsParser {
  public:
   struct ProfileTierLevel {
     ProfileTierLevel();
@@ -74,7 +75,7 @@
 
   // The parsed state of the SPS. Only some select values are stored.
   // Add more as they are actually needed.
-  struct SpsState {
+  struct RTC_EXPORT SpsState {
     SpsState() = default;
 
     uint32_t sps_max_sub_layers_minus1 = 0;
@@ -124,8 +125,6 @@
   // performed.
   static absl::optional<SpsState> ParseSpsInternal(
       rtc::ArrayView<const uint8_t> buffer);
-  static bool ParseProfileTierLevel(BitstreamReader& reader,
-                                    uint32_t sps_max_sub_layers_minus1);
 
   // From Table A.8 - General tier and level limits.
   static int GetMaxLumaPs(int general_level_idc);
diff --git a/common_video/h265/h265_vps_parser.h b/common_video/h265/h265_vps_parser.h
index e391d47..c793996 100644
--- a/common_video/h265/h265_vps_parser.h
+++ b/common_video/h265/h265_vps_parser.h
@@ -13,15 +13,16 @@
 
 #include "absl/types/optional.h"
 #include "api/array_view.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
 // A class for parsing out video parameter set (VPS) data from an H265 NALU.
-class H265VpsParser {
+class RTC_EXPORT H265VpsParser {
  public:
   // The parsed state of the VPS. Only some select values are stored.
   // Add more as they are actually needed.
-  struct VpsState {
+  struct RTC_EXPORT VpsState {
     VpsState();
 
     uint32_t id = 0;
