diff options
author | Fabrice Bellard <fabrice@bellard.org> | 2003-09-10 22:44:30 +0000 |
---|---|---|
committer | Fabrice Bellard <fabrice@bellard.org> | 2003-09-10 22:44:30 +0000 |
commit | fa0f62c37d90c0760bddccba2054578e2c61ae1a (patch) | |
tree | 210a74ab15057521c424ffc8c3380abf7bf067a6 /libavformat/mpeg.c | |
parent | 490579042adbd90921a175c3f738e662b93fe628 (diff) | |
download | ffmpeg-fa0f62c37d90c0760bddccba2054578e2c61ae1a.tar.gz |
removed invalid sequence end code
Originally committed as revision 2256 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/mpeg.c')
-rw-r--r-- | libavformat/mpeg.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c index d4af185d21..98103a6b28 100644 --- a/libavformat/mpeg.c +++ b/libavformat/mpeg.c @@ -250,7 +250,7 @@ static int mpeg_mux_init(AVFormatContext *ctx) } /* flush the packet on stream stream_index */ -static void flush_packet(AVFormatContext *ctx, int stream_index, int last_pkt) +static void flush_packet(AVFormatContext *ctx, int stream_index) { MpegMuxContext *s = ctx->priv_data; StreamInfo *stream = ctx->streams[stream_index]->priv_data; @@ -258,7 +258,6 @@ static void flush_packet(AVFormatContext *ctx, int stream_index, int last_pkt) int size, payload_size, startcode, id, len, stuffing_size, i, header_len; int64_t timestamp; uint8_t buffer[128]; - int last = last_pkt ? 4 : 0; id = stream->id; timestamp = stream->start_pts; @@ -287,7 +286,7 @@ static void flush_packet(AVFormatContext *ctx, int stream_index, int last_pkt) } else { header_len = 5; } - payload_size = s->packet_size - (size + 6 + header_len + last); + payload_size = s->packet_size - (size + 6 + header_len); if (id < 0xc0) { startcode = PRIVATE_STREAM_1; payload_size -= 4; @@ -327,9 +326,6 @@ static void flush_packet(AVFormatContext *ctx, int stream_index, int last_pkt) } } - if (last_pkt) { - put_be32(&ctx->pb, ISO_11172_END_CODE); - } /* output data */ put_buffer(&ctx->pb, stream->buffer, payload_size - stuffing_size); put_flush_packet(&ctx->pb); @@ -370,7 +366,7 @@ static int mpeg_mux_write_packet(AVFormatContext *ctx, int stream_index, /* output the packet */ if (stream->start_pts == -1) stream->start_pts = pts; - flush_packet(ctx, stream_index, 0); + flush_packet(ctx, stream_index); } } return 0; @@ -385,14 +381,13 @@ static int mpeg_mux_end(AVFormatContext *ctx) for(i=0;i<ctx->nb_streams;i++) { stream = ctx->streams[i]->priv_data; if (stream->buffer_ptr > 0) { - if (i == (ctx->nb_streams - 1)) - flush_packet(ctx, i, 1); - else - flush_packet(ctx, i, 0); + flush_packet(ctx, i); } } - /* write the end header */ + /* End header according to MPEG1 systems standard. We do not write + it as it is usually not needed by decoders and because it + complicates MPEG stream concatenation. */ //put_be32(&ctx->pb, ISO_11172_END_CODE); //put_flush_packet(&ctx->pb); |