summaryrefslogtreecommitdiff
path: root/libavformat/mpeg.c
diff options
context:
space:
mode:
authorFabrice Bellard <fabrice@bellard.org>2003-09-10 22:44:30 +0000
committerFabrice Bellard <fabrice@bellard.org>2003-09-10 22:44:30 +0000
commitfa0f62c37d90c0760bddccba2054578e2c61ae1a (patch)
tree210a74ab15057521c424ffc8c3380abf7bf067a6 /libavformat/mpeg.c
parent490579042adbd90921a175c3f738e662b93fe628 (diff)
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.c19
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);