[FFmpeg-cvslog] r22199 - in trunk: libavformat/matroskaenc.c tests/ref/acodec/pcm
conrad
subversion
Thu Mar 4 09:53:08 CET 2010
Author: conrad
Date: Thu Mar 4 09:53:08 2010
New Revision: 22199
Log:
Simplify starting and ending clusters
Modified:
trunk/libavformat/matroskaenc.c
trunk/tests/ref/acodec/pcm
Modified: trunk/libavformat/matroskaenc.c
==============================================================================
--- trunk/libavformat/matroskaenc.c Thu Mar 4 09:53:04 2010 (r22198)
+++ trunk/libavformat/matroskaenc.c Thu Mar 4 09:53:08 2010 (r22199)
@@ -725,14 +725,6 @@ static int mkv_write_header(AVFormatCont
ret = mkv_write_chapters(s);
if (ret < 0) return ret;
- ret = mkv_add_seekhead_entry(mkv->cluster_seekhead, MATROSKA_ID_CLUSTER, url_ftell(pb));
- if (ret < 0) return ret;
-
- mkv->cluster_pos = url_ftell(pb);
- mkv->cluster = start_ebml_master(pb, MATROSKA_ID_CLUSTER, 0);
- put_ebml_uint(pb, MATROSKA_ID_CLUSTERTIMECODE, 0);
- mkv->cluster_pts = 0;
-
if (url_is_streamed(s->pb))
mkv_write_seekhead(pb, mkv->main_seekhead);
@@ -849,12 +841,7 @@ static int mkv_write_packet(AVFormatCont
int duration = pkt->duration;
int ret;
- // start a new cluster every 5 MB or 5 sec
- if (url_ftell(pb) > mkv->cluster_pos + 5*1024*1024 || pkt->pts > mkv->cluster_pts + 5000) {
- av_log(s, AV_LOG_DEBUG, "Starting new cluster at offset %" PRIu64
- " bytes, pts %" PRIu64 "\n", url_ftell(pb), pkt->pts);
- end_ebml_master(pb, mkv->cluster);
-
+ if (!mkv->cluster_pos) {
ret = mkv_add_seekhead_entry(mkv->cluster_seekhead, MATROSKA_ID_CLUSTER, url_ftell(pb));
if (ret < 0) return ret;
@@ -882,6 +869,14 @@ static int mkv_write_packet(AVFormatCont
if (ret < 0) return ret;
}
+ // start a new cluster every 5 MB or 5 sec
+ if (url_ftell(pb) > mkv->cluster_pos + 5*1024*1024 || pkt->pts > mkv->cluster_pts + 5000) {
+ av_log(s, AV_LOG_DEBUG, "Starting new cluster at offset %" PRIu64
+ " bytes, pts %" PRIu64 "\n", url_ftell(pb), pkt->pts);
+ end_ebml_master(pb, mkv->cluster);
+ mkv->cluster_pos = 0;
+ }
+
mkv->duration = FFMAX(mkv->duration, pkt->pts + duration);
return 0;
}
Modified: trunk/tests/ref/acodec/pcm
==============================================================================
--- trunk/tests/ref/acodec/pcm Thu Mar 4 09:53:04 2010 (r22198)
+++ trunk/tests/ref/acodec/pcm Thu Mar 4 09:53:08 2010 (r22199)
@@ -22,11 +22,11 @@ stddev: 0.00 PSNR:999.99 bytes: 1058
1058444 ./tests/data/acodec/pcm_s16le.wav
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 bytes: 1058444/ 1058444
-2f3e0884e96b984436b1d01200d68871 *./tests/data/acodec/pcm_s16be.mkv
+33c64392615a70aa1132b6f87215b8a9 *./tests/data/acodec/pcm_s16be.mkv
1060705 ./tests/data/acodec/pcm_s16be.mkv
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 bytes: 1058444/ 1058444
-c98158732635effefffa006251b9a6c9 *./tests/data/acodec/pcm_s16le.mkv
+ff09423d5ead01dee128b5875682de2a *./tests/data/acodec/pcm_s16le.mkv
1060705 ./tests/data/acodec/pcm_s16le.mkv
95e54b261530a1bcf6de6fe3b21dc5f6 *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 bytes: 1058444/ 1058444
More information about the ffmpeg-cvslog
mailing list