From: Marton Balint <cus@passwd.hu>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 00/26] Major library version bump
Date: Tue, 24 Jan 2023 01:06:46 +0100 (CET)
Message-ID: <36973e9f-90be-9329-e795-59992aebee2b@passwd.hu> (raw)
In-Reply-To: <20230124000144.GB1949656@pb2>
On Tue, 24 Jan 2023, Michael Niedermayer wrote:
> On Tue, Jan 24, 2023 at 12:22:52AM +0100, Marton Balint wrote:
>>
>>
>> On Mon, 23 Jan 2023, Anton Khirnov wrote:
>>
>>> Quoting Marton Balint (2023-01-23 23:41:11)
>>>> On Mon, 23 Jan 2023, Anton Khirnov wrote:
>>>>> Quoting Marton Balint (2023-01-21 23:00:52)
>>>>>> AVCodecContext->frame_number should be changed to int64_t. I guess you
>>>>>> could do something similar which was done for buffer_size_t, but that
>>>>>> seems like a lot of extra work and ifdefry for questionable benefit.
>>>>>
>>>>> Not breaking callers seems like a very solid benefit to me.
>>>>
>>>> I am not sure if I see your point, during unstable, you can break callers,
>>>> and I planned to do the change during unstable.
>>>
>>> My understanding of this instability period is that it's mainly for ABI
>>> changes like reordering struct fields and such, you're still not allowed
>>> to arbitrarily break random APIs. The entire point of having deprecation
>>> periods is that callers can prepare in advance and never actually be
>>> broken.
>>
>> If some fields or API is deprecated, then yes, it makes sense. But if no
>> deprecation / replacement API is provided, then how will anybody prepare?
>> For type changes, fields are usually not deprecated. Ifdefs are only used to
>> prepare the changes for the next API bump. For example, buffer_size_t was in
>> the codebase for 2 months only.
>>
>> It is not that big of a deal to make a patch if #ifdefs, I just really don't
>> see the benefit.
>>
>> An actual problem however, is that printf() like functions expect type
>> specifiers, and unlike buffer sizes, there is a good chance the users
>> sometimes print AVCodecContext->frame_number or AVFrame->xxx_picture_number,
>> which will become undefined behaviour. And yes, the compiler will usually
>> warn, but still, type changes can cause silent breakage. But using #define
>> API guards will not fix this, whenever you change the type, code will get
>> broken, I am not sure if anything can be done about it.
>
> if you want to avoid this then, new type, new identifer
Sure, but do we want AVFrame->coded_picture_number64,
AVFrame->display_picture_number64 and AVCodecContext->frame_number64?
Regards,
Marton
_______________________________________________
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".
next prev parent reply other threads:[~2023-01-24 0:07 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-16 13:38 James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 01/26] avcodec: remove FF_API_OPENH264_SLICE_MODE James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 02/26] avcodec: remove FF_API_OPENH264_CABAC James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 03/26] avcodec: remove FF_API_UNUSED_CODEC_CAPS James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 04/26] avcodec: remove FF_API_THREAD_SAFE_CALLBACKS James Almer
2023-01-20 22:44 ` Michael Niedermayer
2023-01-23 22:05 ` James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 05/26] avcodec: remove FF_API_DEBUG_MV James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 06/26] avcodec: remove FF_API_GET_FRAME_CLASS James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 07/26] avcodec: remove FF_API_AUTO_THREADS James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 08/26] avcodec: remove FF_API_AVCTX_TIMEBASE James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 09/26] avcodec: remove FF_API_FLAG_TRUNCATED James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 10/26] avcodec: remove FF_API_SUB_TEXT_FORMAT James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 11/26] avformat: remove FF_API_LAVF_PRIV_OPT James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 12/26] avformat: remove FF_API_AVIOCONTEXT_WRITTEN James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 13/26] avformat: remove FF_HLS_TS_OPTIONS James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 14/26] avformat: remove FF_API_AVSTREAM_CLASS James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 15/26] avfilter: remove FF_API_SWS_PARAM_OPTION James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 16/26] avfilter: remove FF_API_BUFFERSINK_ALLOC James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 17/26] avfilter: remove FF_API_PAD_COUNT James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 18/26] avdevice: remove FF_API_DEVICE_CAPABILITIES James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 19/26] avutil: remove FF_API_D2STR James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 20/26] avutil: remove FF_API_DECLARE_ALIGNED James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 21/26] avutil: remove FF_API_COLORSPACE_NAME James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 22/26] avutil: remove FF_API_AV_MALLOCZ_ARRAY James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 23/26] avutil/version: postpone the remaining API deprecations James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 24/26] avcodec/version: " James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 25/26] avformat/version: " James Almer
2023-01-16 13:38 ` [FFmpeg-devel] [PATCH 26/26] Bump major versions of all libraries James Almer
2023-01-18 19:28 ` [FFmpeg-devel] [PATCH 00/26] Major library version bump Anton Khirnov
2023-01-18 21:23 ` James Almer
2023-01-19 7:26 ` Anton Khirnov
2023-01-19 12:18 ` James Almer
2023-01-19 15:23 ` Anton Khirnov
2023-01-20 2:05 ` Michael Niedermayer
2023-01-21 16:51 ` Anton Khirnov
2023-01-21 19:33 ` Marvin Scholz
2023-01-21 20:17 ` Hendrik Leppkes
2023-01-21 21:30 ` Marvin Scholz
2023-01-21 22:47 ` Hendrik Leppkes
2023-01-21 21:36 ` Michael Niedermayer
2023-01-21 22:00 ` Marton Balint
2023-01-22 22:54 ` Michael Niedermayer
2023-01-23 17:03 ` Anton Khirnov
2023-01-23 22:41 ` Marton Balint
2023-01-23 22:50 ` Anton Khirnov
2023-01-23 23:22 ` Marton Balint
2023-01-24 0:01 ` Michael Niedermayer
2023-01-24 0:06 ` Marton Balint [this message]
2023-01-24 7:59 ` Anton Khirnov
2023-01-24 19:48 ` Marton Balint
2023-01-21 22:01 ` Marvin Scholz
2023-01-20 15:07 ` Tomas Härdin
2023-01-20 21:23 ` Leo Izen
2023-01-21 16:54 ` Anton Khirnov
2023-01-24 15:45 ` Anton Khirnov
2023-01-25 15:44 ` James Almer
2023-01-25 20:08 ` Marton Balint
2023-01-25 20:44 ` Jean-Baptiste Kempf
2023-01-25 21:03 ` Marton Balint
2023-01-25 21:15 ` Jean-Baptiste Kempf
2023-01-25 21:20 ` Paul B Mahol
2023-01-25 21:26 ` Jean-Baptiste Kempf
2023-01-25 21:29 ` Paul B Mahol
2023-01-25 21:31 ` Jean-Baptiste Kempf
2023-01-25 21:34 ` Paul B Mahol
2023-01-25 22:28 ` Marton Balint
2023-01-25 22:48 ` Jean-Baptiste Kempf
2023-01-25 23:25 ` Marton Balint
2023-01-26 22:16 ` Michael Niedermayer
2023-01-26 22:49 ` Jean-Baptiste Kempf
2023-01-26 23:19 ` Michael Niedermayer
2023-01-26 23:21 ` Jean-Baptiste Kempf
2023-01-27 18:42 ` James Almer
2023-01-27 14:05 ` [FFmpeg-devel] [PATCH 26/31] avcodec/avcodec: Remove AV_CODEC_FLAG2_DROP_FRAME_TIMECODE Andreas Rheinhardt
[not found] ` <20230127140600.2831578-1-andreas.rheinhardt@outlook.com>
2023-01-27 14:05 ` [FFmpeg-devel] [PATCH 27/31] avformat/avformat: Remove AVOutputFormat.data_codec Andreas Rheinhardt
2023-01-27 14:05 ` [FFmpeg-devel] [PATCH 28/31] avformat/avformat: Move codecpar up in AVStream Andreas Rheinhardt
2023-01-27 14:05 ` [FFmpeg-devel] [PATCH 29/31] avcodec: Make avcodec_decode_subtitle2 accept a const AVPacket* Andreas Rheinhardt
2023-01-27 14:05 ` [FFmpeg-devel] [PATCH 30/31] avformat/demux: Avoid stack packet when decoding frame Andreas Rheinhardt
2023-01-27 14:06 ` [FFmpeg-devel] [PATCH 31/31] avformat/avformat: Move AVOutputFormat internals out of public header Andreas Rheinhardt
2023-01-28 13:58 ` [FFmpeg-devel] [PATCH 32/32] avutil/{color_utils, csp}: merge color_utils into csp and expose API Leo Izen
2023-01-29 11:08 ` Anton Khirnov
2023-01-30 16:50 ` [FFmpeg-devel] [PATCH v2] " Leo Izen
2023-01-30 17:08 ` Zhao Zhili
2023-01-30 17:12 ` Paul B Mahol
2023-01-30 18:22 ` Leo Izen
2023-01-31 2:20 ` "zhilizhao(赵志立)"
2023-02-02 7:02 ` [FFmpeg-devel] [PATCH major bump 0/6] Fix HDR vivid support Zhao Zhili
2023-02-02 8:00 ` Lance Wang
[not found] ` <20230202070208.1962086-1-quinkblack@foxmail.com>
2023-02-02 7:02 ` [FFmpeg-devel] [PATCH major bump 1/6] libavutil/hdr_dynamic_vivid_metadata: fix AVHDRVividColorToneMappingParams Zhao Zhili
2023-02-02 8:16 ` Anton Khirnov
2023-02-02 8:52 ` "zhilizhao(赵志立)"
2023-02-03 14:28 ` Anton Khirnov
2023-02-02 7:02 ` [FFmpeg-devel] [PATCH major bump 2/6] libavcodec/dynamic_hdr_vivid: fix start code check Zhao Zhili
2023-02-02 7:02 ` [FFmpeg-devel] [PATCH major bump 3/6] avcodec/dynamic_hdr_vivid: fix base_param_Delta Zhao Zhili
2023-02-02 7:02 ` [FFmpeg-devel] [PATCH major bump 4/6] avcodec/dynamic_hdr_vivid: fix base_enable_flag control Zhao Zhili
2023-02-02 7:02 ` [FFmpeg-devel] [PATCH major bump 5/6] avcodec/dynamic_hdr_vivid: reindent after the previous commit Zhao Zhili
2023-02-02 7:02 ` [FFmpeg-devel] [PATCH major bump 6/6] fftools/ffprobe: fix print_dynamic_hdr_vivid Zhao Zhili
2023-01-29 10:17 ` [FFmpeg-devel] [PATCH 1/3] lavu/fifo: remove FF_API_FIFO_PEEK2 Anton Khirnov
2023-01-29 10:17 ` [FFmpeg-devel] [PATCH 2/3] lavu/fifo: uninline deprecated av_fifo_peek2() Anton Khirnov
2023-01-29 16:11 ` Andreas Rheinhardt
2023-01-29 10:17 ` [FFmpeg-devel] [PATCH 3/3] lavu/fifo: mark all AVFifoBuffer members as deprecated Anton Khirnov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=36973e9f-90be-9329-e795-59992aebee2b@passwd.hu \
--to=cus@passwd.hu \
--cc=ffmpeg-devel@ffmpeg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git