diff --git a/libavformat/ffmenc.c b/libavformat/ffmenc.c index 5747e855a5..630df4cd47 100644 --- a/libavformat/ffmenc.c +++ b/libavformat/ffmenc.c @@ -188,11 +188,11 @@ static int ffm_write_header(AVFormatContext *s) static int ffm_write_packet(AVFormatContext *s, AVPacket *pkt) { - int64_t pts; + int64_t dts; uint8_t header[FRAME_HEADER_SIZE]; int header_size = FRAME_HEADER_SIZE; - pts = s->timestamp + pkt->pts; + dts = s->timestamp + pkt->dts; /* packet size & key_frame */ header[0] = pkt->stream_index; header[1] = 0; @@ -200,14 +200,14 @@ static int ffm_write_packet(AVFormatContext *s, AVPacket *pkt) header[1] |= FLAG_KEY_FRAME; AV_WB24(header+2, pkt->size); AV_WB24(header+5, pkt->duration); - AV_WB64(header+8, pts); + AV_WB64(header+8, s->timestamp + pkt->pts); if (pkt->pts != pkt->dts) { header[1] |= FLAG_DTS; AV_WB32(header+16, pkt->pts - pkt->dts); header_size += 4; } - ffm_write_data(s, header, header_size, pts, 1); - ffm_write_data(s, pkt->data, pkt->size, pts, 0); + ffm_write_data(s, header, header_size, dts, 1); + ffm_write_data(s, pkt->data, pkt->size, dts, 0); return 0; } diff --git a/tests/libav.regression.ref b/tests/libav.regression.ref index d5f7fcab27..6c5c23690a 100644 --- a/tests/libav.regression.ref +++ b/tests/libav.regression.ref @@ -15,7 +15,7 @@ bdb7484c68db722f66ba1630cf79844c *./tests/data/b-libav.mpg d6fdeb9f7083cc827f9510c6c4517dc0 *./tests/data/b-libav.swf 335771 ./tests/data/b-libav.swf ./tests/data/b-libav.swf CRC=0xe14e8847 -11eec620bdcd3ef1a053fdb964d1b855 *./tests/data/b-libav.ffm +3dbacdc3fccb551f8ab54c32f648e7a8 *./tests/data/b-libav.ffm 380928 ./tests/data/b-libav.ffm ./tests/data/b-libav.ffm CRC=0x2b71a386 f8ad5bd78f4d012a8ce9570aa395ac54 *./tests/data/b-libav.flv