summaryrefslogtreecommitdiff
path: root/libavformat/flvenc.c
diff options
context:
space:
mode:
authorasilvestre <antoni.silvestrepadros@vonage.com>2021-11-26 17:27:18 +0100
committerMarton Balint <cus@passwd.hu>2021-11-29 21:30:09 +0100
commit1c2dae153cd6574252fbcf60fb3782440ef43056 (patch)
tree709e58bd318f33c473208c69e0e7c2f9b6549f81 /libavformat/flvenc.c
parent3809467d4dc26a1ec7d7afb617c2a1f89eaa6a8b (diff)
downloadffmpeg-1c2dae153cd6574252fbcf60fb3782440ef43056.tar.gz
avformat/flvenc: avoid 24bit timestamp truncation for FLV metadata
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. Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavformat/flvenc.c')
-rw-r--r--libavformat/flvenc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
index c5926575a1..5130d429ad 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 */