Nicolas George: > Andreas Rheinhardt (12020-08-15): >> This means that one only needs to update the shorter list of references. >> >> Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> >> --- >> I doubt that this optimizations is worth the additional complexity. I >> have just added it for you to decide. > > I must say, I do not understand the logic, especially the preserve_fmts > bit. > The MERGE_REF() macro is asymmetric by design: The refs of the second argument are added to the refs of the first argument and the second argument is freed. The list of the first argument meanwhile is/ought to be preserved. When swapping, one therefore has to swap the non-ref-fields, too. But the MERGE_REF at the end of ff_merge_channel_layouts() is special. The list will be freed and replaced by a different list after the macro anyway, so one doesn't need to preserve the list at all. preserve_fmts exists so that the compiler can optimize this part of MERGE_REF() away for that invocation of the macro.
> I think we can leave it for later. > Or it can be dropped altogether. Which I would actually prefer. > Have you given thought to the linked list option I suggested? > It is certainly interesting (e.g. if I am not mistaken, it would mean that ff_merge_formats/samplerates() can't fail at all any more). I see two obvious downsides: Traversing the list for freeing is slower (but it should only be a constant factor) and it increases the size of the AVFilterLink even after merging. But I don't consider these obstacles to have much weight. Speaking of AVFilterLink: All ff_merge_*() as well as ff_can_merge_*() always use the in- and out-fields of one and the same AVFilterLink. I wonder whether these function should not just take the AVFilterLink * as parameter. It would also mean that ff_merge_formats() would have the same signature as the other functions, which simplifies macros. - Andreas _______________________________________________ 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".