Mercurial > libavformat.hg
changeset 2416:1a2f353ac291 libavformat
workaround ms (lack of) intelligence in their design of dvr-ms
yes kids you do not make 90% of your file contain empty dummy packets
closes issue76
author | michael |
---|---|
date | Sun, 02 Sep 2007 15:58:43 +0000 |
parents | 3aa642c08cde |
children | 70b45051aef6 |
files | asf.c |
diffstat | 1 files changed, 13 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/asf.c Fri Aug 31 18:24:09 2007 +0000 +++ b/asf.c Sun Sep 02 15:58:43 2007 +0000 @@ -826,6 +826,19 @@ asf_st->frag_offset += asf->packet_frag_size; /* test if whole packet is read */ if (asf_st->frag_offset == asf_st->pkt.size) { + //workaround for macroshit radio DVR-MS files + if( s->streams[asf->stream_index]->codec->codec_id == CODEC_ID_MPEG2VIDEO + && asf_st->pkt.size > 100){ + int i; + for(i=0; i<asf_st->pkt.size && !asf_st->pkt.data[i]; i++); + if(i == asf_st->pkt.size){ + av_log(s, AV_LOG_DEBUG, "discarding ms fart\n"); + asf_st->frag_offset = 0; + av_free_packet(&asf_st->pkt); + continue; + } + } + /* return packet */ if (asf_st->ds_span > 1) { if(asf_st->pkt.size != asf_st->ds_packet_size * asf_st->ds_span){