[FFmpeg-devel] [PATCH v4 3/5] avutil: add obj-c helpers into header-only include

Marvin Scholz epirat07 at gmail.com
Sun Dec 19 20:03:48 EET 2021



On 19 Dec 2021, at 18:35, Aman Karmani wrote:

> On Sun, Dec 19, 2021 at 9:09 AM James Almer <jamrial at gmail.com> wrote:
>
>> On 12/17/2021 5:04 PM, Aman Karmani wrote:
>>> From: Aman Karmani <aman at tmm1.net>
>>>
>>> Reviewed-by: Ridley Combs <rcombs at rcombs.me>
>>> Signed-off-by: Aman Karmani <aman at 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 at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list