2019-03-30 10:22:57 +00:00
|
|
|
#pragma once
|
|
|
|
|
2019-09-11 08:12:10 +00:00
|
|
|
#include "formats/generic.hh"
|
2019-03-30 10:22:57 +00:00
|
|
|
|
2020-04-27 11:07:24 +00:00
|
|
|
namespace uvg_rtp {
|
2020-02-07 10:22:58 +00:00
|
|
|
class sender;
|
2019-08-12 06:25:17 +00:00
|
|
|
class reader;
|
2019-05-22 09:43:35 +00:00
|
|
|
|
|
|
|
namespace hevc {
|
2019-10-08 05:20:29 +00:00
|
|
|
|
|
|
|
typedef struct media_headers {
|
2020-04-27 11:07:24 +00:00
|
|
|
uint8_t nal_header[uvg_rtp::frame::HEADER_SIZE_HEVC_NAL];
|
2019-10-08 05:20:29 +00:00
|
|
|
|
|
|
|
/* there are three types of Fragmentation Unit headers:
|
|
|
|
* - header for the first fragment
|
|
|
|
* - header for all middle fragments
|
|
|
|
* - header for the last fragment */
|
2020-04-27 11:07:24 +00:00
|
|
|
uint8_t fu_headers[3 * uvg_rtp::frame::HEADER_SIZE_HEVC_FU];
|
2019-10-08 05:20:29 +00:00
|
|
|
} media_headers_t;
|
|
|
|
|
2019-08-21 06:12:39 +00:00
|
|
|
/* TODO: */
|
2020-04-27 11:07:24 +00:00
|
|
|
rtp_error_t push_frame(uvg_rtp::sender *sender, uint8_t *data, size_t data_len, int flags);
|
2019-06-03 08:58:53 +00:00
|
|
|
|
2019-10-11 06:11:21 +00:00
|
|
|
/* TODO: */
|
2020-04-27 11:07:24 +00:00
|
|
|
rtp_error_t push_frame(uvg_rtp::sender *sender, std::unique_ptr<uint8_t[]> data, size_t data_len, int flags);
|
2019-10-11 06:11:21 +00:00
|
|
|
|
2019-08-12 06:25:17 +00:00
|
|
|
/* TODO: */
|
2020-04-27 11:07:24 +00:00
|
|
|
rtp_error_t frame_receiver(uvg_rtp::receiver *receiver, bool optimistic);
|
2019-05-22 09:43:35 +00:00
|
|
|
};
|
2019-03-30 10:22:57 +00:00
|
|
|
};
|