10 Jul 2021, 09:42 by d...@lynne.ee: > 10 Jul 2021, 03:10 by roman.bera...@prusa3d.cz: > >> Frame size of Opus stream was previously presumed here to be 960 samples >> (20ms), however sizes of 120, 240, 480, 1920, and 2880 are also allowed. >> It can also alter on a per-packet basis and even multiple frames may be >> present in a single packet according to the specification, for the sake >> of simplicity however, let us assume that this doesn't occur. >> > > Actually 120ms frames are the maximum, so 5760 samples, but that's > irrelevant to the patch. > > >> if (pb->seekable & AVIO_SEEKABLE_NORMAL) { >> int64_t file_size = avio_tell(pb); >> >> avio_seek(pb, caf->data, SEEK_SET); >> avio_wb64(pb, file_size - caf->data - 8); >> - avio_seek(pb, file_size, SEEK_SET); >> if (!par->block_align) { >> + int packet_size = samples_per_packet(par->codec_id, >> par->channels, par->block_align); >> + if (!packet_size) { >> + packet_size = st->duration / (caf->packets - 1); >> + avio_seek(pb, FRAME_SIZE_OFFSET, SEEK_SET); >> + avio_wb32(pb, packet_size); >> + } >> + avio_seek(pb, file_size, SEEK_SET); >> ffio_wfourcc(pb, "pakt"); >> avio_wb64(pb, caf->size_entries_used + 24); >> avio_wb64(pb, caf->packets); ///< mNumberPackets >> - avio_wb64(pb, caf->packets * samples_per_packet(par->codec_id, >> par->channels, par->block_align)); ///< mNumberValidFrames >> + avio_wb64(pb, caf->packets * packet_size); ///< >> mNumberValidFrames >> avio_wb32(pb, 0); ///< mPrimingFrames >> avio_wb32(pb, 0); ///< mRemainderFrames >> avio_write(pb, caf->pkt_sizes, caf->size_entries_used); >> > > This doesn't move the pointer back to the file end if par->block_align is set. > I think that's fine though, since the function writes the trailer, which > should > mean that nothing more needs to be written. > Patch LGTM. But please, someone yell at Apple to support Opus in MP4, > WebM and OGG, as terrible as that is. >
Patch pushed, thanks _______________________________________________ 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".