Mercurial > libavformat.hg
diff asf-enc.c @ 470:334e08488ad1 libavformat
correctly interleave packets during encoding
dts/pts fixed for streamcopy
dont use coded_frame->key_frame hack in muxers, use AVPacket.flags instead
author | michael |
---|---|
date | Sat, 29 May 2004 18:50:31 +0000 |
parents | 60f897e8dd2d |
children | 9a6a30f512b2 |
line wrap: on
line diff
--- a/asf-enc.c Sat May 29 12:01:28 2004 +0000 +++ b/asf-enc.c Sat May 29 18:50:31 2004 +0000 @@ -586,7 +586,8 @@ int presentation_time, int m_obj_size, int m_obj_offset, - int payload_len + int payload_len, + int flags ) { ASFContext *asf = s->priv_data; @@ -594,7 +595,7 @@ int val; val = stream->num; - if (s->streams[val - 1]->codec.coded_frame->key_frame) + if (flags & PKT_FLAG_KEY) val |= ASF_PL_FLAG_KEY_FRAME; put_byte(pb, val); @@ -621,7 +622,8 @@ ASFStream *stream, int timestamp, const uint8_t *buf, - int m_obj_size + int m_obj_size, + int flags ) { ASFContext *asf = s->priv_data; @@ -662,7 +664,7 @@ else if (payload_len == (frag_len1 - 1)) payload_len = frag_len1 - 2; //additional byte need to put padding length - put_payload_header(s, stream, timestamp+preroll_time, m_obj_size, m_obj_offset, payload_len); + put_payload_header(s, stream, timestamp+preroll_time, m_obj_size, m_obj_offset, payload_len, flags); put_buffer(&asf->pb, buf, payload_len); if (asf->multi_payloads_present) @@ -706,7 +708,7 @@ if (duration > asf->duration) asf->duration = duration; - put_frame(s, stream, pkt->pts, pkt->data, pkt->size); + put_frame(s, stream, pkt->pts, pkt->data, pkt->size, pkt->flags); return 0; }