mirror of
https://github.com/ossrs/srs.git
synced 2025-02-12 19:31:53 +00:00
refine code for #250, ts remux
This commit is contained in:
parent
e9ed62e052
commit
c9d270fbe0
3 changed files with 9 additions and 8 deletions
|
@ -32,9 +32,7 @@ using namespace std;
|
|||
#include <srs_kernel_error.hpp>
|
||||
#include <srs_kernel_log.hpp>
|
||||
#include <srs_app_config.hpp>
|
||||
|
||||
// Transport Stream packets are 188 bytes in length.
|
||||
#define TS_PACKET_SIZE 188
|
||||
#include <srs_kernel_ts.hpp>
|
||||
|
||||
#ifdef SRS_AUTO_STREAM_CASTER
|
||||
|
||||
|
@ -55,14 +53,14 @@ int SrsMpegtsOverUdp::on_udp_packet(sockaddr_in* from, char* buf, int nb_buf)
|
|||
int peer_port = ntohs(from->sin_port);
|
||||
|
||||
// drop ts packet when size not modulus by 188
|
||||
if (nb_buf < TS_PACKET_SIZE || (nb_buf % TS_PACKET_SIZE) != 0) {
|
||||
if (nb_buf < SRS_TS_PACKET_SIZE || (nb_buf % SRS_TS_PACKET_SIZE) != 0) {
|
||||
srs_warn("udp: drop %s:%d packet %d bytes", peer_ip.c_str(), peer_port, nb_buf);
|
||||
return ret;
|
||||
}
|
||||
srs_info("udp: got %s:%d packet %d bytes", peer_ip.c_str(), peer_port, nb_buf);
|
||||
|
||||
// process each ts packet
|
||||
for (int i = 0; i < nb_buf; i += TS_PACKET_SIZE) {
|
||||
for (int i = 0; i < nb_buf; i += SRS_TS_PACKET_SIZE) {
|
||||
char* ts_packet = buf + i;
|
||||
if ((ret = on_ts_packet(ts_packet)) != ERROR_SUCCESS) {
|
||||
srs_warn("mpegts: ignore ts packet error. ret=%d", ret);
|
||||
|
|
|
@ -254,11 +254,11 @@ public:
|
|||
*p++ = header_size;
|
||||
|
||||
// pts; // 33bits
|
||||
p = write_pts(p, flags >> 6, frame->pts + SRS_AUTO_HLS_DELAY);
|
||||
p = write_dts_pts(p, flags >> 6, frame->pts + SRS_AUTO_HLS_DELAY);
|
||||
|
||||
// dts; // 33bits
|
||||
if (frame->dts != frame->pts) {
|
||||
p = write_pts(p, 1, frame->dts + SRS_AUTO_HLS_DELAY);
|
||||
p = write_dts_pts(p, 1, frame->dts + SRS_AUTO_HLS_DELAY);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -344,7 +344,7 @@ private:
|
|||
|
||||
return p;
|
||||
}
|
||||
static char* write_pts(char* p, u_int8_t fb, int64_t pts)
|
||||
static char* write_dts_pts(char* p, u_int8_t fb, int64_t pts)
|
||||
{
|
||||
int32_t val;
|
||||
|
||||
|
|
|
@ -39,6 +39,9 @@ class SrsAvcAacCodec;
|
|||
class SrsCodecSample;
|
||||
class SrsSimpleBuffer;
|
||||
|
||||
// Transport Stream packets are 188 bytes in length.
|
||||
#define SRS_TS_PACKET_SIZE 188
|
||||
|
||||
// @see: ngx_rtmp_SrsMpegtsFrame_t
|
||||
class SrsMpegtsFrame
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue