Mercurial > libavformat.hg
changeset 1776:b090df664f0d libavformat
use dvr-ms timestamps
author | michael |
---|---|
date | Sat, 10 Feb 2007 03:36:12 +0000 |
parents | 3562fd629c37 |
children | 2f59a73884af |
files | asf.c asf.h |
diffstat | 2 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/asf.c Fri Feb 09 20:49:12 2007 +0000 +++ b/asf.c Sat Feb 10 03:36:12 2007 +0000 @@ -600,6 +600,7 @@ ByteIOContext *pb = &s->pb; int rsize = 1; int num = get_byte(pb); + int64_t ts0, ts1; asf->packet_segments--; asf->packet_key_frame = num >> 7; @@ -616,7 +617,20 @@ return -1; } asf->packet_frag_timestamp = get_le32(pb); // timestamp - url_fskip(pb, asf->packet_replic_size - 8); + if(asf->packet_replic_size >= 8+38+4){ +// for(i=0; i<asf->packet_replic_size-8; i++) +// av_log(s, AV_LOG_DEBUG, "%02X ",get_byte(pb)); +// av_log(s, AV_LOG_DEBUG, "\n"); + url_fskip(pb, 10); + ts0= get_le64(pb); + ts1= get_le64(pb); + url_fskip(pb, 12); + get_le32(pb); + url_fskip(pb, asf->packet_replic_size - 8 - 38 - 4); + if(ts0!= -1) asf->packet_frag_timestamp= ts0/10000; + else asf->packet_frag_timestamp= AV_NOPTS_VALUE; + }else + url_fskip(pb, asf->packet_replic_size - 8); rsize += asf->packet_replic_size; // FIXME - check validity } else if (asf->packet_replic_size==1){ // multipacket - frag_offset is begining timestamp
--- a/asf.h Fri Feb 09 20:49:12 2007 +0000 +++ b/asf.h Sat Feb 10 03:36:12 2007 +0000 @@ -107,7 +107,7 @@ int packet_padsize; unsigned int packet_frag_offset; unsigned int packet_frag_size; - int packet_frag_timestamp; + int64_t packet_frag_timestamp; int packet_multi_size; int packet_obj_size; int packet_time_delta;