changeset 4344:582124bb2c15 libavformat

fix temporal offet of ipbb sequences, simplification welcome
author bcoudurier
date Mon, 02 Feb 2009 10:41:43 +0000
parents b691846ea95e
children 8e3538adb529
files mxfenc.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mxfenc.c	Mon Feb 02 10:10:41 2009 +0000
+++ b/mxfenc.c	Mon Feb 02 10:41:43 2009 +0000
@@ -894,9 +894,13 @@
             for (j = i+1; j < mxf->edit_units_count; j++) {
                 temporal_offset++;
                 if (mxf->index_entries[j].flags & 0x10) { // backward prediction
-                     // next is not b, so is reordered
-                    if (!(mxf->index_entries[i+1].flags & 0x10))
-                        temporal_offset = -temporal_offset;
+                    // next is not b, so is reordered
+                    if (!(mxf->index_entries[i+1].flags & 0x10)) {
+                        if ((mxf->index_entries[i].flags & 0x11) == 0) // i frame
+                            temporal_offset = 0;
+                        else
+                            temporal_offset = -temporal_offset;
+                    }
                     break;
                 }
             }