Signed-off-by: vladimir <[email protected]>
---
libavformat/asf.h | 2 ++
libavformat/asfenc.c | 4 ++++
2 files changed, 6 insertions(+)
diff --git a/libavformat/asf.h b/libavformat/asf.h
index 4ac644e..2f6722a 100644
--- a/libavformat/asf.h
+++ b/libavformat/asf.h
@@ -78,6 +78,8 @@ typedef struct ASFMainHeader {
typedef struct ASFIndex {
uint32_t packet_number;
uint16_t packet_count;
+ uint64_t send_time;
+ uint64_t offset;
} ASFIndex;
extern const ff_asf_guid ff_asf_header;
diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c
index 33f41e3..19e8110 100644
--- a/libavformat/asfenc.c
+++ b/libavformat/asfenc.c
@@ -763,12 +763,14 @@ static void put_frame(AVFormatContext *s, ASFStream
*stream, AVStream *avst,
static int asf_write_packet(AVFormatContext *s, AVPacket *pkt)
{
ASFContext *asf = s->priv_data;
+ AVIOContext *pb = s->pb;
ASFStream *stream;
int64_t duration;
AVCodecContext *codec;
int64_t packet_st, pts;
int start_sec, i;
int flags = pkt->flags;
+ uint64_t offset = avio_tell(pb);
codec = s->streams[pkt->stream_index]->codec;
stream = &asf->streams[pkt->stream_index];
@@ -803,6 +805,8 @@ static int asf_write_packet(AVFormatContext *s, AVPacket
*pkt)
// store
asf->index_ptr[i].packet_number = (uint32_t)packet_st;
asf->index_ptr[i].packet_count = (uint16_t)(asf->nb_packets -
packet_st);
+ asf->index_ptr[i].send_time = start_sec *
INT64_C(10000000);
+ asf->index_ptr[i].offset = offset;
asf->maximum_packet = FFMAX(asf->maximum_packet,
(uint16_t)(asf->nb_packets - packet_st));
}
--
1.8.1.4
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel