movenc: Reorder entries in the MOVIentry struct, for tigheter packing
authorMartin Storsjö <martin@martin.st>
Fri, 20 Jan 2012 18:48:19 +0000 (20:48 +0200)
committerMartin Storsjö <martin@martin.st>
Fri, 20 Jan 2012 23:12:58 +0000 (01:12 +0200)
Originally, sizeof(struct MOVIentry) was 48, after the reordering,
it is 40 in my build configuration.

When writing really long mov/mp4 files, this can make a difference
- this saves a bit over 2 MB of memory per hour of video (down to
10.3 MB per hour from 12.3 MB per hour initially) for a video with
75 packets per second - 25 fps + 50 audio packets (which is the
case for AMR audio).

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/movenc.h

index 5ca5631..5595ac7 100644 (file)
 #define MODE_IPOD 0x20
 
 typedef struct MOVIentry {
 #define MODE_IPOD 0x20
 
 typedef struct MOVIentry {
-    unsigned int size;
     uint64_t     pos;
     uint64_t     pos;
+    int64_t      dts;
+    unsigned int size;
     unsigned int samplesInChunk;
     unsigned int entries;
     int          cts;
     unsigned int samplesInChunk;
     unsigned int entries;
     int          cts;
-    int64_t      dts;
 #define MOV_SYNC_SAMPLE         0x0001
 #define MOV_PARTIAL_SYNC_SAMPLE 0x0002
     uint32_t     flags;
 #define MOV_SYNC_SAMPLE         0x0001
 #define MOV_PARTIAL_SYNC_SAMPLE 0x0002
     uint32_t     flags;