Commit 559a55ad authored by Michael Niedermayer's avatar Michael Niedermayer

use dvr-ms timestamps

Originally committed as revision 7905 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 6ff9b422
...@@ -600,6 +600,7 @@ static int asf_read_frame_header(AVFormatContext *s){ ...@@ -600,6 +600,7 @@ static int asf_read_frame_header(AVFormatContext *s){
ByteIOContext *pb = &s->pb; ByteIOContext *pb = &s->pb;
int rsize = 1; int rsize = 1;
int num = get_byte(pb); int num = get_byte(pb);
int64_t ts0, ts1;
asf->packet_segments--; asf->packet_segments--;
asf->packet_key_frame = num >> 7; asf->packet_key_frame = num >> 7;
...@@ -616,7 +617,20 @@ static int asf_read_frame_header(AVFormatContext *s){ ...@@ -616,7 +617,20 @@ static int asf_read_frame_header(AVFormatContext *s){
return -1; return -1;
} }
asf->packet_frag_timestamp = get_le32(pb); // timestamp 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 rsize += asf->packet_replic_size; // FIXME - check validity
} else if (asf->packet_replic_size==1){ } else if (asf->packet_replic_size==1){
// multipacket - frag_offset is begining timestamp // multipacket - frag_offset is begining timestamp
......
...@@ -107,7 +107,7 @@ typedef struct { ...@@ -107,7 +107,7 @@ typedef struct {
int packet_padsize; int packet_padsize;
unsigned int packet_frag_offset; unsigned int packet_frag_offset;
unsigned int packet_frag_size; unsigned int packet_frag_size;
int packet_frag_timestamp; int64_t packet_frag_timestamp;
int packet_multi_size; int packet_multi_size;
int packet_obj_size; int packet_obj_size;
int packet_time_delta; int packet_time_delta;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment