1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /*
- * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
- #ifndef MODULES_RTP_RTCP_SOURCE_VIDEO_RTP_DEPACKETIZER_H_
- #define MODULES_RTP_RTCP_SOURCE_VIDEO_RTP_DEPACKETIZER_H_
- #include <stdint.h>
- #include "absl/types/optional.h"
- #include "api/array_view.h"
- #include "api/scoped_refptr.h"
- #include "api/video/encoded_image.h"
- #include "modules/rtp_rtcp/source/rtp_video_header.h"
- #include "rtc_base/copy_on_write_buffer.h"
- namespace webrtc {
- class VideoRtpDepacketizer {
- public:
- struct ParsedRtpPayload {
- RTPVideoHeader video_header;
- rtc::CopyOnWriteBuffer video_payload;
- };
- virtual ~VideoRtpDepacketizer() = default;
- virtual absl::optional<ParsedRtpPayload> Parse(
- rtc::CopyOnWriteBuffer rtp_payload) = 0;
- virtual rtc::scoped_refptr<EncodedImageBuffer> AssembleFrame(
- rtc::ArrayView<const rtc::ArrayView<const uint8_t>> rtp_payloads);
- };
- } // namespace webrtc
- #endif // MODULES_RTP_RTCP_SOURCE_VIDEO_RTP_DEPACKETIZER_H_
|