On 4/23/2025 11:13 AM, Dawid Kozinski wrote:
@@ -2757,6 +2789,8 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex } else if (track->par->codec_id ==AV_CODEC_ID_EVC) { mov_write_evcc_tag(pb, track); + } else if (track->par->codec_id ==AV_CODEC_ID_APV) { + mov_write_apvc_tag(pb, track); } else if (track->par->codec_id == AV_CODEC_ID_VP9) { mov_write_vpcc_tag(mov->fc, pb, track); } else if (track->par->codec_id == AV_CODEC_ID_AV1) { @@ -6713,6 +6747,18 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) memset(trk->vos_data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE); }+ if (par->codec_id == AV_CODEC_ID_APV && !trk->vos_len) {+ ret = ff_isom_create_apv_dconf_record(&trk->vos_data, &trk->vos_len); + if (!trk->vos_data) { + ret = AVERROR(ENOMEM); + goto err; + } + } + + if (par->codec_id == AV_CODEC_ID_APV && trk->vos_len) { + ret = ff_isom_fill_apv_dconf_record(trk->vos_data, pkt->data, size); + } + if (par->codec_id == AV_CODEC_ID_AAC && pkt->size > 2 && (AV_RB16(pkt->data) & 0xfff0) == 0xfff0) { if (!trk->st->nb_frames) {
Instead of this, add APV to the list in https://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/movenc.c;h=4bc8bd1b2ab765c2b9f5f5dfc2dcb77361f2b944;hb=HEAD#l6697 so the first packet is always copied to trk->vos_data in case par->extradata is not set.
After that, ff_isom_write_apvc() can either write the extradata as is if it's already a configuration record, or generate it if it's just a packet of PBUs (See ff_isom_write_hvcc()).
OpenPGP_signature.asc
Description: OpenPGP digital signature
_______________________________________________ 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".