diff avidec.c @ 708:d79164865a7c libavformat

more fine grained discarding of packets
author michael
date Thu, 17 Mar 2005 01:25:01 +0000
parents 594a9b0cacf5
children ff85dfd59176
line wrap: on
line diff
--- a/avidec.c	Wed Mar 16 19:11:58 2005 +0000
+++ b/avidec.c	Thu Mar 17 01:25:01 2005 +0000
@@ -532,7 +532,11 @@
           st = s->streams[n];
           ast = st->priv_data;
           
-          if(st->discard){
+          if(   (st->discard >= AVDISCARD_DEFAULT && size==0)
+             /*|| (st->discard >= AVDISCARD_NONKEY && !(pkt->flags & PKT_FLAG_KEY))*/ //FIXME needs a little reordering
+             || st->discard >= AVDISCARD_ALL){
+                if(ast->sample_size) ast->frame_offset += pkt->size;
+                else                 ast->frame_offset++;
                 url_fskip(pb, size);
                 goto resync;
           }
@@ -554,7 +558,6 @@
             ast->packet_size= size + 8;
             ast->remaining= size;
             goto resync;
-
           }
         }
         /* palette changed chunk */