mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 03:41:55 +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_error.hpp>
|
||||||
#include <srs_kernel_log.hpp>
|
#include <srs_kernel_log.hpp>
|
||||||
#include <srs_app_config.hpp>
|
#include <srs_app_config.hpp>
|
||||||
|
#include <srs_kernel_ts.hpp>
|
||||||
// Transport Stream packets are 188 bytes in length.
|
|
||||||
#define TS_PACKET_SIZE 188
|
|
||||||
|
|
||||||
#ifdef SRS_AUTO_STREAM_CASTER
|
#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);
|
int peer_port = ntohs(from->sin_port);
|
||||||
|
|
||||||
// drop ts packet when size not modulus by 188
|
// 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);
|
srs_warn("udp: drop %s:%d packet %d bytes", peer_ip.c_str(), peer_port, nb_buf);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
srs_info("udp: got %s:%d packet %d bytes", peer_ip.c_str(), peer_port, nb_buf);
|
srs_info("udp: got %s:%d packet %d bytes", peer_ip.c_str(), peer_port, nb_buf);
|
||||||
|
|
||||||
// process each ts packet
|
// 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;
|
char* ts_packet = buf + i;
|
||||||
if ((ret = on_ts_packet(ts_packet)) != ERROR_SUCCESS) {
|
if ((ret = on_ts_packet(ts_packet)) != ERROR_SUCCESS) {
|
||||||
srs_warn("mpegts: ignore ts packet error. ret=%d", ret);
|
srs_warn("mpegts: ignore ts packet error. ret=%d", ret);
|
||||||
|
|
|
@ -254,11 +254,11 @@ public:
|
||||||
*p++ = header_size;
|
*p++ = header_size;
|
||||||
|
|
||||||
// pts; // 33bits
|
// 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
|
// dts; // 33bits
|
||||||
if (frame->dts != frame->pts) {
|
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;
|
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;
|
int32_t val;
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,9 @@ class SrsAvcAacCodec;
|
||||||
class SrsCodecSample;
|
class SrsCodecSample;
|
||||||
class SrsSimpleBuffer;
|
class SrsSimpleBuffer;
|
||||||
|
|
||||||
|
// Transport Stream packets are 188 bytes in length.
|
||||||
|
#define SRS_TS_PACKET_SIZE 188
|
||||||
|
|
||||||
// @see: ngx_rtmp_SrsMpegtsFrame_t
|
// @see: ngx_rtmp_SrsMpegtsFrame_t
|
||||||
class SrsMpegtsFrame
|
class SrsMpegtsFrame
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue