[Ffmpeg-cvslog] r7179 - in trunk: libavformat/gxfenc.c tests/libav.regression.ref
bcoudurier
subversion
Tue Nov 28 16:34:18 CET 2006
Author: bcoudurier
Date: Tue Nov 28 16:34:18 2006
New Revision: 7179
Modified:
trunk/libavformat/gxfenc.c
trunk/tests/libav.regression.ref
Log:
readjust dts if negative
Modified: trunk/libavformat/gxfenc.c
==============================================================================
--- trunk/libavformat/gxfenc.c (original)
+++ trunk/libavformat/gxfenc.c Tue Nov 28 16:34:18 2006
@@ -45,6 +45,7 @@
int b_per_gop;
int first_gop_closed;
int64_t current_dts;
+ int dts_delay;
} GXFStreamContext;
typedef struct GXFContext {
@@ -785,8 +786,9 @@
int i;
for (i = 0; i < s->nb_streams; i++) {
- if (s->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO) {
- GXFStreamContext *sc = &gxf->streams[i];
+ AVStream *st = s->streams[i];
+ GXFStreamContext *sc = &gxf->streams[i];
+ if (st->codec->codec_type == CODEC_TYPE_AUDIO) {
if (pkt && pkt->stream_index == i) {
av_fifo_write(&sc->audio_buffer, pkt->data, pkt->size);
pkt = NULL;
@@ -797,6 +799,14 @@
break; /* add pkt right now into list */
}
}
+ } else if (pkt) {
+ /* adjust dts if negative */
+ if (pkt->dts < 0 && !sc->dts_delay) {
+ /* XXX: rescale if codec time base is different from stream time base */
+ sc->dts_delay = av_rescale_q(pkt->dts, st->codec->time_base, st->time_base);
+ pkt->dts = sc->dts_delay; /* set to 0 */
+ }
+ pkt->dts -= sc->dts_delay;
}
}
return av_interleave_packet_per_dts(s, out, pkt, flush);
Modified: trunk/tests/libav.regression.ref
==============================================================================
--- trunk/tests/libav.regression.ref (original)
+++ trunk/tests/libav.regression.ref Tue Nov 28 16:34:18 2006
@@ -28,9 +28,9 @@
26c41db318d9aacfd6b9e734c0ea4d94 *./data/b-libav.dv
3600000 ./data/b-libav.dv
./data/b-libav.dv CRC=0xa6b8b635
-304ee17506e4526ba04285f6cd14630f *./data/b-libav.gxf
+ff65eeeb156c8b42ad9fdb7c8dbdb6b7 *./data/b-libav.gxf
816068 ./data/b-libav.gxf
-./data/b-libav.gxf CRC=0xb2d644fa
+./data/b-libav.gxf CRC=0xb19044fa
9a9da315747599f7718cc9a9a09c21ff *./data/b-libav.pbm
317075 ./data/b-libav.pbm
./data/b-libav.pbm CRC=0xb92906cb
More information about the ffmpeg-cvslog
mailing list