Quoting Vittorio Giovara (2017-04-10 14:44:38) > On Fri, Apr 7, 2017 at 3:13 PM, James Almer <[email protected]> wrote: > > On 4/7/2017 3:20 PM, Vittorio Giovara wrote: > >> On Fri, Apr 7, 2017 at 8:13 PM, James Almer <[email protected]> wrote: > >>> On 4/7/2017 1:48 PM, Vittorio Giovara wrote: > >>>> On Fri, Apr 7, 2017 at 2:27 PM, Steve Lhomme <[email protected]> wrote: > >>>>> + * @note The struct should be allocated with > >>>>> av_mastering_display_metadata_alloc() > >>>>> + * and its size is not a part of the public ABI. > >>>>> + */ > >>>>> +typedef struct AVMasteringDisplayMetadata { > >>>>> +} AVMasteringDisplayMetadata; > >>>>> + > >>>>> +/** > >>>>> + * Allocate an AVMasteringDisplayMetadata structure and set its fields > >>>>> to > >>>>> + * default values. The resulting struct can be freed using av_freep(). > >>>>> + * > >>>>> + * @return An AVMasteringDisplayMetadata filled with default values or > >>>>> NULL > >>>>> + * on failure. > >>>>> + */ > >>>>> +AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc(void); > >>>> > >>>> This signature might be problematic, it should host a size_t* which > >>>> should be filled with the size of the struct, like it's done for other > >>>> side data (except stereo3d for historical reasons). > >>> > >>> That will mean different signature between projects. > >>> > >>> And for that matter, why were you against me trying to add a replacement > >>> alloc function with this parameter, then? > >> > >> Because I don't think it's an issue big enough to warrant an API > >> change over existing code. > >> > >> On the other hand this new code in Libav so hopefully the code should > >> be fixed before committing and there is no need to break anything. > >> It's unfortunate that the signature will be different but either > >> documentation or ABI is currently violated in ffmpeg, there is no need > >> to replicate this behaviour in libav, in my opinion. > > > > We could add a function that returns size for this and every other > > similar struct, even if they already have an alloc function that > > also returns the struct size like Spherical. > > Something like that is in any case needed for av_*_new_side_data(), > > as those function do their own memory allocation. > > Hi James, > this could be a plausible workaround, which should be done in addition > to fixing the signature in my opinion. > Let's wait for other people opinions and ideas on this though.
Why should we add workarounds when a perfectly working pattern exists already (the size_t* parameter to the alloc function). If mismatching signatures are a concern for you then the function could be renamed (its name is overly long for my taste anyway). -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
