summaryrefslogtreecommitdiffstats
path: root/libavformat/avienc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-05-27 22:45:52 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-05-27 22:45:52 +0200
commit875851294f7dc3ce5945c6d43b76c5dd1e0ec03d (patch)
treea7ca17d86e444fb151320421713bdf8fccbca9cd /libavformat/avienc.c
parent9c27f29a017aa70f7236a6fd513b5ffcde56adb5 (diff)
downloadffmpeg-streaming-875851294f7dc3ce5945c6d43b76c5dd1e0ec03d.zip
ffmpeg-streaming-875851294f7dc3ce5945c6d43b76c5dd1e0ec03d.tar.gz
avienc: create xsub in avi files that are closer to whats in the wild
Fixes ticket1332 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/avienc.c')
-rw-r--r--libavformat/avienc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavformat/avienc.c b/libavformat/avienc.c
index 3fb64e9..a4795e9 100644
--- a/libavformat/avienc.c
+++ b/libavformat/avienc.c
@@ -255,9 +255,12 @@ static int avi_write_header(AVFormatContext *s)
ff_parse_specific_params(stream, &au_byterate, &au_ssize, &au_scale);
+ avpriv_set_pts_info(s->streams[i], 64, au_scale, au_byterate);
+ if(stream->codec_id == CODEC_ID_XSUB)
+ au_scale = au_byterate = 0;
+
avio_wl32(pb, au_scale); /* scale */
avio_wl32(pb, au_byterate); /* rate */
- avpriv_set_pts_info(s->streams[i], 64, au_scale, au_byterate);
avio_wl32(pb, 0); /* start */
avist->frames_hdr_strm = avio_tell(pb); /* remember this offset to fill later */
@@ -521,7 +524,7 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt)
int size= pkt->size;
// av_log(s, AV_LOG_DEBUG, "%"PRId64" %d %d\n", pkt->dts, avist->packet_count, stream_index);
- while(enc->block_align==0 && pkt->dts != AV_NOPTS_VALUE && pkt->dts > avist->packet_count){
+ while(enc->block_align==0 && pkt->dts != AV_NOPTS_VALUE && pkt->dts > avist->packet_count && enc->codec_id != CODEC_ID_XSUB){
AVPacket empty_packet;
if(pkt->dts - avist->packet_count > 60000){
OpenPOWER on IntegriCloud