mirror of
https://mirror.skon.top/https://github.com/FFmpeg/FFmpeg
synced 2026-04-20 21:00:41 +08:00
avformat/movenc: clear subsample information on fragment flush
Don't keep around information from a previous traf atom. Fixes issue #20492. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
@@ -6592,6 +6592,9 @@ static int mov_flush_fragment(AVFormatContext *s, int force)
|
||||
mov_write_moof_tag(s->pb, mov, moof_tracks, mdat_size);
|
||||
mov->fragments++;
|
||||
|
||||
if (track->cenc.aes_ctr)
|
||||
ff_mov_cenc_flush(&track->cenc);
|
||||
|
||||
avio_wb32(s->pb, mdat_size + 8);
|
||||
ffio_wfourcc(s->pb, "mdat");
|
||||
mdat_start = avio_tell(s->pb);
|
||||
|
||||
@@ -629,6 +629,12 @@ int ff_mov_cenc_init(MOVMuxCencContext* ctx, uint8_t* encryption_key,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ff_mov_cenc_flush(MOVMuxCencContext* ctx)
|
||||
{
|
||||
ctx->auxiliary_info_entries = 0;
|
||||
ctx->auxiliary_info_size = 0;
|
||||
}
|
||||
|
||||
void ff_mov_cenc_free(MOVMuxCencContext* ctx)
|
||||
{
|
||||
av_aes_ctr_free(ctx->aes_ctr);
|
||||
|
||||
@@ -91,6 +91,12 @@ int ff_mov_cenc_avc_write_nal_units(AVFormatContext *s, MOVMuxCencContext* ctx,
|
||||
|
||||
int ff_mov_cenc_av1_write_obus(AVFormatContext *s, MOVMuxCencContext* ctx,
|
||||
AVIOContext *pb, const AVPacket *pkt);
|
||||
|
||||
/**
|
||||
* Clear subsample data. To be called for fragmented output.
|
||||
*/
|
||||
void ff_mov_cenc_flush(MOVMuxCencContext* ctx);
|
||||
|
||||
/**
|
||||
* Write the cenc atoms that should reside inside stbl
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user