On Fri, 26 Nov 2021, asilvestre wrote:
FLV AMF tags have a 24bit field for timestamps plus an 8bit for extended timestamps. All FLV AMF tags except when we write metadata handle this correctly using the put_timestamp function. Until now when writing metadata we were only using the first 24 bits and thus the timestamp value was wraping around 4 hours 40 minutes (16,800,000 ms, max 24 bit value 16,777,216) of playback. This commit fixes this applying this same function put_timestamp for the metadata FLV tag. --- libavformat/flvenc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c index 3f24c7e192..70fc977bfb 100644 --- a/libavformat/flvenc.c +++ b/libavformat/flvenc.c @@ -284,8 +284,8 @@ static void write_metadata(AVFormatContext *s, unsigned int ts) avio_w8(pb, FLV_TAG_TYPE_META); // tag type META flv->metadata_size_pos = avio_tell(pb); avio_wb24(pb, 0); // size of data part (sum of all parts below) - avio_wb24(pb, ts); // timestamp - avio_wb32(pb, 0); // reserved + put_timestamp(pb, ts); // timestamp + avio_wb24(pb, 0); // reserved /* now data of data_size size */
Thanks, will apply. Regards, Marton _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".