| @@ -485,7 +485,7 @@ static int unsupported_codec(AVFormatContext *s, | |||||
| return AVERROR(ENOSYS); | return AVERROR(ENOSYS); | ||||
| } | } | ||||
| static void flv_write_codec_header(AVFormatContext* s, AVCodecParameters* par) { | |||||
| static void flv_write_codec_header(AVFormatContext* s, AVCodecParameters* par, int64_t ts) { | |||||
| int64_t data_size; | int64_t data_size; | ||||
| AVIOContext *pb = s->pb; | AVIOContext *pb = s->pb; | ||||
| FLVContext *flv = s->priv_data; | FLVContext *flv = s->priv_data; | ||||
| @@ -497,7 +497,7 @@ static void flv_write_codec_header(AVFormatContext* s, AVCodecParameters* par) { | |||||
| par->codec_type == AVMEDIA_TYPE_VIDEO ? | par->codec_type == AVMEDIA_TYPE_VIDEO ? | ||||
| FLV_TAG_TYPE_VIDEO : FLV_TAG_TYPE_AUDIO); | FLV_TAG_TYPE_VIDEO : FLV_TAG_TYPE_AUDIO); | ||||
| avio_wb24(pb, 0); // size patched later | avio_wb24(pb, 0); // size patched later | ||||
| put_timestamp(pb, 0); | |||||
| put_timestamp(pb, ts); | |||||
| avio_wb24(pb, 0); // streamid | avio_wb24(pb, 0); // streamid | ||||
| pos = avio_tell(pb); | pos = avio_tell(pb); | ||||
| if (par->codec_id == AV_CODEC_ID_AAC) { | if (par->codec_id == AV_CODEC_ID_AAC) { | ||||
| @@ -760,7 +760,7 @@ static int flv_write_header(AVFormatContext *s) | |||||
| } | } | ||||
| for (i = 0; i < s->nb_streams; i++) { | for (i = 0; i < s->nb_streams; i++) { | ||||
| flv_write_codec_header(s, s->streams[i]->codecpar); | |||||
| flv_write_codec_header(s, s->streams[i]->codecpar, 0); | |||||
| } | } | ||||
| flv->datastart_offset = avio_tell(pb); | flv->datastart_offset = avio_tell(pb); | ||||
| @@ -904,7 +904,7 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt) | |||||
| } | } | ||||
| memcpy(par->extradata, side, side_size); | memcpy(par->extradata, side, side_size); | ||||
| par->extradata_size = side_size; | par->extradata_size = side_size; | ||||
| flv_write_codec_header(s, par); | |||||
| flv_write_codec_header(s, par, pkt->dts); | |||||
| } | } | ||||
| } | } | ||||