On Wed, 2023-06-28 at 14:55 +0200, Anton Khirnov wrote: > CAUTION: This email originated from outside of the organization. Do > not click links or open attachments unless you can confirm the sender > and know the content is safe. > > > > Quoting Carotti, Elias (2023-06-26 11:50:59) > > We can do whatever you want. However I am not clear on how that
> > would work. > > > > We could have a side data creation api with the standard parameters > > and > > another method to allocate memory so that ownership is kept by > > libavutil returns a pointer to the rectangles (with bounds checking > > and > > so on on the caller): > > > > > > > > av_video_hint_create_side_data(AVFrame *frame, AVVideoHintType > > type); > > > > AVVideoRect* av_video_hint_set_number_of_rectangles( > >                                       AVVideoHint *video_hint, > >                                       size_t n_rects, > >                                       AVVideoHintType > > changed_flag); > > (Names can change I just want to convey a possible api). > > > > Would that work for you? > > > > Or, do you prefer a creation api which already allocates memory and > > sets the number of rectangles but doesn't copy them and that's > > responsibility on the caller? > > What I'd like in this latter case is that (like now) memory would > > be > > flat with no need for specific custom deallocators. > > Something along the lines: > > > > > > AVVideoHint *av_video_hint_create_side_data(AVFrame *frame, > >                                           size_t n_rects, > >                                           AVVideoHintType type); > > > > AVVideoRect *av_video_hint_get_rects(AVVideoHint *video_hint); > > > > > > Third option: side information creation api and the caller has to > > alloc/realloc the rectangle buffer and hand out ownership to > > libavutil, > > but I guess this is the worst one for various reasons. > > > > I do not see any further option. > > What I'm proposing is this: > AVVideoHint *av_video_hint_create_side_data(AVFrame *frame, size_t > num_rects); > AVVideoHint *av_video_hint_alloc(size_t nb_rects, size_t *out_size); > > The caller filles the type and the rectangles manually. > I implemented the changes, I hope it is better now. The libavcodec part remains unchanged and only this part was affected by the change. Best, Elias > > > AVVideoEncParams describes the block-level parameters of an > > > encoded > > code. > > Ok, I see your point and drop my objection. NICE SRL, viale Monte Grappa 3/5, 20124 Milano, Italia, Registro delle Imprese di Milano Monza Brianza Lodi REA n. 2096882, Capitale Sociale: 10.329,14 EUR i.v., Cod. Fisc. e P.IVA 01133050052, Societa con Socio Unico