1 #ifndef _RTP_SERV_GENERATOR_H_
2 #define _RTP_SERV_GENERATOR_H_
3 #include <stdlib.h>
4 
5 #include <gpac/ietf.h>
6 #include <gpac/network.h> // sockets
7 #include <gpac/internal/media_dev.h>
8 #include <gpac/thread.h>
9 #include <gpac/scene_engine.h>
10 
11 #include <time.h>
12 #define RECV_BUFFER_SIZE_FOR_COMMANDS 262144
13 
14 
15 /*callback type (allows reentrance)*/
16 typedef struct tmp_PNC_CallbackData {
17 	GF_RTPChannel *chan;
18 	GF_RTPHeader *hdr;
19 	char * formatedPacket;
20 	int formatedPacketLength;
21 	GP_RTPPacketizer *rtpBuilder;
22 	GF_SceneEngine *codec;
23 
24 	/* socket on which updates are received */
25 	GF_Socket *socket;
26 	GF_Socket *server_socket;
27 	/* socket on which bitrate feedback is sent */
28 	GF_Socket *feedback_socket;
29 
30 	void *extension;
31 
32 	/* indication that the Access Unit is a RAP */
33 	int RAP;
34 	/* RAP counter */
35 	int RAPsent;
36 	/* indication that the Access Unit Sequence Number should be increased */
37 	int SAUN_inc;
38 
39 	GF_Mutex *carrousel_mutex;
40 	char buffer[RECV_BUFFER_SIZE_FOR_COMMANDS];
41 	int bufferPosition;
42 	int debug;
43 } PNC_CallbackData;
44 
45 
46 
47 #define RTP_SERV_GENERATOR_DEBUG 0x4
48 
49 typedef struct tmp_PNC_CallbackExt {
50 	int i;
51 	int lastTS;
52 } PNC_CallbackExt;
53 
54 
55 /*exports*/
56 extern GF_Err PNC_RAP(PNC_CallbackData *data);
57 extern PNC_CallbackData* PNC_Init_SceneGenerator(GF_RTPChannel *p_chan, GF_RTPHeader *p_hdr, char *default_scene,
58         u32 socketType, u16 socketPort, int debug);
59 extern GF_Err PNC_processBIFSGenerator(PNC_CallbackData*);
60 extern void PNC_Close_SceneGenerator(PNC_CallbackData*);
61 
62 extern void PNC_SendInitScene(PNC_CallbackData * data);
63 
64 #include "RTP_serv_packetizer.h"
65 
66 #endif