diff flvdec.c @ 708:d79164865a7c libavformat

more fine grained discarding of packets
author michael
date Thu, 17 Mar 2005 01:25:01 +0000
parents d7c7f7bbdf55
children af4e24d6310c
line wrap: on
line diff
--- a/flvdec.c	Wed Mar 16 19:11:58 2005 +0000
+++ b/flvdec.c	Thu Mar 17 01:25:01 2005 +0000
@@ -105,7 +105,11 @@
         st->codec.frame_rate_base= 1;
         st->codec.frame_rate= 1000;
     }
-    if(st->discard){
+//    av_log(NULL, AV_LOG_DEBUG, "%d %X %d \n", is_audio, flags, st->discard);
+    if(  (st->discard >= AVDISCARD_NONKEY && !((flags >> 4)==1 ||  is_audio))
+       ||(st->discard >= AVDISCARD_BIDIR  &&  ((flags >> 4)==3 && !is_audio))
+       || st->discard >= AVDISCARD_ALL
+       ){
         url_fskip(&s->pb, size);
         continue;
     }
@@ -158,7 +162,7 @@
     pkt->pts = pts;
     pkt->stream_index = st->index;
     
-    if (!is_audio && ((flags >> 4)==1))
+    if (is_audio || ((flags >> 4)==1))
 	pkt->flags |= PKT_FLAG_KEY;
     
     return ret;