Skip to content

Commit

Permalink
refine code for ossrs#250, ts remux
Browse files Browse the repository at this point in the history
  • Loading branch information
winlinvip committed Jan 25, 2015
1 parent e9ed62e commit c9d270f
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
8 changes: 3 additions & 5 deletions trunk/src/app/srs_app_mpegts_udp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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);
Expand Down
6 changes: 3 additions & 3 deletions trunk/src/kernel/srs_kernel_ts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -254,11 +254,11 @@ class SrsMpegtsWriter
*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);
}
}

Expand Down Expand Up @@ -344,7 +344,7 @@ class SrsMpegtsWriter

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;

Expand Down
3 changes: 3 additions & 0 deletions trunk/src/kernel/srs_kernel_ts.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down

0 comments on commit c9d270f

Please sign in to comment.