MP4FileSource::MP4FileSource(const char *file) { m_speed = 1.0; m_status = 0; m_clock = 0; m_frame.bytes = 0; m_count = 0; m_fp = fopen(file, "rb"); m_reader = mov_reader_create(mov_file_buffer(), m_fp); if (m_reader) mov_reader_getinfo(m_reader, MP4OnVideo, MP4OnAudio, this); for (int i = 0; i < m_count; i++) { struct media_t* m = &m_media[i]; rtp_set_info(m->rtp, "RTSPServer", path_basename(file)); } }
H264FileSource::H264FileSource(const char *file) :m_reader(file) { m_speed = 1.0; m_status = 0; m_rtp_clock = 0; m_rtcp_clock = 0; unsigned int ssrc = (unsigned int)rtp_ssrc(); static struct rtp_pack_func_t s_rtpfunc = { H264FileSource::RTPAlloc, H264FileSource::RTPFree, H264FileSource::RTPPacket, }; m_rtppacker = rtp_h264_packer()->create(ssrc, (unsigned short)ssrc, RTP_PAYLOAD_H264, &s_rtpfunc, this); struct rtp_event_t event; event.on_rtcp = OnRTCPEvent; m_rtp = rtp_create(&event, this, ssrc, 90000, 4*1024); rtp_set_info(m_rtp, "RTSPServer", "szj.h264"); }