Mercurial > libavformat.hg
diff nut.c @ 652:b47948262721 libavformat
support discarding uninterresting packets
| author | michael |
|---|---|
| date | Sat, 22 Jan 2005 13:36:02 +0000 |
| parents | 0b52743104ac |
| children | decfffe703bc |
line wrap: on
line diff
--- a/nut.c Sat Jan 22 02:30:45 2005 +0000 +++ b/nut.c Sat Jan 22 13:36:02 2005 +0000 @@ -1229,6 +1229,11 @@ if(size < 0) return -1; + if(s->streams[ stream_id ]->discard){ + url_fskip(bc, size); + return 1; + } + av_new_packet(pkt, size); get_buffer(bc, pkt->data, size); pkt->stream_index = stream_id; @@ -1243,7 +1248,7 @@ { NUTContext *nut = s->priv_data; ByteIOContext *bc = &s->pb; - int i, frame_code=0; + int i, frame_code=0, ret; for(;;){ int64_t pos= url_ftell(bc); @@ -1281,8 +1286,11 @@ reset(s, get_v(bc)); frame_code = get_byte(bc); case 0: - if(decode_frame(nut, pkt, frame_code, frame_type, pos)>=0) + ret= decode_frame(nut, pkt, frame_code, frame_type, pos); + if(ret==0) return 0; + else if(ret==1) //ok but discard packet + break; default: resync: av_log(s, AV_LOG_DEBUG, "syncing from %lld\n", nut->packet_start[2]+1);
