| 
									
										
										
										
											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
										 |  |  | }; |