[FFmpeg-cvslog] r18891 - trunk/libavformat/mpegenc.c
bcoudurier
subversion
Fri May 22 00:33:17 CEST 2009
Author: bcoudurier
Date: Fri May 22 00:33:17 2009
New Revision: 18891
Log:
correctly check for audio streams in mpeg ps muxer, fix multiple audio tracks
Modified:
trunk/libavformat/mpegenc.c
Modified: trunk/libavformat/mpegenc.c
==============================================================================
--- trunk/libavformat/mpegenc.c Thu May 21 02:28:23 2009 (r18890)
+++ trunk/libavformat/mpegenc.c Fri May 22 00:33:17 2009 (r18891)
@@ -157,7 +157,7 @@ static int put_system_header(AVFormatCon
put_bits(&pb, 1, 1); /* marker */
- if (s->is_vcd && only_for_stream_id==AUDIO_ID) {
+ if (s->is_vcd && (only_for_stream_id & 0xe0) == AUDIO_ID) {
/* This header applies only to the audio stream (see VCD standard p. IV-7)*/
put_bits(&pb, 5, 0);
} else
@@ -401,7 +401,7 @@ static int mpeg_mux_init(AVFormatContext
bitrate += codec_rate;
- if (stream->id==AUDIO_ID)
+ if ((stream->id & 0xe0) == AUDIO_ID)
audio_bitrate += codec_rate;
else if (stream->id==VIDEO_ID)
video_bitrate += codec_rate;
@@ -594,7 +594,7 @@ static int get_packet_payload_size(AVFor
}
}
- if (s->is_vcd && stream->id == AUDIO_ID)
+ if (s->is_vcd && (stream->id & 0xe0) == AUDIO_ID)
/* The VCD standard demands that 20 zero bytes follow
each audio packet (see standard p. IV-8).*/
buf_index+=20;
@@ -729,7 +729,7 @@ static int flush_packet(AVFormatContext
packet_size = s->packet_size - size;
- if (s->is_vcd && id == AUDIO_ID)
+ if (s->is_vcd && (id & 0xe0) == AUDIO_ID)
/* The VCD standard demands that 20 zero bytes follow
each audio pack (see standard p. IV-8).*/
zero_trail_bytes += 20;
@@ -868,7 +868,7 @@ static int flush_packet(AVFormatContext
put_byte(ctx->pb, 0x10); /* flags */
/* P-STD buffer info */
- if (id == AUDIO_ID)
+ if ((id & 0xe0) == AUDIO_ID)
put_be16(ctx->pb, 0x4000 | stream->max_buffer_size/ 128);
else
put_be16(ctx->pb, 0x6000 | stream->max_buffer_size/1024);
More information about the ffmpeg-cvslog
mailing list