[FFmpeg-devel] Contract offer for implementing decoding functionality for interlaced AVCHD (5000 Euro + optional 1000 Euro Bonus)

Reimar Döffinger Reimar.Doeffinger
Sun Jun 8 20:29:29 CEST 2008


Hello,
On Sat, Jun 07, 2008 at 06:54:32PM +0200, Reimar D?ffinger wrote:
> > What is needed to fix this is likely what robert marstons SOC2008 attempted
> > as qualification task.
> > See the ML, H.222 and H.264
> 
> I'll see if I can find time for it (I have not even looked at it yet)...

Hmm... I wasn't able to find it, can you hint me better where to look?
Btw. (and I think this was noticed by someone else before), just disabling the
timestamp discontinuity checks "fixes" it, the problem I think is that
pts is AV_NOPTS_VALUE for one of the fields (i.e. for every second
packet).
I attached the quick hack I used to test.

Greetings,
Reimar D?ffinger

P.S.: Just to make it clear, I'd be happy if someone else started
looking into this and fixing it, I am not keen on it at all...
-------------- next part --------------
diff --git a/ffmpeg.c b/ffmpeg.c
index 2885ee4..936ad84 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -2033,7 +2033,7 @@ static int av_encode(AVFormatContext **output_files,
         if (pkt.dts != AV_NOPTS_VALUE && ist->next_pts != AV_NOPTS_VALUE) {
             int64_t pkt_dts= av_rescale_q(pkt.dts, ist->st->time_base, AV_TIME_BASE_Q);
             int64_t delta= pkt_dts - ist->next_pts;
-            if((FFABS(delta) > 1LL*dts_delta_threshold*AV_TIME_BASE || pkt_dts+1<ist->pts)&& !copy_ts){
+            if((FFABS(delta) > 1LL*dts_delta_threshold*AV_TIME_BASE || pkt_dts+1<ist->pts)&& !copy_ts && 0){
                 input_files_ts_offset[ist->file_index]-= delta;
                 if (verbose > 2)
                     fprintf(stderr, "timestamp discontinuity %"PRId64", new offset= %"PRId64"\n", delta, input_files_ts_offset[ist->file_index]);



More information about the ffmpeg-devel mailing list