Package: ffmpeg Version: 0.cvs20050313-2sarge1 Severity: normal Tags: patch
If a start time (-ss option) is specified after all input files, the specified time period is correctly discarded from input streams, but a video output stream will be delayed by that time again with respect to an audio output stream; i.e. the output streams will be out-of-synch. Here is a fix for the version in sarge (0.cvs20050313-2sarge1): --- ffmpeg.c.orig 2005-03-12 17:24:20.000000000 +0000 +++ ffmpeg.c 2006-05-26 20:37:36.000000000 +0100 @@ -474,7 +474,7 @@ return; /* Should signal an error ! */ if(audio_sync_method){ - double delta = ost->sync_ipts * enc->sample_rate - ost->sync_opts + double delta = (ost->sync_ipts - (double)start_time / AV_TIME_BASE) * enc->sample_rate - ost->sync_opts - fifo_size(&ost->fifo, ost->fifo.rptr)/(ost->st->codec.channels * 2); double idelta= delta*ist->st->codec.sample_rate / enc->sample_rate; int byte_delta= ((int)idelta)*2*ist->st->codec.channels; @@ -517,7 +517,7 @@ } } }else - ost->sync_opts= lrintf(ost->sync_ipts * enc->sample_rate) + ost->sync_opts= lrintf((ost->sync_ipts - (double)start_time / AV_TIME_BASE) * enc->sample_rate) - fifo_size(&ost->fifo, ost->fifo.rptr)/(ost->st->codec.channels * 2); //FIXME wrong if (ost->audio_resample) { @@ -703,7 +703,7 @@ if(video_sync_method){ double vdelta; - vdelta = ost->sync_ipts * enc->frame_rate / enc->frame_rate_base - ost->sync_opts; + vdelta = (ost->sync_ipts - (double)start_time / AV_TIME_BASE) * enc->frame_rate / enc->frame_rate_base - ost->sync_opts; //FIXME set to 0.5 after we fix some dts/pts bugs like in avidec.c if (vdelta < -1.1) nb_frames = 0; @@ -720,7 +720,7 @@ fprintf(stderr, "*** %d dup!\n", nb_frames-1); } }else - ost->sync_opts= lrintf(ost->sync_ipts * enc->frame_rate / enc->frame_rate_base); + ost->sync_opts= lrintf((ost->sync_ipts - (double)start_time / AV_TIME_BASE) * enc->frame_rate / enc->frame_rate_base); nb_frames= FFMIN(nb_frames, max_frames[CODEC_TYPE_VIDEO] - ost->frame_number); if (nb_frames <= 0) -- END -- It appears that the version in etch and sid (0.cvs20060329-4) has had a similar change applied to it. However, I have not been able to install and test that version. This bug left me with a lot of useless XviD files at the end of DebConf and I'm inclined to consider it a serious data-loss bug that merits an update in stable. On the other hand, sensible people should check the output by eye earlier on... Ben. -- System Information: Debian Release: 3.1 APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.8-2-686 Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Versions of packages ffmpeg depends on: ii libc6 2.3.6-4 GNU C Library: Shared libraries an ii libfreetype6 2.1.7-2.4 FreeType 2 font engine, shared lib ii libimlib2 1.2.0-2.2 powerful image loading and renderi ii libsdl1.2debi 1.2.7+1.2.8cvs20041007-4.1 Simple DirectMedia Layer ii libx11-6 4.3.0.dfsg.1-14sarge1 X Window System protocol client li ii xlibs 4.3.0.dfsg.1-14sarge1 X Keyboard Extension (XKB) configu ii zlib1g 1:1.2.2-4.sarge.2 compression library - runtime -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]