* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+#include "libavutil/crc.h"
#include "avformat.h"
-#include "crc.h"
#include "mpegts.h"
/* write DVB SI sections */
unsigned char *q;
int first, b, len1, left;
- crc = bswap_32(av_crc(av_crc04C11DB7, -1, buf, len - 4));
+ crc = bswap_32(av_crc(av_crc_get_table(AV_CRC_32_IEEE), -1, buf, len - 4));
buf[len - 4] = (crc >> 24) & 0xff;
buf[len - 3] = (crc >> 16) & 0xff;
buf[len - 2] = (crc >> 8) & 0xff;
b |= 0x40;
*q++ = b;
*q++ = s->pid;
- s->cc = (s->cc + 1) & 0xf;
*q++ = 0x10 | s->cc;
+ s->cc = (s->cc + 1) & 0xf;
if (first)
*q++ = 0; /* 0 offset */
len1 = TS_PACKET_SIZE - (q - packet);
static void section_write_packet(MpegTSSection *s, const uint8_t *packet)
{
AVFormatContext *ctx = s->opaque;
- put_buffer(&ctx->pb, packet, TS_PACKET_SIZE);
+ put_buffer(ctx->pb, packet, TS_PACKET_SIZE);
}
static int mpegts_write_header(AVFormatContext *s)
for(i = 0; i < ts->nb_services; i++) {
mpegts_write_pmt(s, ts->services[i]);
}
- put_flush_packet(&s->pb);
+ put_flush_packet(s->pb);
return 0;
memcpy(buf + TS_PACKET_SIZE - len, payload, len);
payload += len;
payload_size -= len;
- put_buffer(&s->pb, buf, TS_PACKET_SIZE);
+ put_buffer(s->pb, buf, TS_PACKET_SIZE);
}
- put_flush_packet(&s->pb);
+ put_flush_packet(s->pb);
}
static int mpegts_write_packet(AVFormatContext *s, AVPacket *pkt)
ts_st->payload_pts, ts_st->payload_dts);
}
}
- put_flush_packet(&s->pb);
+ put_flush_packet(s->pb);
for(i = 0; i < ts->nb_services; i++) {
service = ts->services[i];
AVOutputFormat mpegts_muxer = {
"mpegts",
- "MPEG2 transport stream format",
+ NULL_IF_CONFIG_SMALL("MPEG-2 transport stream format"),
"video/x-mpegts",
- "ts",
+ "ts,m2t",
sizeof(MpegTSWrite),
CODEC_ID_MP2,
CODEC_ID_MPEG2VIDEO,