Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
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 00:22:52 +0100 (CET)
Message-ID: <42c52732-bdae-2bd8-585-84165a2a39a5@passwd.hu> (raw)
In-Reply-To: <167451425590.26119.9270386946186843808@lain.khirnov.net>



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.

Regards,
Marton

>
> -- 
> Anton Khirnov
> _______________________________________________
> 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".

  reply	other threads:[~2023-01-23 23:23 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 [this message]
2023-01-24  0:01                     ` Michael Niedermayer
2023-01-24  0:06                       ` Marton Balint
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=42c52732-bdae-2bd8-585-84165a2a39a5@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