Message ID | 20211217200418.68942-3-ffmpeg@tmm1.net |
---|---|
State | Accepted |
Commit | edca1fa17c4f4a87c9f563829dec526fced154a6 |
Headers | show |
Series | [FFmpeg-devel,v4,1/5] avfilter/vf_yadif_cuda: simplify filter definition | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
On 12/17/2021 5:04 PM, Aman Karmani wrote: > From: Aman Karmani <aman@tmm1.net> > > Reviewed-by: Ridley Combs <rcombs@rcombs.me> > Signed-off-by: Aman Karmani <aman@tmm1.net> > --- > libavutil/objc.h | 32 ++++++++++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > create mode 100644 libavutil/objc.h > > diff --git a/libavutil/objc.h b/libavutil/objc.h > new file mode 100644 > index 0000000000..0db993f716 > --- /dev/null > +++ b/libavutil/objc.h > @@ -0,0 +1,32 @@ > +/* > + * This file is part of FFmpeg. > + * > + * FFmpeg is free software; you can redistribute it and/or > + * modify it under the terms of the GNU Lesser General Public > + * License as published by the Free Software Foundation; either > + * version 2.1 of the License, or (at your option) any later version. > + * > + * FFmpeg is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with FFmpeg; if not, write to the Free Software > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA > + */ > + > +#ifndef AVUTIL_OBJC_H > +#define AVUTIL_OBJC_H > + > +#include <Foundation/Foundation.h> > + > +static inline void ff_objc_release(NSObject **obj) > +{ > + if (*obj) { > + [*obj release]; > + *obj = nil; > + } > +} > + > +#endif /* AVUTIL_OBJC_H */ This breaks checkheaders. It should be added to SKIPHEADERS with the corresponding check. Also, why is this in lavu if it's ultimately only used in lavfi? And does it need to be a separate header at all? It's apparently not even C.
On Sun, Dec 19, 2021 at 9:09 AM James Almer <jamrial@gmail.com> wrote: > On 12/17/2021 5:04 PM, Aman Karmani wrote: > > From: Aman Karmani <aman@tmm1.net> > > > > Reviewed-by: Ridley Combs <rcombs@rcombs.me> > > Signed-off-by: Aman Karmani <aman@tmm1.net> > > --- > > libavutil/objc.h | 32 ++++++++++++++++++++++++++++++++ > > 1 file changed, 32 insertions(+) > > create mode 100644 libavutil/objc.h > > > > diff --git a/libavutil/objc.h b/libavutil/objc.h > > new file mode 100644 > > index 0000000000..0db993f716 > > --- /dev/null > > +++ b/libavutil/objc.h > > @@ -0,0 +1,32 @@ > > +/* > > + * This file is part of FFmpeg. > > + * > > + * FFmpeg is free software; you can redistribute it and/or > > + * modify it under the terms of the GNU Lesser General Public > > + * License as published by the Free Software Foundation; either > > + * version 2.1 of the License, or (at your option) any later version. > > + * > > + * FFmpeg is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > > + * Lesser General Public License for more details. > > + * > > + * You should have received a copy of the GNU Lesser General Public > > + * License along with FFmpeg; if not, write to the Free Software > > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > 02110-1301 USA > > + */ > > + > > +#ifndef AVUTIL_OBJC_H > > +#define AVUTIL_OBJC_H > > + > > +#include <Foundation/Foundation.h> > > + > > +static inline void ff_objc_release(NSObject **obj) > > +{ > > + if (*obj) { > > + [*obj release]; > > + *obj = nil; > > + } > > +} > > + > > +#endif /* AVUTIL_OBJC_H */ > > This breaks checkheaders. It should be added to SKIPHEADERS with the > corresponding check. > Sorry, will fix. > > Also, why is this in lavu if it's ultimately only used in lavfi? And > does it need to be a separate header at all? It's apparently not even C. > It is a generic helper requested by rcombs. I think the plan is to reuse it in other filters/decoders/encoders written in obj-c. One of the reasons is becausing calling `[nil release]` can crash. You're right that it is not C, its obj-c and that's why it was simpler to have it be an include only header. I'm not sure if using a different extension would have been preferred. Aman > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
On 19 Dec 2021, at 18:35, Aman Karmani wrote: > On Sun, Dec 19, 2021 at 9:09 AM James Almer <jamrial@gmail.com> wrote: > >> On 12/17/2021 5:04 PM, Aman Karmani wrote: >>> From: Aman Karmani <aman@tmm1.net> >>> >>> Reviewed-by: Ridley Combs <rcombs@rcombs.me> >>> Signed-off-by: Aman Karmani <aman@tmm1.net> >>> --- >>> libavutil/objc.h | 32 ++++++++++++++++++++++++++++++++ >>> 1 file changed, 32 insertions(+) >>> create mode 100644 libavutil/objc.h >>> >>> diff --git a/libavutil/objc.h b/libavutil/objc.h >>> new file mode 100644 >>> index 0000000000..0db993f716 >>> --- /dev/null >>> +++ b/libavutil/objc.h >>> @@ -0,0 +1,32 @@ >>> +/* >>> + * This file is part of FFmpeg. >>> + * >>> + * FFmpeg is free software; you can redistribute it and/or >>> + * modify it under the terms of the GNU Lesser General Public >>> + * License as published by the Free Software Foundation; either >>> + * version 2.1 of the License, or (at your option) any later version. >>> + * >>> + * FFmpeg is distributed in the hope that it will be useful, >>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >>> + * Lesser General Public License for more details. >>> + * >>> + * You should have received a copy of the GNU Lesser General Public >>> + * License along with FFmpeg; if not, write to the Free Software >>> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA >> 02110-1301 USA >>> + */ >>> + >>> +#ifndef AVUTIL_OBJC_H >>> +#define AVUTIL_OBJC_H >>> + >>> +#include <Foundation/Foundation.h> >>> + >>> +static inline void ff_objc_release(NSObject **obj) >>> +{ >>> + if (*obj) { >>> + [*obj release]; >>> + *obj = nil; >>> + } >>> +} >>> + >>> +#endif /* AVUTIL_OBJC_H */ >> >> This breaks checkheaders. It should be added to SKIPHEADERS with the >> corresponding check. >> > > Sorry, will fix. > > >> >> Also, why is this in lavu if it's ultimately only used in lavfi? And >> does it need to be a separate header at all? It's apparently not even C. >> > > It is a generic helper requested by rcombs. I think the plan is to reuse it > in other filters/decoders/encoders written in obj-c. > > One of the reasons is becausing calling `[nil release]` can crash. That's not true, dispatching a message to nil in Objective-C has no effect. I don't really see the benefit of this helper, personally. > > You're right that it is not C, its obj-c and that's why it was simpler to > have it be an include only header. I'm not sure if using a different > extension would have been preferred. > > Aman > > >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >> > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavutil/objc.h b/libavutil/objc.h new file mode 100644 index 0000000000..0db993f716 --- /dev/null +++ b/libavutil/objc.h @@ -0,0 +1,32 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_OBJC_H +#define AVUTIL_OBJC_H + +#include <Foundation/Foundation.h> + +static inline void ff_objc_release(NSObject **obj) +{ + if (*obj) { + [*obj release]; + *obj = nil; + } +} + +#endif /* AVUTIL_OBJC_H */