/***************************************************************************************
 *
 *  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
 *
 *  By downloading, copying, installing or using the software you agree to this license.
 *  If you do not agree to this license, do not download, install, 
 *  copy or use the software.
 *
 *  Copyright (C) 2014-2024, Happytimesoft Corporation, all rights reserved.
 *
 *  Redistribution and use in binary forms, with or without modification, are permitted.
 *
 *  Unless required by applicable law or agreed to in writing, software distributed 
 *  under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 *  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
 *  language governing permissions and limitations under the License.
 *
****************************************************************************************/

#ifndef RTP_RX_H
#define RTP_RX_H


#define RTP_MAX_VIDEO_BUFF      (2*1024*1024)
#define RTP_MAX_AUDIO_BUFF      (8*1024)


typedef int (*VRTPRXCBF)(uint8 * p_data, int len, uint32 ts, uint32 seq, void * p_userdata);


typedef struct
{
    uint32      rxf_marker  : 1;        // Marker bit
    uint32      rxf_loss    : 1;        // The loss of sequence numbers has occurred in the middle
    uint32      rtp_pt      : 8;        // rtp payload type
    uint32      res1        : 6;
    
	uint32	    seq         : 16;	    // sequence number
    
	uint32	    ssrc;                   // Synchronization source
	uint32	    ts;				        // Timestamp
	
    uint8     * p_data;
    int         len;
} RTPRXI;

#ifdef __cplusplus
extern "C" {
#endif

BOOL rtp_data_rx(RTPRXI * p_rxi, uint8 * p_data, int len);

#ifdef __cplusplus
}
#endif


#endif


