* [FFmpeg-devel] [PATCH 00/31] Major library soname bump
@ 2025-02-23 22:06 James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 01/30] avcodec: remove deprecated FF_API_SUBFRAMES James Almer
` (34 more replies)
0 siblings, 35 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
It's been a year since the last bump, so lets get rid of old deprecated API
in time for ffmpeg 8.0
James Almer (30):
avcodec: remove deprecated FF_API_SUBFRAMES
avcodec: remove deprecated FF_API_TICKS_PER_FRAME
avcodec: remove deprecated FF_API_DROPCHANGED
avcodec: remove deprecated FF_API_AVFFT
avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL
avcodec: remove deprecated FF_API_AVCODEC_CLOSE
avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE
avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET
avcodec: remove deprecated FF_API_QUALITY_FACTOR
avcodec/version_major: postpone some deprecations until the next bump
avdevice: remove deprecated FF_API_BKTR_DEVICE
avdevice: remove deprecated FF_API_OPENGL_DEVICE
avdevice: remove deprecated FF_API_SDL2_DEVICE
avdevice/version_major: postpone some deprecations until the next bump
avformat: remove deprecated FF_API_LAVF_SHORTEST
avformat: remove deprecated FF_API_ALLOW_FLUSH
avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA
avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD
avformat/version_major: postpone some deprecations until the next bump
avfilter: remove deprecated FF_API_LINK_PUBLIC
avfilter/version_major: postpone some deprecations until the next bump
avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE
avutil: remove deprecated FF_API_FRAME_PKT
avutil: remove deprecated FF_API_INTERLACED_FRAME
avutil: remove deprecated FF_API_FRAME_KEY
avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED
avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY
avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS
avutil/version_major: postpone some deprecations until the next bump
libs: bump major version for all libraries
configure | 22 -
libavcodec/8bps.c | 7 -
libavcodec/Makefile | 2 -
libavcodec/alsdec.c | 6 +-
libavcodec/amfenc_av1.c | 8 +-
libavcodec/amfenc_h264.c | 8 +-
libavcodec/amfenc_hevc.c | 8 +-
libavcodec/ansi.c | 10 -
libavcodec/apac.c | 3 -
libavcodec/apedec.c | 6 +-
libavcodec/atrac3.c | 12 +-
libavcodec/atrac9dec.c | 6 +-
libavcodec/av1dec.c | 6 -
libavcodec/avcodec.c | 12 -
libavcodec/avcodec.h | 196 +---
libavcodec/avfft.c | 268 -----
libavcodec/avfft.h | 149 ---
libavcodec/bethsoftvideo.c | 5 -
libavcodec/bfi.c | 10 -
libavcodec/bintext.c | 5 -
libavcodec/bmvvideo.c | 5 -
libavcodec/bonk.c | 3 -
libavcodec/brenderpix.c | 12 -
libavcodec/c93.c | 5 -
libavcodec/cdgraphics.c | 5 -
libavcodec/cdtoons.c | 5 -
libavcodec/cinepak.c | 7 -
libavcodec/codec.h | 15 -
libavcodec/cuviddec.c | 6 -
libavcodec/d3d12va_encode_hevc.c | 6 +-
libavcodec/dds.c | 11 -
libavcodec/decode.c | 90 --
libavcodec/dfa.c | 5 -
libavcodec/dsicinvideo.c | 5 -
libavcodec/dxa.c | 5 -
libavcodec/dynamic_hdr_vivid.c | 11 -
libavcodec/encode.c | 29 -
libavcodec/flashsv2enc.c | 5 +-
libavcodec/flicvideo.c | 5 -
libavcodec/ftr.c | 6 +-
libavcodec/g723_1dec.c | 6 +-
libavcodec/g729dec.c | 12 +-
libavcodec/gemdec.c | 5 -
libavcodec/h2645_sei.c | 11 -
libavcodec/h264dec.c | 6 -
libavcodec/idcinvideo.c | 7 -
libavcodec/imx.c | 10 -
libavcodec/internal.h | 9 -
libavcodec/interplayvideo.c | 7 -
libavcodec/jvdec.c | 12 -
libavcodec/kmvc.c | 17 -
libavcodec/libaomenc.c | 8 +-
libavcodec/libkvazaar.c | 8 +-
libavcodec/libopenh264enc.c | 8 +-
libavcodec/librav1e.c | 8 +-
libavcodec/libspeexdec.c | 6 +-
libavcodec/libsvtav1.c | 8 +-
libavcodec/libuavs3d.c | 12 -
libavcodec/libvpxenc.c | 8 +-
libavcodec/libvvenc.c | 15 +-
libavcodec/libx264.c | 8 +-
libavcodec/libx265.c | 7 +-
libavcodec/mfenc.c | 5 -
libavcodec/misc4.c | 3 -
libavcodec/mpeg12dec.c | 11 -
libavcodec/mpegvideo_parser.c | 10 -
libavcodec/mscc.c | 5 -
libavcodec/msmpeg4enc.c | 8 +-
libavcodec/msrle.c | 8 -
libavcodec/mss1.c | 5 -
libavcodec/msvideo1.c | 7 -
libavcodec/nvenc.c | 8 +-
libavcodec/options_table.h | 10 +-
libavcodec/packet.h | 4 -
libavcodec/pafvideo.c | 5 -
libavcodec/pictordec.c | 5 -
libavcodec/psd.c | 5 -
libavcodec/pthread_frame.c | 5 -
libavcodec/qdrw.c | 5 -
libavcodec/qpeg.c | 7 -
libavcodec/qtrle.c | 8 -
libavcodec/ratecontrol.c | 6 -
libavcodec/rawdec.c | 13 +-
libavcodec/rscc.c | 7 -
libavcodec/sga.c | 5 -
libavcodec/shorten.c | 3 -
libavcodec/smacker.c | 5 -
libavcodec/smc.c | 7 -
libavcodec/targa.c | 5 -
libavcodec/tiertexseqv.c | 5 -
libavcodec/tmv.c | 5 -
libavcodec/tscc.c | 5 -
libavcodec/vb.c | 5 -
libavcodec/vc1.c | 8 -
libavcodec/vdpau.c | 21 -
libavcodec/vdpau.h | 33 -
libavcodec/version.h | 4 +-
libavcodec/version_major.h | 21 +-
libavcodec/vqavideo.c | 5 -
libavcodec/wavarc.c | 3 -
libavcodec/wmalosslessdec.c | 6 +-
libavcodec/wmaprodec.c | 18 +-
libavcodec/wmavoice.c | 6 +-
libavcodec/yop.c | 6 -
libavdevice/Makefile | 3 -
libavdevice/alldevices.c | 3 -
libavdevice/bktr.c | 366 -------
libavdevice/lavfi.c | 10 -
libavdevice/opengl_enc.c | 1325 ------------------------
libavdevice/opengl_enc_shaders.h | 188 ----
libavdevice/pulse_audio_enc.c | 4 -
libavdevice/sdl2.c | 377 -------
libavdevice/version.h | 2 +-
libavdevice/version_major.h | 10 +-
libavfilter/af_volume.c | 15 -
libavfilter/af_volume.h | 3 -
libavfilter/avfilter.c | 25 -
libavfilter/avfilter.h | 14 -
libavfilter/buffersrc.c | 16 -
libavfilter/f_select.c | 11 -
libavfilter/f_sendcmd.c | 11 -
libavfilter/qsvvpp.c | 5 -
libavfilter/setpts.c | 11 -
libavfilter/version.h | 2 +-
libavfilter/version_major.h | 7 +-
libavfilter/vf_coreimage.m | 10 -
libavfilter/vf_crop.c | 15 -
libavfilter/vf_deinterlace_vaapi.c | 5 -
libavfilter/vf_drawtext.c | 18 -
libavfilter/vf_eq.c | 8 -
libavfilter/vf_eq.h | 6 -
libavfilter/vf_estdif.c | 5 -
libavfilter/vf_field.c | 5 -
libavfilter/vf_fieldhint.c | 10 -
libavfilter/vf_fieldmatch.c | 10 -
libavfilter/vf_fieldorder.c | 5 -
libavfilter/vf_idet.c | 32 -
libavfilter/vf_kerndeint.c | 5 -
libavfilter/vf_nnedi.c | 5 -
libavfilter/vf_overlay.c | 14 -
libavfilter/vf_overlay.h | 3 -
libavfilter/vf_overlay_cuda.c | 18 -
libavfilter/vf_scale.c | 41 +-
libavfilter/vf_scale_npp.c | 54 +-
libavfilter/vf_separatefields.c | 5 -
libavfilter/vf_setparams.c | 11 -
libavfilter/vf_swaprect.c | 17 +-
libavfilter/vf_telecine.c | 18 -
libavfilter/vf_tinterlace.c | 23 -
libavfilter/vf_w3fdif.c | 5 -
libavfilter/vf_weave.c | 6 -
libavfilter/vsrc_gradients.c | 11 -
libavfilter/vsrc_testsrc.c | 5 -
libavfilter/yadif_common.c | 10 -
libavformat/avformat.c | 91 --
libavformat/avformat.h | 120 ---
libavformat/avformat_internal.h | 7 -
libavformat/demux.c | 52 -
libavformat/demux_utils.c | 12 -
libavformat/fifo.c | 4 -
libavformat/hlsenc.c | 4 -
libavformat/internal.h | 11 -
libavformat/matroskaenc.c | 13 -
libavformat/movenc.c | 40 +-
libavformat/mpegtsenc.c | 4 -
libavformat/mux.c | 60 --
libavformat/oggenc.c | 20 -
libavformat/options.c | 16 -
libavformat/options_table.h | 3 -
libavformat/seek.c | 7 -
libavformat/tee.c | 4 -
libavformat/tests/fifo_muxer.c | 4 -
libavformat/version.h | 4 +-
libavformat/version_major.h | 10 +-
libavutil/film_grain_params.h | 58 +-
libavutil/frame.c | 28 -
libavutil/frame.h | 62 --
libavutil/hdr_dynamic_vivid_metadata.h | 54 -
libavutil/hwcontext_vulkan.h | 5 -
libavutil/version.h | 21 +-
libpostproc/version.h | 2 +-
libpostproc/version_major.h | 2 +-
libswresample/version.h | 2 +-
libswresample/version_major.h | 2 +-
libswscale/version.h | 2 +-
libswscale/version_major.h | 2 +-
186 files changed, 90 insertions(+), 4938 deletions(-)
delete mode 100644 libavcodec/avfft.c
delete mode 100644 libavcodec/avfft.h
delete mode 100644 libavdevice/bktr.c
delete mode 100644 libavdevice/opengl_enc.c
delete mode 100644 libavdevice/opengl_enc_shaders.h
delete mode 100644 libavdevice/sdl2.c
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 01/30] avcodec: remove deprecated FF_API_SUBFRAMES
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 02/30] avcodec: remove deprecated FF_API_TICKS_PER_FRAME James Almer
` (33 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-05-15.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/alsdec.c | 6 +-----
libavcodec/apac.c | 3 ---
libavcodec/apedec.c | 6 +-----
libavcodec/atrac3.c | 12 ++----------
libavcodec/atrac9dec.c | 6 +-----
libavcodec/bonk.c | 3 ---
libavcodec/codec.h | 15 ---------------
libavcodec/ftr.c | 6 +-----
libavcodec/g723_1dec.c | 6 +-----
libavcodec/g729dec.c | 12 ++----------
libavcodec/libspeexdec.c | 6 +-----
libavcodec/misc4.c | 3 ---
libavcodec/shorten.c | 3 ---
libavcodec/version_major.h | 1 -
libavcodec/wavarc.c | 3 ---
libavcodec/wmalosslessdec.c | 6 +-----
libavcodec/wmaprodec.c | 18 +++---------------
libavcodec/wmavoice.c | 6 +-----
18 files changed, 15 insertions(+), 106 deletions(-)
diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c
index 28f2079985..734eec8bf8 100644
--- a/libavcodec/alsdec.c
+++ b/libavcodec/alsdec.c
@@ -2190,10 +2190,6 @@ const FFCodec ff_als_decoder = {
.close = decode_end,
FF_CODEC_DECODE_CB(decode_frame),
.flush = flush,
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
+ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/apac.c b/libavcodec/apac.c
index eb05d38636..0ba944b4ca 100644
--- a/libavcodec/apac.c
+++ b/libavcodec/apac.c
@@ -269,9 +269,6 @@ const FFCodec ff_apac_decoder = {
FF_CODEC_DECODE_CB(apac_decode),
.close = apac_close,
.p.capabilities = AV_CODEC_CAP_DELAY |
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index d75a85f466..5b66b4ed2e 100644
--- a/libavcodec/apedec.c
+++ b/libavcodec/apedec.c
@@ -1759,11 +1759,7 @@ const FFCodec ff_ape_decoder = {
.init = ape_decode_init,
.close = ape_decode_close,
FF_CODEC_DECODE_CB(ape_decode_frame),
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DELAY |
+ .p.capabilities = AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.flush = ape_flush,
diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
index 39ddfd9e45..3f804aa81d 100644
--- a/libavcodec/atrac3.c
+++ b/libavcodec/atrac3.c
@@ -1027,11 +1027,7 @@ const FFCodec ff_atrac3_decoder = {
.init = atrac3_decode_init,
.close = atrac3_decode_close,
FF_CODEC_DECODE_CB(atrac3_decode_frame),
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1,
+ .p.capabilities = AV_CODEC_CAP_DR1,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_NONE },
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
@@ -1046,11 +1042,7 @@ const FFCodec ff_atrac3al_decoder = {
.init = atrac3_decode_init,
.close = atrac3_decode_close,
FF_CODEC_DECODE_CB(atrac3al_decode_frame),
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1,
+ .p.capabilities = AV_CODEC_CAP_DR1,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_NONE },
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/atrac9dec.c b/libavcodec/atrac9dec.c
index e375f46fd0..e37f88500b 100644
--- a/libavcodec/atrac9dec.c
+++ b/libavcodec/atrac9dec.c
@@ -1006,9 +1006,5 @@ const FFCodec ff_atrac9_decoder = {
FF_CODEC_DECODE_CB(atrac9_decode_frame),
.flush = atrac9_decode_flush,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
+ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
};
diff --git a/libavcodec/bonk.c b/libavcodec/bonk.c
index 14b7457a1a..434d56c787 100644
--- a/libavcodec/bonk.c
+++ b/libavcodec/bonk.c
@@ -427,9 +427,6 @@ const FFCodec ff_bonk_decoder = {
FF_CODEC_DECODE_CB(bonk_decode),
.close = bonk_close,
.p.capabilities = AV_CODEC_CAP_DELAY |
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
diff --git a/libavcodec/codec.h b/libavcodec/codec.h
index f7541ffc42..f509e5d94e 100644
--- a/libavcodec/codec.h
+++ b/libavcodec/codec.h
@@ -80,21 +80,6 @@
*/
#define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6)
-#if FF_API_SUBFRAMES
-/**
- * Codec can output multiple frames per AVPacket
- * Normally demuxers return one frame at a time, demuxers which do not do
- * are connected to a parser to split what they return into proper frames.
- * This flag is reserved to the very rare category of codecs which have a
- * bitstream that cannot be split into frames without timeconsuming
- * operations like full decoding. Demuxers carrying such bitstreams thus
- * may return multiple frames in a packet. This has many disadvantages like
- * prohibiting stream copy in many cases thus it should only be considered
- * as a last resort.
- */
-#define AV_CODEC_CAP_SUBFRAMES (1 << 8)
-#endif
-
/**
* Codec is experimental and is thus avoided in favor of non experimental
* encoders
diff --git a/libavcodec/ftr.c b/libavcodec/ftr.c
index 7cf1b1586f..3e7ab92887 100644
--- a/libavcodec/ftr.c
+++ b/libavcodec/ftr.c
@@ -203,10 +203,6 @@ const FFCodec ff_ftr_decoder = {
.close = ftr_close,
.flush = ftr_flush,
.priv_data_size = sizeof(FTRContext),
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1,
+ .p.capabilities = AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
diff --git a/libavcodec/g723_1dec.c b/libavcodec/g723_1dec.c
index 5fe4a21d9b..67a5df55ff 100644
--- a/libavcodec/g723_1dec.c
+++ b/libavcodec/g723_1dec.c
@@ -1118,10 +1118,6 @@ const FFCodec ff_g723_1_decoder = {
.priv_data_size = sizeof(G723_1_Context),
.init = g723_1_decode_init,
FF_CODEC_DECODE_CB(g723_1_decode_frame),
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1,
+ .p.capabilities = AV_CODEC_CAP_DR1,
.p.priv_class = &g723_1dec_class,
};
diff --git a/libavcodec/g729dec.c b/libavcodec/g729dec.c
index bf10a6dd33..7499ed7444 100644
--- a/libavcodec/g729dec.c
+++ b/libavcodec/g729dec.c
@@ -761,11 +761,7 @@ const FFCodec ff_g729_decoder = {
.init = decoder_init,
FF_CODEC_DECODE_CB(decode_frame),
.close = decode_close,
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1,
+ .p.capabilities = AV_CODEC_CAP_DR1,
};
const FFCodec ff_acelp_kelvin_decoder = {
@@ -777,9 +773,5 @@ const FFCodec ff_acelp_kelvin_decoder = {
.init = decoder_init,
FF_CODEC_DECODE_CB(decode_frame),
.close = decode_close,
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1,
+ .p.capabilities = AV_CODEC_CAP_DR1,
};
diff --git a/libavcodec/libspeexdec.c b/libavcodec/libspeexdec.c
index 84b308490a..46f65ab075 100644
--- a/libavcodec/libspeexdec.c
+++ b/libavcodec/libspeexdec.c
@@ -195,11 +195,7 @@ const FFCodec ff_libspeex_decoder = {
CODEC_LONG_NAME("libspeex Speex"),
.p.type = AVMEDIA_TYPE_AUDIO,
.p.id = AV_CODEC_ID_SPEEX,
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DELAY | AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
+ .p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
.p.wrapper_name = "libspeex",
.caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE,
.priv_data_size = sizeof(LibSpeexContext),
diff --git a/libavcodec/misc4.c b/libavcodec/misc4.c
index 72ac944e54..e91d4dce04 100644
--- a/libavcodec/misc4.c
+++ b/libavcodec/misc4.c
@@ -180,9 +180,6 @@ const FFCodec ff_misc4_decoder = {
.init = misc4_init,
FF_CODEC_DECODE_CB(misc4_decode),
.p.capabilities = AV_CODEC_CAP_DR1 |
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
AV_CODEC_CAP_CHANNEL_CONF,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16,
AV_SAMPLE_FMT_NONE },
diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c
index 46d3b7a615..852f3efe26 100644
--- a/libavcodec/shorten.c
+++ b/libavcodec/shorten.c
@@ -817,9 +817,6 @@ const FFCodec ff_shorten_decoder = {
FF_CODEC_DECODE_CB(shorten_decode_frame),
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF |
AV_CODEC_CAP_DELAY |
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
AV_CODEC_CAP_DR1,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
AV_SAMPLE_FMT_U8P,
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 35df5eb779..5b30be148c 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62)
diff --git a/libavcodec/wavarc.c b/libavcodec/wavarc.c
index 93b76c43e8..deb5df2097 100644
--- a/libavcodec/wavarc.c
+++ b/libavcodec/wavarc.c
@@ -881,9 +881,6 @@ const FFCodec ff_wavarc_decoder = {
FF_CODEC_DECODE_CB(wavarc_decode),
.close = wavarc_close,
.p.capabilities = AV_CODEC_CAP_DR1 |
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
AV_CODEC_CAP_DELAY,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
AV_SAMPLE_FMT_S16P,
diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c
index 9559fe1faf..31fc2d2d27 100644
--- a/libavcodec/wmalosslessdec.c
+++ b/libavcodec/wmalosslessdec.c
@@ -1335,11 +1335,7 @@ const FFCodec ff_wmalossless_decoder = {
.close = decode_close,
FF_CODEC_DECODE_CB(decode_packet),
.flush = flush,
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
+ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
AV_SAMPLE_FMT_S32P,
diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c
index a6c4a75632..d1cbadcf8a 100644
--- a/libavcodec/wmaprodec.c
+++ b/libavcodec/wmaprodec.c
@@ -2100,11 +2100,7 @@ const FFCodec ff_wmapro_decoder = {
.init = wmapro_decode_init,
.close = wmapro_decode_end,
FF_CODEC_DECODE_CB(wmapro_decode_packet),
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1,
+ .p.capabilities = AV_CODEC_CAP_DR1,
.flush = wmapro_flush,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_NONE },
@@ -2121,11 +2117,7 @@ const FFCodec ff_xma1_decoder = {
.close = xma_decode_end,
FF_CODEC_DECODE_CB(xma_decode_packet),
.flush = xma_flush,
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
+ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_NONE },
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
@@ -2141,11 +2133,7 @@ const FFCodec ff_xma2_decoder = {
.close = xma_decode_end,
FF_CODEC_DECODE_CB(xma_decode_packet),
.flush = xma_flush,
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
+ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_NONE },
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c
index 39868e02b3..4fa794c8ac 100644
--- a/libavcodec/wmavoice.c
+++ b/libavcodec/wmavoice.c
@@ -2030,11 +2030,7 @@ const FFCodec ff_wmavoice_decoder = {
.init = wmavoice_decode_init,
.close = wmavoice_decode_end,
FF_CODEC_DECODE_CB(wmavoice_decode_packet),
- .p.capabilities =
-#if FF_API_SUBFRAMES
- AV_CODEC_CAP_SUBFRAMES |
-#endif
- AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
+ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.flush = wmavoice_flush,
};
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 02/30] avcodec: remove deprecated FF_API_TICKS_PER_FRAME
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 01/30] avcodec: remove deprecated FF_API_SUBFRAMES James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 03/30] avcodec: remove deprecated FF_API_DROPCHANGED James Almer
` (32 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-05-15.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/amfenc_av1.c | 8 +-------
libavcodec/amfenc_h264.c | 8 +-------
libavcodec/amfenc_hevc.c | 8 +-------
libavcodec/avcodec.h | 17 -----------------
libavcodec/encode.c | 14 --------------
libavcodec/flashsv2enc.c | 5 ++---
libavcodec/h264dec.c | 6 ------
libavcodec/libaomenc.c | 8 +-------
libavcodec/libkvazaar.c | 8 +-------
libavcodec/libopenh264enc.c | 8 +-------
libavcodec/librav1e.c | 8 +-------
libavcodec/libsvtav1.c | 8 +-------
libavcodec/libvpxenc.c | 8 +-------
libavcodec/libvvenc.c | 15 +--------------
libavcodec/libx264.c | 8 +-------
libavcodec/libx265.c | 7 +------
libavcodec/mfenc.c | 5 -----
libavcodec/mpeg12dec.c | 11 -----------
libavcodec/mpegvideo_parser.c | 10 ----------
libavcodec/msmpeg4enc.c | 8 +-------
libavcodec/nvenc.c | 8 +-------
libavcodec/options_table.h | 3 ---
libavcodec/pthread_frame.c | 5 -----
libavcodec/ratecontrol.c | 6 ------
libavcodec/vc1.c | 8 --------
libavcodec/version_major.h | 1 -
libavformat/avformat.c | 11 -----------
libavformat/demux.c | 6 ------
28 files changed, 16 insertions(+), 210 deletions(-)
diff --git a/libavcodec/amfenc_av1.c b/libavcodec/amfenc_av1.c
index 4c815add03..f672585c57 100644
--- a/libavcodec/amfenc_av1.c
+++ b/libavcodec/amfenc_av1.c
@@ -207,13 +207,7 @@ static av_cold int amf_encode_init_av1(AVCodecContext* avctx)
framerate = AMFConstructRate(avctx->framerate.num, avctx->framerate.den);
}
else {
-FF_DISABLE_DEPRECATION_WARNINGS
- framerate = AMFConstructRate(avctx->time_base.den, avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- );
-FF_ENABLE_DEPRECATION_WARNINGS
+ framerate = AMFConstructRate(avctx->time_base.den, avctx->time_base.num);
}
if ((ret = ff_amf_encode_init(avctx)) < 0)
diff --git a/libavcodec/amfenc_h264.c b/libavcodec/amfenc_h264.c
index 1a217350ae..c22241fd68 100644
--- a/libavcodec/amfenc_h264.c
+++ b/libavcodec/amfenc_h264.c
@@ -208,13 +208,7 @@ static av_cold int amf_encode_init_h264(AVCodecContext *avctx)
if (avctx->framerate.num > 0 && avctx->framerate.den > 0) {
framerate = AMFConstructRate(avctx->framerate.num, avctx->framerate.den);
} else {
-FF_DISABLE_DEPRECATION_WARNINGS
- framerate = AMFConstructRate(avctx->time_base.den, avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- );
-FF_ENABLE_DEPRECATION_WARNINGS
+ framerate = AMFConstructRate(avctx->time_base.den, avctx->time_base.num);
}
if ((ret = ff_amf_encode_init(avctx)) != 0)
diff --git a/libavcodec/amfenc_hevc.c b/libavcodec/amfenc_hevc.c
index 3530c453dd..56598939c4 100644
--- a/libavcodec/amfenc_hevc.c
+++ b/libavcodec/amfenc_hevc.c
@@ -173,13 +173,7 @@ static av_cold int amf_encode_init_hevc(AVCodecContext *avctx)
if (avctx->framerate.num > 0 && avctx->framerate.den > 0) {
framerate = AMFConstructRate(avctx->framerate.num, avctx->framerate.den);
} else {
-FF_DISABLE_DEPRECATION_WARNINGS
- framerate = AMFConstructRate(avctx->time_base.den, avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- );
-FF_ENABLE_DEPRECATION_WARNINGS
+ framerate = AMFConstructRate(avctx->time_base.den, avctx->time_base.num);
}
if ((ret = ff_amf_encode_init(avctx)) < 0)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 403f02d841..f6de3c6b42 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -573,23 +573,6 @@ typedef struct AVCodecContext {
*/
AVRational framerate;
-#if FF_API_TICKS_PER_FRAME
- /**
- * For some codecs, the time base is closer to the field rate than the frame rate.
- * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration
- * if no telecine is used ...
- *
- * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2.
- *
- * @deprecated
- * - decoding: Use AVCodecDescriptor.props & AV_CODEC_PROP_FIELDS
- * - encoding: Set AVCodecContext.framerate instead
- *
- */
- attribute_deprecated
- int ticks_per_frame;
-#endif
-
/**
* Codec delay.
*
diff --git a/libavcodec/encode.c b/libavcodec/encode.c
index cd10dcf3cd..7935bb971b 100644
--- a/libavcodec/encode.c
+++ b/libavcodec/encode.c
@@ -613,20 +613,6 @@ static int encode_preinit_video(AVCodecContext *avctx)
return AVERROR(EINVAL);
}
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->ticks_per_frame && avctx->time_base.num &&
- avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) {
- av_log(avctx, AV_LOG_ERROR,
- "ticks_per_frame %d too large for the timebase %d/%d.",
- avctx->ticks_per_frame,
- avctx->time_base.num,
- avctx->time_base.den);
- return AVERROR(EINVAL);
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (avctx->hw_frames_ctx) {
AVHWFramesContext *frames_ctx = (AVHWFramesContext*)avctx->hw_frames_ctx->data;
if (frames_ctx->format != avctx->pix_fmt) {
diff --git a/libavcodec/flashsv2enc.c b/libavcodec/flashsv2enc.c
index 6156d00d0d..52fe0a8730 100644
--- a/libavcodec/flashsv2enc.c
+++ b/libavcodec/flashsv2enc.c
@@ -786,7 +786,7 @@ static int optimum_block_height(FlashSV2Context * s)
static int optimum_use15_7(FlashSV2Context * s)
{
#ifndef FLASHSV2_DUMB
- double ideal = ((double)(s->avctx->bit_rate * s->avctx->time_base.den * s->avctx->ticks_per_frame)) /
+ double ideal = ((double)(s->avctx->bit_rate * s->avctx->time_base.den)) /
((double) s->avctx->time_base.num) * s->avctx->frame_num;
if (ideal + use15_7_threshold < s->total_bits) {
return 1;
@@ -802,8 +802,7 @@ static int optimum_dist(FlashSV2Context * s)
{
#ifndef FLASHSV2_DUMB
double ideal =
- s->avctx->bit_rate * s->avctx->time_base.den *
- s->avctx->ticks_per_frame;
+ s->avctx->bit_rate * s->avctx->time_base.den;
int dist = pow((s->total_bits / ideal) * color15_7_factor, 3);
av_log(s->avctx, AV_LOG_DEBUG, "dist: %d\n", dist);
return dist;
diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
index 45ebe2656d..829427f99b 100644
--- a/libavcodec/h264dec.c
+++ b/libavcodec/h264dec.c
@@ -397,12 +397,6 @@ static av_cold int h264_decode_init(AVCodecContext *avctx)
return AVERROR_UNKNOWN;
}
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->ticks_per_frame = 2;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (!avctx->internal->is_copy) {
if (avctx->extradata_size > 0 && avctx->extradata) {
ret = ff_h264_decode_extradata(avctx->extradata, avctx->extradata_size,
diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
index 0f7571ee7a..9a384fcc39 100644
--- a/libavcodec/libaomenc.c
+++ b/libavcodec/libaomenc.c
@@ -1270,13 +1270,7 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt,
else if (avctx->framerate.num > 0 && avctx->framerate.den > 0)
duration = av_rescale_q(1, av_inv_q(avctx->framerate), avctx->time_base);
else {
-FF_DISABLE_DEPRECATION_WARNINGS
- duration =
-#if FF_API_TICKS_PER_FRAME
- avctx->ticks_per_frame ? avctx->ticks_per_frame :
-#endif
- 1;
-FF_ENABLE_DEPRECATION_WARNINGS
+ duration = 1;
}
switch (frame->color_range) {
diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c
index e82be2a35f..17ef6a5736 100644
--- a/libavcodec/libkvazaar.c
+++ b/libavcodec/libkvazaar.c
@@ -86,13 +86,7 @@ static av_cold int libkvazaar_init(AVCodecContext *avctx)
cfg->framerate_denom = avctx->framerate.den;
} else {
cfg->framerate_num = avctx->time_base.den;
-FF_DISABLE_DEPRECATION_WARNINGS
- cfg->framerate_denom = avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- ;
-FF_ENABLE_DEPRECATION_WARNINGS
+ cfg->framerate_denom = avctx->time_base.num;
}
cfg->target_bitrate = avctx->bit_rate;
cfg->vui.sar_width = avctx->sample_aspect_ratio.num;
diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c
index 7107c1a679..18150fa3b6 100644
--- a/libavcodec/libopenh264enc.c
+++ b/libavcodec/libopenh264enc.c
@@ -135,13 +135,7 @@ static av_cold int svc_encode_init(AVCodecContext *avctx)
if (avctx->framerate.num > 0 && avctx->framerate.den > 0) {
param.fMaxFrameRate = av_q2d(avctx->framerate);
} else {
-FF_DISABLE_DEPRECATION_WARNINGS
- param.fMaxFrameRate = 1.0 / av_q2d(avctx->time_base)
-#if FF_API_TICKS_PER_FRAME
- / FFMAX(avctx->ticks_per_frame, 1)
-#endif
- ;
-FF_ENABLE_DEPRECATION_WARNINGS
+ param.fMaxFrameRate = 1.0 / av_q2d(avctx->time_base);
}
param.iPicWidth = avctx->width;
param.iPicHeight = avctx->height;
diff --git a/libavcodec/librav1e.c b/libavcodec/librav1e.c
index 546d00297d..a1fb1539b6 100644
--- a/libavcodec/librav1e.c
+++ b/libavcodec/librav1e.c
@@ -217,15 +217,9 @@ static av_cold int librav1e_encode_init(AVCodecContext *avctx)
avctx->framerate.den, avctx->framerate.num
});
} else {
-FF_DISABLE_DEPRECATION_WARNINGS
rav1e_config_set_time_base(cfg, (RaRational) {
- avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- , avctx->time_base.den
+ avctx->time_base.num, avctx->time_base.den
});
-FF_ENABLE_DEPRECATION_WARNINGS
}
if ((avctx->flags & AV_CODEC_FLAG_PASS1 || avctx->flags & AV_CODEC_FLAG_PASS2) && !avctx->bit_rate) {
diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 43fe531fde..40ab489f1f 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -311,13 +311,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
param->frame_rate_denominator = avctx->framerate.den;
} else {
param->frame_rate_numerator = avctx->time_base.den;
-FF_DISABLE_DEPRECATION_WARNINGS
- param->frame_rate_denominator = avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- ;
-FF_ENABLE_DEPRECATION_WARNINGS
+ param->frame_rate_denominator = avctx->time_base.num;
}
/* 2 = IDR, closed GOP, 1 = CRA, open GOP */
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index 228ede7c84..189774ff03 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -1831,13 +1831,7 @@ static int vpx_encode(AVCodecContext *avctx, AVPacket *pkt,
else if (avctx->framerate.num > 0 && avctx->framerate.den > 0)
duration = av_rescale_q(1, av_inv_q(avctx->framerate), avctx->time_base);
else {
-FF_DISABLE_DEPRECATION_WARNINGS
- duration =
-#if FF_API_TICKS_PER_FRAME
- avctx->ticks_per_frame ? avctx->ticks_per_frame :
-#endif
- 1;
-FF_ENABLE_DEPRECATION_WARNINGS
+ duration = 1;
}
res = vpx_codec_encode(&ctx->encoder, rawimg, timestamp,
diff --git a/libavcodec/libvvenc.c b/libavcodec/libvvenc.c
index ece9badb19..2966c4e2fd 100644
--- a/libavcodec/libvvenc.c
+++ b/libavcodec/libvvenc.c
@@ -128,20 +128,7 @@ static void vvenc_set_framerate(AVCodecContext *avctx, vvenc_config *params)
params->m_FrameScale = avctx->time_base.num;
}
-FF_DISABLE_DEPRECATION_WARNINGS
-
-#if FF_API_TICKS_PER_FRAME
- if (avctx->ticks_per_frame == 1) {
-#endif
- params->m_TicksPerSecond = -1; /* auto mode for ticks per frame = 1 */
-#if FF_API_TICKS_PER_FRAME
- } else {
- params->m_TicksPerSecond =
- ceil((avctx->time_base.den / (double) avctx->time_base.num) *
- (double) avctx->ticks_per_frame);
- }
-#endif
-FF_ENABLE_DEPRECATION_WARNINGS
+ params->m_TicksPerSecond = -1; /* auto mode for ticks per frame = 1 */
}
static int vvenc_parse_vvenc_params(AVCodecContext *avctx, vvenc_config *params)
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 409f45fc7d..2c97913887 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -1317,13 +1317,7 @@ static av_cold int X264_init(AVCodecContext *avctx)
x4->params.i_fps_den = avctx->framerate.den;
} else {
x4->params.i_fps_num = avctx->time_base.den;
-FF_DISABLE_DEPRECATION_WARNINGS
- x4->params.i_fps_den = avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- ;
-FF_ENABLE_DEPRECATION_WARNINGS
+ x4->params.i_fps_den = avctx->time_base.num;
}
x4->params.analyse.b_psnr = avctx->flags & AV_CODEC_FLAG_PSNR;
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index db0f0972df..d897707dd7 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -292,12 +292,7 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
ctx->params->fpsDenom = avctx->framerate.den;
} else {
ctx->params->fpsNum = avctx->time_base.den;
-FF_DISABLE_DEPRECATION_WARNINGS
- ctx->params->fpsDenom = avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- ;
+ ctx->params->fpsDenom = avctx->time_base.num;
FF_ENABLE_DEPRECATION_WARNINGS
}
ctx->params->sourceWidth = avctx->width;
diff --git a/libavcodec/mfenc.c b/libavcodec/mfenc.c
index c062d87f11..c0a7d438ad 100644
--- a/libavcodec/mfenc.c
+++ b/libavcodec/mfenc.c
@@ -660,11 +660,6 @@ static int mf_encv_output_adjust(AVCodecContext *avctx, IMFMediaType *type)
framerate = avctx->framerate;
} else {
framerate = av_inv_q(avctx->time_base);
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- framerate.den *= avctx->ticks_per_frame;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
ff_MFSetAttributeRatio((IMFAttributes *)type, &MF_MT_FRAME_RATE, framerate.num, framerate.den);
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index 262e213a61..bd05fe0814 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -970,12 +970,6 @@ static int mpeg_decode_postinit(AVCodecContext *avctx)
if (avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO) {
// MPEG-1 fps
avctx->framerate = ff_mpeg12_frame_rate_tab[s1->frame_rate_index];
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->ticks_per_frame = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
avctx->chroma_sample_location = AVCHROMA_LOC_CENTER;
} else { // MPEG-2
// MPEG-2 fps
@@ -984,11 +978,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
ff_mpeg12_frame_rate_tab[s1->frame_rate_index].num * s1->frame_rate_ext.num,
ff_mpeg12_frame_rate_tab[s1->frame_rate_index].den * s1->frame_rate_ext.den,
1 << 30);
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->ticks_per_frame = 2;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
switch (s->chroma_format) {
case 1: avctx->chroma_sample_location = AVCHROMA_LOC_LEFT; break;
diff --git a/libavcodec/mpegvideo_parser.c b/libavcodec/mpegvideo_parser.c
index 2cd0348317..663399a919 100644
--- a/libavcodec/mpegvideo_parser.c
+++ b/libavcodec/mpegvideo_parser.c
@@ -147,11 +147,6 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
pc->frame_rate = avctx->framerate = ff_mpeg12_frame_rate_tab[frame_rate_index];
bit_rate = (buf[4]<<10) | (buf[5]<<2) | (buf[6]>>6);
avctx->codec_id = AV_CODEC_ID_MPEG1VIDEO;
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->ticks_per_frame = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
break;
case EXT_START_CODE:
@@ -181,11 +176,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
avctx->framerate.num = pc->frame_rate.num * (frame_rate_ext_n + 1);
avctx->framerate.den = pc->frame_rate.den * (frame_rate_ext_d + 1);
avctx->codec_id = AV_CODEC_ID_MPEG2VIDEO;
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->ticks_per_frame = 2;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
break;
case 0x8: /* picture coding extension */
diff --git a/libavcodec/msmpeg4enc.c b/libavcodec/msmpeg4enc.c
index 5ce4e6e30c..73922879ac 100644
--- a/libavcodec/msmpeg4enc.c
+++ b/libavcodec/msmpeg4enc.c
@@ -284,13 +284,7 @@ void ff_msmpeg4_encode_ext_header(MpegEncContext * s)
if (s->avctx->framerate.num > 0 && s->avctx->framerate.den > 0)
fps = s->avctx->framerate.num / s->avctx->framerate.den;
else {
-FF_DISABLE_DEPRECATION_WARNINGS
- fps = s->avctx->time_base.den / s->avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- / FFMAX(s->avctx->ticks_per_frame, 1)
-#endif
- ;
-FF_ENABLE_DEPRECATION_WARNINGS
+ fps = s->avctx->time_base.den / s->avctx->time_base.num;
}
put_bits(&s->pb, 5, FFMIN(fps, 31)); //yes 29.97 -> 29
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
index f9221174f0..85e9261640 100644
--- a/libavcodec/nvenc.c
+++ b/libavcodec/nvenc.c
@@ -1794,13 +1794,7 @@ static av_cold int nvenc_setup_encoder(AVCodecContext *avctx)
ctx->init_encode_params.frameRateDen = avctx->framerate.den;
} else {
ctx->init_encode_params.frameRateNum = avctx->time_base.den;
-FF_DISABLE_DEPRECATION_WARNINGS
- ctx->init_encode_params.frameRateDen = avctx->time_base.num
-#if FF_API_TICKS_PER_FRAME
- * avctx->ticks_per_frame
-#endif
- ;
-FF_ENABLE_DEPRECATION_WARNINGS
+ ctx->init_encode_params.frameRateDen = avctx->time_base.num;
}
#ifdef NVENC_HAVE_UNIDIR_B
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 47da41b0ad..c115d8c18c 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -272,9 +272,6 @@ static const AVOption avcodec_options[] = {
{"ch_layout", NULL, OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL }, 0, 0, A|E|D, .unit = "ch_layout"},
{"rc_max_vbv_use", NULL, OFFSET(rc_max_available_vbv_use), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, 0.0, FLT_MAX, V|E},
{"rc_min_vbv_use", NULL, OFFSET(rc_min_vbv_overflow_use), AV_OPT_TYPE_FLOAT, {.dbl = 3 }, 0.0, FLT_MAX, V|E},
-#if FF_API_TICKS_PER_FRAME
-{"ticks_per_frame", NULL, OFFSET(ticks_per_frame), AV_OPT_TYPE_INT, {.i64 = 1 }, 1, INT_MAX, A|V|E|D},
-#endif
{"color_primaries", "color primaries", OFFSET(color_primaries), AV_OPT_TYPE_INT, {.i64 = AVCOL_PRI_UNSPECIFIED }, 1, INT_MAX, V|E|D, .unit = "color_primaries_type"},
{"bt709", "BT.709", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_PRI_BT709 }, INT_MIN, INT_MAX, V|E|D, .unit = "color_primaries_type"},
{"unknown", "Unspecified", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_PRI_UNSPECIFIED }, INT_MIN, INT_MAX, V|E|D, .unit = "color_primaries_type"},
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index d9df0d62a8..6800f38bf3 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -378,11 +378,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
dst->level = src->level;
dst->bits_per_raw_sample = src->bits_per_raw_sample;
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->ticks_per_frame = src->ticks_per_frame;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
dst->color_primaries = src->color_primaries;
dst->color_trc = src->color_trc;
diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c
index 86ec7a3443..36fac4665d 100644
--- a/libavcodec/ratecontrol.c
+++ b/libavcodec/ratecontrol.c
@@ -61,13 +61,7 @@ static AVRational get_fpsQ(AVCodecContext *avctx)
if (avctx->framerate.num > 0 && avctx->framerate.den > 0)
return avctx->framerate;
-FF_DISABLE_DEPRECATION_WARNINGS
-#if FF_API_TICKS_PER_FRAME
- return av_div_q((AVRational){1, FFMAX(avctx->ticks_per_frame, 1)}, avctx->time_base);
-#else
return av_inv_q(avctx->time_base);
-#endif
-FF_ENABLE_DEPRECATION_WARNINGS
}
static double get_fps(AVCodecContext *avctx)
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
index d263c70be7..f4bcf8bf3c 100644
--- a/libavcodec/vc1.c
+++ b/libavcodec/vc1.c
@@ -418,14 +418,6 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)
v->s.loop_filter, v->chromaformat, v->broadcast, v->interlace,
v->tfcntrflag, v->finterpflag);
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- if (v->broadcast) { // Pulldown may be present
- v->s.avctx->ticks_per_frame = 2;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
v->psf = get_bits1(gb);
if (v->psf) { //PsF, 6.1.13
av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n");
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 5b30be148c..3cde4cdd8b 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
diff --git a/libavformat/avformat.c b/libavformat/avformat.c
index 3801ef5d58..f53299cc40 100644
--- a/libavformat/avformat.c
+++ b/libavformat/avformat.c
@@ -797,11 +797,6 @@ int avformat_transfer_internal_stream_timing_info(const AVOutputFormat *ofmt,
: (ist->codecpar->codec_type == AVMEDIA_TYPE_AUDIO ? (AVRational){0, 1}
: ist->time_base);
AVRational enc_tb = ist->time_base;
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- int ticks_per_frame = dec_ctx ? dec_ctx->ticks_per_frame : 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
/*
* Avi is a special case here because it supports variable fps but
@@ -827,9 +822,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
(dec_ctx_framerate.num || ist->codecpar->codec_type == AVMEDIA_TYPE_AUDIO))) {
enc_tb = dec_ctx_tb;
enc_tb.den *= 2;
-#if FF_API_TICKS_PER_FRAME
- enc_tb.num *= ticks_per_frame;
-#endif
}
} else if (!(ofmt->flags & AVFMT_VARIABLE_FPS)
&& !av_match_name(ofmt->name, "mov,mp4,3gp,3g2,psp,ipod,ismv,f4v")) {
@@ -839,9 +831,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
|| (copy_tb == AVFMT_TBCF_DECODER &&
(dec_ctx_framerate.num || ist->codecpar->codec_type == AVMEDIA_TYPE_AUDIO))) {
enc_tb = dec_ctx_tb;
-#if FF_API_TICKS_PER_FRAME
- enc_tb.num *= ticks_per_frame;
-#endif
}
}
diff --git a/libavformat/demux.c b/libavformat/demux.c
index 0e39346f62..c0bfb9cb67 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -1316,12 +1316,6 @@ static int codec_close(FFStream *sti)
avctx_new->pkt_timebase = sti->avctx->pkt_timebase;
-#if FF_API_TICKS_PER_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx_new->ticks_per_frame = sti->avctx->ticks_per_frame;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
avcodec_free_context(&sti->avctx);
sti->avctx = avctx_new;
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 03/30] avcodec: remove deprecated FF_API_DROPCHANGED
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 01/30] avcodec: remove deprecated FF_API_SUBFRAMES James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 02/30] avcodec: remove deprecated FF_API_TICKS_PER_FRAME James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-24 9:44 ` Gyan Doshi
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 04/30] avcodec: remove deprecated FF_API_AVFFT James Almer
` (31 subsequent siblings)
34 siblings, 1 reply; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-07-15.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.c | 4 ---
libavcodec/avcodec.h | 9 -------
libavcodec/decode.c | 52 --------------------------------------
libavcodec/internal.h | 9 -------
libavcodec/options_table.h | 3 ---
libavcodec/version_major.h | 1 -
6 files changed, 78 deletions(-)
diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index e7e2c09222..3f97f5d161 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -462,10 +462,6 @@ av_cold void ff_codec_close(AVCodecContext *avctx)
av_bsf_free(&avci->bsf);
-#if FF_API_DROPCHANGED
- av_channel_layout_uninit(&avci->initial_ch_layout);
-#endif
-
#if CONFIG_LCMS2
ff_icc_context_uninit(&avci->icc);
#endif
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index f6de3c6b42..c35e65868e 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -234,15 +234,6 @@ typedef struct RcOverride{
* Use qpel MC.
*/
#define AV_CODEC_FLAG_QPEL (1 << 4)
-#if FF_API_DROPCHANGED
-/**
- * Don't output frames whose parameters differ from first
- * decoded frame in stream.
- *
- * @deprecated callers should implement this functionality in their own code
- */
-#define AV_CODEC_FLAG_DROPCHANGED (1 << 5)
-#endif
/**
* Request the encoder to output reconstructed frames, i.e.\ frames that would
* be produced by decoding the encoded bistream. These frames may be retrieved
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index cac7e620d2..a28279bd36 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -840,53 +840,6 @@ int ff_decode_receive_frame(AVCodecContext *avctx, AVFrame *frame)
avctx->frame_num++;
-#if FF_API_DROPCHANGED
- if (avctx->flags & AV_CODEC_FLAG_DROPCHANGED) {
-
- if (avctx->frame_num == 1) {
- avci->initial_format = frame->format;
- switch(avctx->codec_type) {
- case AVMEDIA_TYPE_VIDEO:
- avci->initial_width = frame->width;
- avci->initial_height = frame->height;
- break;
- case AVMEDIA_TYPE_AUDIO:
- avci->initial_sample_rate = frame->sample_rate ? frame->sample_rate :
- avctx->sample_rate;
- ret = av_channel_layout_copy(&avci->initial_ch_layout, &frame->ch_layout);
- if (ret < 0)
- goto fail;
- break;
- }
- }
-
- if (avctx->frame_num > 1) {
- int changed = avci->initial_format != frame->format;
-
- switch(avctx->codec_type) {
- case AVMEDIA_TYPE_VIDEO:
- changed |= avci->initial_width != frame->width ||
- avci->initial_height != frame->height;
- break;
- case AVMEDIA_TYPE_AUDIO:
- changed |= avci->initial_sample_rate != frame->sample_rate ||
- avci->initial_sample_rate != avctx->sample_rate ||
- av_channel_layout_compare(&avci->initial_ch_layout, &frame->ch_layout);
- break;
- }
-
- if (changed) {
- avci->changed_frames_dropped++;
- av_log(avctx, AV_LOG_INFO, "dropped changed frame #%"PRId64" pts %"PRId64
- " drop count: %d \n",
- avctx->frame_num, frame->pts,
- avci->changed_frames_dropped);
- ret = AVERROR_INPUT_CHANGED;
- goto fail;
- }
- }
- }
-#endif
return 0;
fail:
av_frame_unref(frame);
@@ -2065,11 +2018,6 @@ int ff_decode_preinit(AVCodecContext *avctx)
return ret;
}
-#if FF_API_DROPCHANGED
- if (avctx->flags & AV_CODEC_FLAG_DROPCHANGED)
- av_log(avctx, AV_LOG_WARNING, "The dropchanged flag is deprecated.\n");
-#endif
-
return 0;
}
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 62a37f473f..137fd52745 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -145,15 +145,6 @@ typedef struct AVCodecInternal {
AVFrame *buffer_frame;
int draining_done;
-#if FF_API_DROPCHANGED
- /* used when avctx flag AV_CODEC_FLAG_DROPCHANGED is set */
- int changed_frames_dropped;
- int initial_format;
- int initial_width, initial_height;
- int initial_sample_rate;
- AVChannelLayout initial_ch_layout;
-#endif
-
#if CONFIG_LCMS2
FFIccContext icc; /* used to read and write embedded ICC profiles */
#endif
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index c115d8c18c..1711e56cd3 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -74,9 +74,6 @@ static const AVOption avcodec_options[] = {
{"ilme", "interlaced motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_INTERLACED_ME }, INT_MIN, INT_MAX, V|E, .unit = "flags"},
{"cgop", "closed GOP", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_CLOSED_GOP }, INT_MIN, INT_MAX, V|E, .unit = "flags"},
{"output_corrupt", "Output even potentially corrupted frames", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_OUTPUT_CORRUPT }, INT_MIN, INT_MAX, V|D, .unit = "flags"},
-#if FF_API_DROPCHANGED
-{"drop_changed", "Drop frames whose parameters differ from first decoded frame", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_DROPCHANGED }, INT_MIN, INT_MAX, A|V|D | AV_OPT_FLAG_DEPRECATED, .unit = "flags"},
-#endif
{"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT}, 0, UINT_MAX, V|A|E|D|S, .unit = "flags2"},
{"fast", "allow non-spec-compliant speedup tricks", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_FAST }, INT_MIN, INT_MAX, V|E, .unit = "flags2"},
{"noout", "skip bitstream encoding", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_NO_OUTPUT }, INT_MIN, INT_MAX, V|E, .unit = "flags2"},
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 3cde4cdd8b..ee3277cb76 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 04/30] avcodec: remove deprecated FF_API_AVFFT
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (2 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 03/30] avcodec: remove deprecated FF_API_DROPCHANGED James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 05/30] avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL James Almer
` (30 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-09-01.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/Makefile | 2 -
libavcodec/avfft.c | 268 -------------------------------------
libavcodec/avfft.h | 149 ---------------------
libavcodec/version_major.h | 1 -
4 files changed, 420 deletions(-)
delete mode 100644 libavcodec/avfft.c
delete mode 100644 libavcodec/avfft.h
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 9630074205..9a6393d9a1 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -5,7 +5,6 @@ HEADERS = ac3_parser.h \
adts_parser.h \
avcodec.h \
avdct.h \
- avfft.h \
bsf.h \
codec.h \
codec_desc.h \
@@ -31,7 +30,6 @@ OBJS = ac3_parser.o \
allcodecs.o \
avcodec.o \
avdct.o \
- avfft.o \
packet.o \
bitstream.o \
bitstream_filters.o \
diff --git a/libavcodec/avfft.c b/libavcodec/avfft.c
deleted file mode 100644
index f6787937f6..0000000000
--- a/libavcodec/avfft.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * 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
- */
-
-#include <stddef.h>
-#include <string.h>
-
-#include "libavutil/attributes.h"
-#include "libavutil/macros.h"
-#include "libavutil/mem.h"
-#include "libavutil/tx.h"
-#include "avfft.h"
-
-typedef struct AVTXWrapper {
- AVTXContext *ctx;
- av_tx_fn fn;
-
- AVTXContext *ctx2;
- av_tx_fn fn2;
-
- ptrdiff_t stride;
- int len;
- int inv;
-
- float *tmp;
- int out_of_place;
-} AVTXWrapper;
-
-/* FFT */
-
-FFTContext *av_fft_init(int nbits, int inverse)
-{
- int ret;
- float scale = 1.0f;
- AVTXWrapper *s = av_mallocz(sizeof(*s));
- if (!s)
- return NULL;
-
- ret = av_tx_init(&s->ctx, &s->fn, AV_TX_FLOAT_FFT, inverse, 1 << nbits,
- &scale, AV_TX_INPLACE);
- if (ret < 0) {
- av_free(s);
- return NULL;
- }
-
- return (FFTContext *)s;
-}
-
-void av_fft_permute(FFTContext *s, FFTComplex *z)
-{
- /* Empty */
-}
-
-void av_fft_calc(FFTContext *s, FFTComplex *z)
-{
- AVTXWrapper *w = (AVTXWrapper *)s;
- w->fn(w->ctx, z, (void *)z, sizeof(AVComplexFloat));
-}
-
-av_cold void av_fft_end(FFTContext *s)
-{
- if (s) {
- AVTXWrapper *w = (AVTXWrapper *)s;
- av_tx_uninit(&w->ctx);
- av_tx_uninit(&w->ctx2);
- av_free(w);
- }
-}
-
-FFTContext *av_mdct_init(int nbits, int inverse, double scale)
-{
- int ret;
- float scale_f = scale;
- AVTXWrapper *s = av_mallocz(sizeof(*s));
- if (!s)
- return NULL;
-
- ret = av_tx_init(&s->ctx, &s->fn, AV_TX_FLOAT_MDCT, inverse, 1 << (nbits - 1), &scale_f, 0);
- if (ret < 0) {
- av_free(s);
- return NULL;
- }
-
- if (inverse) {
- ret = av_tx_init(&s->ctx2, &s->fn2, AV_TX_FLOAT_MDCT, inverse, 1 << (nbits - 1),
- &scale_f, AV_TX_FULL_IMDCT);
- if (ret < 0) {
- av_tx_uninit(&s->ctx);
- av_free(s);
- return NULL;
- }
- }
-
- return (FFTContext *)s;
-}
-
-void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input)
-{
- AVTXWrapper *w = (AVTXWrapper *)s;
- w->fn2(w->ctx2, output, (void *)input, sizeof(float));
-}
-
-void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input)
-{
- AVTXWrapper *w = (AVTXWrapper *)s;
- w->fn(w->ctx, output, (void *)input, sizeof(float));
-}
-
-void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input)
-{
- AVTXWrapper *w = (AVTXWrapper *)s;
- w->fn(w->ctx, output, (void *)input, sizeof(float));
-}
-
-av_cold void av_mdct_end(FFTContext *s)
-{
- if (s) {
- AVTXWrapper *w = (AVTXWrapper *)s;
- av_tx_uninit(&w->ctx2);
- av_tx_uninit(&w->ctx);
- av_free(w);
- }
-}
-
-RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans)
-{
- int ret;
- float scale = trans == IDFT_C2R ? 0.5f : 1.0f;
- AVTXWrapper *s;
-
- /* The other 2 modes are unconventional, do not form an orthogonal
- * transform, have never been useful, and so they're not implemented. */
- if (trans != IDFT_C2R && trans != DFT_R2C)
- return NULL;
-
- s = av_mallocz(sizeof(*s));
- if (!s)
- return NULL;
-
- ret = av_tx_init(&s->ctx, &s->fn, AV_TX_FLOAT_RDFT, trans == IDFT_C2R,
- 1 << nbits, &scale, 0x0);
- if (ret < 0) {
- av_free(s);
- return NULL;
- }
-
- s->stride = (trans == DFT_C2R) ? sizeof(AVComplexFloat) : sizeof(float);
- s->len = 1 << nbits;
- s->inv = trans == IDFT_C2R;
-
- s->tmp = av_malloc((s->len + 2)*sizeof(float));
- if (!s->tmp) {
- av_tx_uninit(&s->ctx);
- av_free(s);
- return NULL;
- }
-
- return (RDFTContext *)s;
-}
-
-void av_rdft_calc(RDFTContext *s, FFTSample *data)
-{
- AVTXWrapper *w = (AVTXWrapper *)s;
- float *src = w->inv ? w->tmp : (float *)data;
- float *dst = w->inv ? (float *)data : w->tmp;
-
- if (w->inv) {
- memcpy(src, data, w->len*sizeof(float));
-
- src[w->len] = src[1];
- src[1] = 0.0f;
- }
-
- w->fn(w->ctx, dst, (void *)src, w->stride);
-
- if (!w->inv) {
- dst[1] = dst[w->len];
- memcpy(data, dst, w->len*sizeof(float));
- }
-}
-
-av_cold void av_rdft_end(RDFTContext *s)
-{
- if (s) {
- AVTXWrapper *w = (AVTXWrapper *)s;
- av_tx_uninit(&w->ctx);
- av_free(w->tmp);
- av_free(w);
- }
-}
-
-DCTContext *av_dct_init(int nbits, enum DCTTransformType inverse)
-{
- int ret;
- const float scale_map[] = {
- [DCT_II] = 0.5f,
- [DCT_III] = 1.0f / (1 << nbits),
- [DCT_I] = 0.5f,
- [DST_I] = 2.0f,
- };
- static const enum AVTXType type_map[] = {
- [DCT_II] = AV_TX_FLOAT_DCT,
- [DCT_III] = AV_TX_FLOAT_DCT,
- [DCT_I] = AV_TX_FLOAT_DCT_I,
- [DST_I] = AV_TX_FLOAT_DST_I,
- };
-
- AVTXWrapper *s = av_mallocz(sizeof(*s));
- if (!s)
- return NULL;
-
- s->len = (1 << nbits);
- s->out_of_place = (inverse == DCT_I) || (inverse == DST_I);
-
- ret = av_tx_init(&s->ctx, &s->fn, type_map[inverse],
- (inverse == DCT_III), 1 << (nbits - (inverse == DCT_III)),
- &scale_map[inverse], s->out_of_place ? 0 : AV_TX_INPLACE);
- if (ret < 0) {
- av_free(s);
- return NULL;
- }
-
- if (s->out_of_place) {
- s->tmp = av_malloc((1 << (nbits + 1))*sizeof(float));
- if (!s->tmp) {
- av_tx_uninit(&s->ctx);
- av_free(s);
- return NULL;
- }
- }
-
- return (DCTContext *)s;
-}
-
-void av_dct_calc(DCTContext *s, FFTSample *data)
-{
- AVTXWrapper *w = (AVTXWrapper *)s;
- if (w->out_of_place) {
- memcpy(w->tmp, data, w->len*sizeof(float));
- w->fn(w->ctx, (void *)data, w->tmp, sizeof(float));
- } else {
- w->fn(w->ctx, data, (void *)data, sizeof(float));
- }
-}
-
-av_cold void av_dct_end(DCTContext *s)
-{
- if (s) {
- AVTXWrapper *w = (AVTXWrapper *)s;
- av_tx_uninit(&w->ctx);
- av_free(w->tmp);
- av_free(w);
- }
-}
diff --git a/libavcodec/avfft.h b/libavcodec/avfft.h
deleted file mode 100644
index e3a0da1eb9..0000000000
--- a/libavcodec/avfft.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * 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 AVCODEC_AVFFT_H
-#define AVCODEC_AVFFT_H
-
-#include "libavutil/attributes.h"
-#include "version_major.h"
-#if FF_API_AVFFT
-
-/**
- * @file
- * @ingroup lavc_fft
- * FFT functions
- */
-
-/**
- * @defgroup lavc_fft FFT functions
- * @ingroup lavc_misc
- *
- * @{
- */
-
-typedef float FFTSample;
-
-typedef struct FFTComplex {
- FFTSample re, im;
-} FFTComplex;
-
-typedef struct FFTContext FFTContext;
-
-/**
- * Set up a complex FFT.
- * @param nbits log2 of the length of the input array
- * @param inverse if 0 perform the forward transform, if 1 perform the inverse
- * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_FFT
- */
-attribute_deprecated
-FFTContext *av_fft_init(int nbits, int inverse);
-
-/**
- * Do the permutation needed BEFORE calling ff_fft_calc().
- * @deprecated without replacement
- */
-attribute_deprecated
-void av_fft_permute(FFTContext *s, FFTComplex *z);
-
-/**
- * Do a complex FFT with the parameters defined in av_fft_init(). The
- * input data must be permuted before. No 1.0/sqrt(n) normalization is done.
- * @deprecated use the av_tx_fn value returned by av_tx_init, which also does permutation
- */
-attribute_deprecated
-void av_fft_calc(FFTContext *s, FFTComplex *z);
-
-attribute_deprecated
-void av_fft_end(FFTContext *s);
-
-/**
- * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_MDCT,
- * with a flag of AV_TX_FULL_IMDCT for a replacement to av_imdct_calc.
- */
-attribute_deprecated
-FFTContext *av_mdct_init(int nbits, int inverse, double scale);
-attribute_deprecated
-void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
-attribute_deprecated
-void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input);
-attribute_deprecated
-void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
-attribute_deprecated
-void av_mdct_end(FFTContext *s);
-
-/* Real Discrete Fourier Transform */
-
-enum RDFTransformType {
- DFT_R2C,
- IDFT_C2R,
- IDFT_R2C,
- DFT_C2R,
-};
-
-typedef struct RDFTContext RDFTContext;
-
-/**
- * Set up a real FFT.
- * @param nbits log2 of the length of the input array
- * @param trans the type of transform
- *
- * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_RDFT
- */
-attribute_deprecated
-RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans);
-attribute_deprecated
-void av_rdft_calc(RDFTContext *s, FFTSample *data);
-attribute_deprecated
-void av_rdft_end(RDFTContext *s);
-
-/* Discrete Cosine Transform */
-
-typedef struct DCTContext DCTContext;
-
-enum DCTTransformType {
- DCT_II = 0,
- DCT_III,
- DCT_I,
- DST_I,
-};
-
-/**
- * Set up DCT.
- *
- * @param nbits size of the input array:
- * (1 << nbits) for DCT-II, DCT-III and DST-I
- * (1 << nbits) + 1 for DCT-I
- * @param type the type of transform
- *
- * @note the first element of the input of DST-I is ignored
- *
- * @deprecated use av_tx_init from libavutil/tx.h with an appropriate type of AV_TX_FLOAT_DCT
- */
-attribute_deprecated
-DCTContext *av_dct_init(int nbits, enum DCTTransformType type);
-attribute_deprecated
-void av_dct_calc(DCTContext *s, FFTSample *data);
-attribute_deprecated
-void av_dct_end (DCTContext *s);
-
-/**
- * @}
- */
-
-#endif /* FF_API_AVFFT */
-#endif /* AVCODEC_AVFFT_H */
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index ee3277cb76..dd92e1fbc5 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -39,7 +39,6 @@
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_AVCODEC_CLOSE (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_BUFFER_MIN_SIZE (LIBAVCODEC_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 05/30] avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (3 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 04/30] avcodec: remove deprecated FF_API_AVFFT James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 06/30] avcodec: remove deprecated FF_API_AVCODEC_CLOSE James Almer
` (29 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-09-06.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.h | 141 +------------------------------
libavcodec/d3d12va_encode_hevc.c | 6 +-
libavcodec/options_table.h | 4 +-
libavcodec/version_major.h | 1 -
4 files changed, 6 insertions(+), 146 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index c35e65868e..079e457e4d 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1630,155 +1630,16 @@ typedef struct AVCodecContext {
* See the AV_PROFILE_* defines in defs.h.
*/
int profile;
-#if FF_API_FF_PROFILE_LEVEL
- /** @deprecated The following defines are deprecated; use AV_PROFILE_*
- * in defs.h instead. */
-#define FF_PROFILE_UNKNOWN -99
-#define FF_PROFILE_RESERVED -100
-
-#define FF_PROFILE_AAC_MAIN 0
-#define FF_PROFILE_AAC_LOW 1
-#define FF_PROFILE_AAC_SSR 2
-#define FF_PROFILE_AAC_LTP 3
-#define FF_PROFILE_AAC_HE 4
-#define FF_PROFILE_AAC_HE_V2 28
-#define FF_PROFILE_AAC_LD 22
-#define FF_PROFILE_AAC_ELD 38
-#define FF_PROFILE_MPEG2_AAC_LOW 128
-#define FF_PROFILE_MPEG2_AAC_HE 131
-
-#define FF_PROFILE_DNXHD 0
-#define FF_PROFILE_DNXHR_LB 1
-#define FF_PROFILE_DNXHR_SQ 2
-#define FF_PROFILE_DNXHR_HQ 3
-#define FF_PROFILE_DNXHR_HQX 4
-#define FF_PROFILE_DNXHR_444 5
-
-#define FF_PROFILE_DTS 20
-#define FF_PROFILE_DTS_ES 30
-#define FF_PROFILE_DTS_96_24 40
-#define FF_PROFILE_DTS_HD_HRA 50
-#define FF_PROFILE_DTS_HD_MA 60
-#define FF_PROFILE_DTS_EXPRESS 70
-#define FF_PROFILE_DTS_HD_MA_X 61
-#define FF_PROFILE_DTS_HD_MA_X_IMAX 62
-
-
-#define FF_PROFILE_EAC3_DDP_ATMOS 30
-
-#define FF_PROFILE_TRUEHD_ATMOS 30
-
-#define FF_PROFILE_MPEG2_422 0
-#define FF_PROFILE_MPEG2_HIGH 1
-#define FF_PROFILE_MPEG2_SS 2
-#define FF_PROFILE_MPEG2_SNR_SCALABLE 3
-#define FF_PROFILE_MPEG2_MAIN 4
-#define FF_PROFILE_MPEG2_SIMPLE 5
-
-#define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag
-#define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag
-
-#define FF_PROFILE_H264_BASELINE 66
-#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)
-#define FF_PROFILE_H264_MAIN 77
-#define FF_PROFILE_H264_EXTENDED 88
-#define FF_PROFILE_H264_HIGH 100
-#define FF_PROFILE_H264_HIGH_10 110
-#define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_MULTIVIEW_HIGH 118
-#define FF_PROFILE_H264_HIGH_422 122
-#define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_STEREO_HIGH 128
-#define FF_PROFILE_H264_HIGH_444 144
-#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244
-#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)
-#define FF_PROFILE_H264_CAVLC_444 44
-
-#define FF_PROFILE_VC1_SIMPLE 0
-#define FF_PROFILE_VC1_MAIN 1
-#define FF_PROFILE_VC1_COMPLEX 2
-#define FF_PROFILE_VC1_ADVANCED 3
-
-#define FF_PROFILE_MPEG4_SIMPLE 0
-#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1
-#define FF_PROFILE_MPEG4_CORE 2
-#define FF_PROFILE_MPEG4_MAIN 3
-#define FF_PROFILE_MPEG4_N_BIT 4
-#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5
-#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6
-#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7
-#define FF_PROFILE_MPEG4_HYBRID 8
-#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9
-#define FF_PROFILE_MPEG4_CORE_SCALABLE 10
-#define FF_PROFILE_MPEG4_ADVANCED_CODING 11
-#define FF_PROFILE_MPEG4_ADVANCED_CORE 12
-#define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13
-#define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14
-#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15
-
-#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 1
-#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 2
-#define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 32768
-#define FF_PROFILE_JPEG2000_DCINEMA_2K 3
-#define FF_PROFILE_JPEG2000_DCINEMA_4K 4
-
-#define FF_PROFILE_VP9_0 0
-#define FF_PROFILE_VP9_1 1
-#define FF_PROFILE_VP9_2 2
-#define FF_PROFILE_VP9_3 3
-
-#define FF_PROFILE_HEVC_MAIN 1
-#define FF_PROFILE_HEVC_MAIN_10 2
-#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
-#define FF_PROFILE_HEVC_REXT 4
-#define FF_PROFILE_HEVC_SCC 9
-
-#define FF_PROFILE_VVC_MAIN_10 1
-#define FF_PROFILE_VVC_MAIN_10_444 33
-
-#define FF_PROFILE_AV1_MAIN 0
-#define FF_PROFILE_AV1_HIGH 1
-#define FF_PROFILE_AV1_PROFESSIONAL 2
-
-#define FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0
-#define FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1
-#define FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2
-#define FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS 0xc3
-#define FF_PROFILE_MJPEG_JPEG_LS 0xf7
-
-#define FF_PROFILE_SBC_MSBC 1
-
-#define FF_PROFILE_PRORES_PROXY 0
-#define FF_PROFILE_PRORES_LT 1
-#define FF_PROFILE_PRORES_STANDARD 2
-#define FF_PROFILE_PRORES_HQ 3
-#define FF_PROFILE_PRORES_4444 4
-#define FF_PROFILE_PRORES_XQ 5
-
-#define FF_PROFILE_ARIB_PROFILE_A 0
-#define FF_PROFILE_ARIB_PROFILE_C 1
-
-#define FF_PROFILE_KLVA_SYNC 0
-#define FF_PROFILE_KLVA_ASYNC 1
-
-#define FF_PROFILE_EVC_BASELINE 0
-#define FF_PROFILE_EVC_MAIN 1
-#endif
/**
* Encoding level descriptor.
* - encoding: Set by user, corresponds to a specific level defined by the
* codec, usually corresponding to the profile level, if not specified it
- * is set to FF_LEVEL_UNKNOWN.
+ * is set to AV_LEVEL_UNKNOWN.
* - decoding: Set by libavcodec.
* See AV_LEVEL_* in defs.h.
*/
int level;
-#if FF_API_FF_PROFILE_LEVEL
- /** @deprecated The following define is deprecated; use AV_LEVEL_UNKOWN
- * in defs.h instead. */
-#define FF_LEVEL_UNKNOWN -99
-#endif
#if FF_API_CODEC_PROPS
/**
diff --git a/libavcodec/d3d12va_encode_hevc.c b/libavcodec/d3d12va_encode_hevc.c
index 644aeab7df..4b2e7a60ba 100644
--- a/libavcodec/d3d12va_encode_hevc.c
+++ b/libavcodec/d3d12va_encode_hevc.c
@@ -673,10 +673,10 @@ static int d3d12va_encode_hevc_init(AVCodecContext *avctx)
if (avctx->profile == AV_PROFILE_UNKNOWN)
avctx->profile = priv->profile;
- if (avctx->level == FF_LEVEL_UNKNOWN)
+ if (avctx->level == AV_LEVEL_UNKNOWN)
avctx->level = priv->level;
- if (avctx->level != FF_LEVEL_UNKNOWN && avctx->level & ~0xff) {
+ if (avctx->level != AV_LEVEL_UNKNOWN && avctx->level & ~0xff) {
av_log(avctx, AV_LOG_ERROR, "Invalid level %d: must fit "
"in 8-bit unsigned integer.\n", avctx->level);
return AVERROR(EINVAL);
@@ -731,7 +731,7 @@ static const AVOption d3d12va_encode_hevc_options[] = {
{ "level", "Set level (general_level_idc)",
OFFSET(level), AV_OPT_TYPE_INT,
- { .i64 = FF_LEVEL_UNKNOWN }, FF_LEVEL_UNKNOWN, 0xff, FLAGS, "level" },
+ { .i64 = AV_LEVEL_UNKNOWN }, AV_LEVEL_UNKNOWN, 0xff, FLAGS, "level" },
#define LEVEL(name, value) name, NULL, 0, AV_OPT_TYPE_CONST, \
{ .i64 = value }, 0, 0, FLAGS, "level"
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 1711e56cd3..c525cde80a 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -221,8 +221,8 @@ static const AVOption avcodec_options[] = {
{"profile", NULL, OFFSET(profile), AV_OPT_TYPE_INT, {.i64 = AV_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E|CC, .unit = "avctx.profile"},
{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, .unit = "avctx.profile"},
{"main10", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_PROFILE_HEVC_MAIN_10 }, INT_MIN, INT_MAX, V|E, .unit = "avctx.profile"},
-{"level", "encoding level, usually corresponding to the profile level, codec-specific", OFFSET(level), AV_OPT_TYPE_INT, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E|CC, .unit = "avctx.level"},
-{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, .unit = "avctx.level"},
+{"level", "encoding level, usually corresponding to the profile level, codec-specific", OFFSET(level), AV_OPT_TYPE_INT, {.i64 = AV_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E|CC, .unit = "avctx.level"},
+{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, .unit = "avctx.level"},
{"lowres", "decode at 1= 1/2, 2=1/4, 3=1/8 resolutions", OFFSET(lowres), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, V|A|D},
{"cmp", "full-pel ME compare function", OFFSET(me_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, .unit = "cmp_func"},
{"subcmp", "sub-pel ME compare function", OFFSET(me_sub_cmp), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, .unit = "cmp_func"},
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index dd92e1fbc5..b43aa2a2db 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -39,7 +39,6 @@
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_AVCODEC_CLOSE (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_BUFFER_MIN_SIZE (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_VDPAU_ALLOC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 06/30] avcodec: remove deprecated FF_API_AVCODEC_CLOSE
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (4 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 05/30] avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 07/30] avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE James Almer
` (28 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-02-09.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.c | 8 --------
libavcodec/avcodec.h | 18 ------------------
libavcodec/version_major.h | 1 -
3 files changed, 27 deletions(-)
diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index 3f97f5d161..755da184e5 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -493,14 +493,6 @@ av_cold void ff_codec_close(AVCodecContext *avctx)
avctx->active_thread_type = 0;
}
-#if FF_API_AVCODEC_CLOSE
-int avcodec_close(AVCodecContext *avctx)
-{
- ff_codec_close(avctx);
- return 0;
-}
-#endif
-
static const char *unknown_if_null(const char *str)
{
return str ? str : "unknown";
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 079e457e4d..5def718fc7 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -2234,24 +2234,6 @@ int avcodec_parameters_to_context(AVCodecContext *codec,
*/
int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);
-#if FF_API_AVCODEC_CLOSE
-/**
- * Close a given AVCodecContext and free all the data associated with it
- * (but not the AVCodecContext itself).
- *
- * Calling this function on an AVCodecContext that hasn't been opened will free
- * the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL
- * codec. Subsequent calls will do nothing.
- *
- * @deprecated Do not use this function. Use avcodec_free_context() to destroy a
- * codec context (either open or closed). Opening and closing a codec context
- * multiple times is not supported anymore -- use multiple codec contexts
- * instead.
- */
-attribute_deprecated
-int avcodec_close(AVCodecContext *avctx);
-#endif
-
/**
* Free all allocated data in the given subtitle struct.
*
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index b43aa2a2db..38c12650c1 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -39,7 +39,6 @@
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_AVCODEC_CLOSE (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_BUFFER_MIN_SIZE (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_VDPAU_ALLOC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_QUALITY_FACTOR (LIBAVCODEC_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 07/30] avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (5 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 06/30] avcodec: remove deprecated FF_API_AVCODEC_CLOSE James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 08/30] avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET James Almer
` (27 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-02-20.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.h | 11 -----------
libavcodec/version_major.h | 1 -
2 files changed, 12 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 5def718fc7..6b68afe93a 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -187,17 +187,6 @@ struct AVCodecParameters;
* @{
*/
-#if FF_API_BUFFER_MIN_SIZE
-/**
- * @ingroup lavc_encoding
- * minimum encoding buffer size
- * Used to avoid some checks during header writing.
- * @deprecated Unused: avcodec_receive_packet() does not work
- * with preallocated packet buffers.
- */
-#define AV_INPUT_BUFFER_MIN_SIZE 16384
-#endif
-
/**
* @ingroup lavc_encoding
*/
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 38c12650c1..9a30ba5910 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -39,7 +39,6 @@
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_BUFFER_MIN_SIZE (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_VDPAU_ALLOC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_QUALITY_FACTOR (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_V408_CODECID (LIBAVCODEC_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 08/30] avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (6 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 07/30] avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 09/30] avcodec: remove deprecated FF_API_QUALITY_FACTOR James Almer
` (26 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-03-07.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/vdpau.c | 21 ---------------------
libavcodec/vdpau.h | 33 ---------------------------------
libavcodec/version_major.h | 1 -
3 files changed, 55 deletions(-)
diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c
index 0dd5641603..6dcc7cb531 100644
--- a/libavcodec/vdpau.c
+++ b/libavcodec/vdpau.c
@@ -62,20 +62,6 @@ static int vdpau_error(VdpStatus status)
}
}
-#if FF_API_VDPAU_ALLOC_GET_SET
-AVVDPAUContext *av_alloc_vdpaucontext(void)
-{
-FF_DISABLE_DEPRECATION_WARNINGS
- return av_vdpau_alloc_context();
-FF_ENABLE_DEPRECATION_WARNINGS
-}
-
-#define MAKE_ACCESSORS(str, name, type, field) \
- type av_##name##_get_##field(const str *s) { return s->field; } \
- void av_##name##_set_##field(str *s, type v) { s->field = v; }
-MAKE_ACCESSORS(AVVDPAUContext, vdpau_hwaccel, AVVDPAU_Render2, render2)
-#endif
-
int av_vdpau_get_surface_parameters(AVCodecContext *avctx,
VdpChromaType *type,
uint32_t *width, uint32_t *height)
@@ -402,13 +388,6 @@ int ff_vdpau_add_buffer(struct vdpau_picture_context *pic_ctx,
return 0;
}
-#if FF_API_VDPAU_ALLOC_GET_SET
-AVVDPAUContext *av_vdpau_alloc_context(void)
-{
- return av_mallocz(sizeof(VDPAUHWContext));
-}
-#endif
-
int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
VdpGetProcAddress *get_proc, unsigned flags)
{
diff --git a/libavcodec/vdpau.h b/libavcodec/vdpau.h
index 8021c25761..da77c5daed 100644
--- a/libavcodec/vdpau.h
+++ b/libavcodec/vdpau.h
@@ -93,28 +93,6 @@ typedef struct AVVDPAUContext {
AVVDPAU_Render2 render2;
} AVVDPAUContext;
-#if FF_API_VDPAU_ALLOC_GET_SET
-/**
- * @brief allocation function for AVVDPAUContext
- *
- * Allows extending the struct without breaking API/ABI
- * @deprecated use av_vdpau_bind_context() instead
- */
-attribute_deprecated
-AVVDPAUContext *av_alloc_vdpaucontext(void);
-
-/**
- * @deprecated render2 is public and can be accessed directly
- */
-attribute_deprecated
-AVVDPAU_Render2 av_vdpau_hwaccel_get_render2(const AVVDPAUContext *);
-/**
- * @deprecated render2 is public and can be accessed directly
- */
-attribute_deprecated
-void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2);
-#endif
-
/**
* Associate a VDPAU device with a codec context for hardware acceleration.
* This function is meant to be called from the get_format() codec callback,
@@ -155,17 +133,6 @@ int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
int av_vdpau_get_surface_parameters(AVCodecContext *avctx, VdpChromaType *type,
uint32_t *width, uint32_t *height);
-#if FF_API_VDPAU_ALLOC_GET_SET
-/**
- * Allocate an AVVDPAUContext.
- *
- * @return Newly-allocated AVVDPAUContext or NULL on failure.
- * @deprecated use av_vdpau_bind_context() instead
- */
-attribute_deprecated
-AVVDPAUContext *av_vdpau_alloc_context(void);
-#endif
-
/** @} */
#endif /* AVCODEC_VDPAU_H */
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 9a30ba5910..dba07a0078 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -39,7 +39,6 @@
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_VDPAU_ALLOC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_QUALITY_FACTOR (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_V408_CODECID (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_CODEC_PROPS (LIBAVCODEC_VERSION_MAJOR < 63)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 09/30] avcodec: remove deprecated FF_API_QUALITY_FACTOR
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (7 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 08/30] avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 10/30] avcodec/version_major: postpone some deprecations until the next bump James Almer
` (25 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-03-29.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/packet.h | 4 ----
libavcodec/version_major.h | 1 -
2 files changed, 5 deletions(-)
diff --git a/libavcodec/packet.h b/libavcodec/packet.h
index c1f1ad7b43..71bc2e0575 100644
--- a/libavcodec/packet.h
+++ b/libavcodec/packet.h
@@ -356,10 +356,6 @@ enum AVPacketSideDataType {
AV_PKT_DATA_NB
};
-#if FF_API_QUALITY_FACTOR
-#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED
-#endif
-
/**
* This structure stores auxiliary information for decoding, presenting, or
* otherwise processing the coded stream. It is typically exported by demuxers
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index dba07a0078..2abc6a9190 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -39,7 +39,6 @@
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
-#define FF_API_QUALITY_FACTOR (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_V408_CODECID (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_CODEC_PROPS (LIBAVCODEC_VERSION_MAJOR < 63)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 10/30] avcodec/version_major: postpone some deprecations until the next bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (8 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 09/30] avcodec: remove deprecated FF_API_QUALITY_FACTOR James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 11/30] avdevice: remove deprecated FF_API_BKTR_DEVICE James Almer
` (24 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
They are either too recent, or need more work before they can be removed.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/version_major.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 2abc6a9190..b4f4936786 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -37,15 +37,15 @@
* at once through the bump. This improves the git bisect-ability of the change.
*/
-#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
+#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 63)
-#define FF_API_V408_CODECID (LIBAVCODEC_VERSION_MAJOR < 62)
+#define FF_API_V408_CODECID (LIBAVCODEC_VERSION_MAJOR < 63)
#define FF_API_CODEC_PROPS (LIBAVCODEC_VERSION_MAJOR < 63)
// reminder to remove the OMX encoder on next major bump
-#define FF_CODEC_OMX (LIBAVCODEC_VERSION_MAJOR < 62)
+#define FF_CODEC_OMX (LIBAVCODEC_VERSION_MAJOR < 63)
// reminder to remove Sonic Lossy/Lossless encoders on next major bump
-#define FF_CODEC_SONIC_ENC (LIBAVCODEC_VERSION_MAJOR < 62)
+#define FF_CODEC_SONIC_ENC (LIBAVCODEC_VERSION_MAJOR < 63)
// reminder to remove Sonic decoder on next-next major bump
#define FF_CODEC_SONIC_DEC (LIBAVCODEC_VERSION_MAJOR < 63)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 11/30] avdevice: remove deprecated FF_API_BKTR_DEVICE
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (9 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 10/30] avcodec/version_major: postpone some deprecations until the next bump James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 12/30] avdevice: remove deprecated FF_API_OPENGL_DEVICE James Almer
` (23 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-02-02.
Signed-off-by: James Almer <jamrial@gmail.com>
---
configure | 14 --
libavdevice/Makefile | 1 -
libavdevice/alldevices.c | 1 -
libavdevice/bktr.c | 366 ------------------------------------
libavdevice/version_major.h | 2 -
5 files changed, 384 deletions(-)
delete mode 100644 libavdevice/bktr.c
diff --git a/configure b/configure
index f76f946dfe..33d37cf590 100755
--- a/configure
+++ b/configure
@@ -2285,11 +2285,6 @@ HEADERS_LIST="
cdio_paranoia_paranoia_h
cuda_h
dispatch_dispatch_h
- dev_bktr_ioctl_bt848_h
- dev_bktr_ioctl_meteor_h
- dev_ic_bt8xx_h
- dev_video_bktr_ioctl_bt848_h
- dev_video_meteor_ioctl_meteor_h
direct_h
dirent_h
dxgidebug_h
@@ -2299,8 +2294,6 @@ HEADERS_LIST="
io_h
linux_dma_buf_h
linux_perf_event_h
- machine_ioctl_bt848_h
- machine_ioctl_meteor_h
malloc_h
opencv2_core_core_c_h
OpenGL_gl3_h
@@ -3744,7 +3737,6 @@ avfoundation_indev_suggest="coregraphics applicationservices"
avfoundation_indev_extralibs="-framework Foundation"
audiotoolbox_outdev_deps="audiotoolbox pthreads"
audiotoolbox_outdev_extralibs="-framework AudioToolbox -framework CoreAudio"
-bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
caca_outdev_deps="libcaca"
decklink_deps_any="libdl LoadLibrary"
decklink_indev_deps="decklink threads"
@@ -7251,12 +7243,6 @@ check_cpp_condition vfwcap_defines vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER"
check_type "dshow.h" IBaseFilter
-# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
-check_headers "dev/bktr/ioctl_meteor.h dev/bktr/ioctl_bt848.h" ||
- check_headers "machine/ioctl_meteor.h machine/ioctl_bt848.h" ||
- check_headers "dev/video/meteor/ioctl_meteor.h dev/video/bktr/ioctl_bt848.h" ||
- check_headers "dev/ic/bt8xx.h"
-
if check_struct sys/soundcard.h audio_buf_info bytes; then
enable_sanitized sys/soundcard.h
else
diff --git a/libavdevice/Makefile b/libavdevice/Makefile
index c30449201d..f35e6c4427 100644
--- a/libavdevice/Makefile
+++ b/libavdevice/Makefile
@@ -18,7 +18,6 @@ OBJS-$(CONFIG_ALSA_OUTDEV) += alsa_enc.o alsa.o
OBJS-$(CONFIG_ANDROID_CAMERA_INDEV) += android_camera.o
OBJS-$(CONFIG_AUDIOTOOLBOX_OUTDEV) += audiotoolbox.o
OBJS-$(CONFIG_AVFOUNDATION_INDEV) += avfoundation.o
-OBJS-$(CONFIG_BKTR_INDEV) += bktr.o
OBJS-$(CONFIG_CACA_OUTDEV) += caca.o
OBJS-$(CONFIG_DECKLINK_OUTDEV) += decklink_enc.o decklink_enc_c.o decklink_common.o
OBJS-$(CONFIG_DECKLINK_INDEV) += decklink_dec.o decklink_dec_c.o decklink_common.o
diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c
index 3f0e6101a5..ce28eac8b8 100644
--- a/libavdevice/alldevices.c
+++ b/libavdevice/alldevices.c
@@ -32,7 +32,6 @@ extern const FFOutputFormat ff_alsa_muxer;
extern const FFInputFormat ff_android_camera_demuxer;
extern const FFOutputFormat ff_audiotoolbox_muxer;
extern const FFInputFormat ff_avfoundation_demuxer;
-extern const FFInputFormat ff_bktr_demuxer;
extern const FFOutputFormat ff_caca_muxer;
extern const FFInputFormat ff_decklink_demuxer;
extern const FFOutputFormat ff_decklink_muxer;
diff --git a/libavdevice/bktr.c b/libavdevice/bktr.c
deleted file mode 100644
index eed75a9a92..0000000000
--- a/libavdevice/bktr.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * *BSD video grab interface
- * Copyright (c) 2002 Steve O'Hara-Smith
- * based on
- * Linux video grab interface
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * and
- * simple_grab.c Copyright (c) 1999 Roger Hardiman
- *
- * 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
- */
-
-#include "libavformat/demux.h"
-#include "libavformat/internal.h"
-#include "libavutil/file_open.h"
-#include "libavutil/internal.h"
-#include "libavutil/log.h"
-#include "libavutil/mem.h"
-#include "libavutil/opt.h"
-#include "libavutil/parseutils.h"
-#include "libavutil/time.h"
-#if HAVE_DEV_BKTR_IOCTL_METEOR_H && HAVE_DEV_BKTR_IOCTL_BT848_H
-# include <dev/bktr/ioctl_meteor.h>
-# include <dev/bktr/ioctl_bt848.h>
-#elif HAVE_MACHINE_IOCTL_METEOR_H && HAVE_MACHINE_IOCTL_BT848_H
-# include <machine/ioctl_meteor.h>
-# include <machine/ioctl_bt848.h>
-#elif HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H && HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H
-# include <dev/video/meteor/ioctl_meteor.h>
-# include <dev/video/bktr/ioctl_bt848.h>
-#elif HAVE_DEV_IC_BT8XX_H
-# include <dev/ic/bt8xx.h>
-#endif
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-#include <signal.h>
-#include <stdint.h>
-#include "avdevice.h"
-
-typedef struct VideoData {
- AVClass *class;
- int video_fd;
- int tuner_fd;
- int width, height;
- uint64_t per_frame;
- int standard;
- char *framerate; /**< Set by a private option. */
-} VideoData;
-
-
-#define PAL 1
-#define PALBDGHI 1
-#define NTSC 2
-#define NTSCM 2
-#define SECAM 3
-#define PALN 4
-#define PALM 5
-#define NTSCJ 6
-
-/* PAL is 768 x 576. NTSC is 640 x 480 */
-#define PAL_HEIGHT 576
-#define SECAM_HEIGHT 576
-#define NTSC_HEIGHT 480
-
-#ifndef VIDEO_FORMAT
-#define VIDEO_FORMAT NTSC
-#endif
-
-static const int bktr_dev[] = { METEOR_DEV0, METEOR_DEV1, METEOR_DEV2,
- METEOR_DEV3, METEOR_DEV_SVIDEO };
-
-uint8_t *video_buf;
-size_t video_buf_size;
-uint64_t last_frame_time;
-volatile sig_atomic_t nsignals;
-
-
-static void catchsignal(int signal)
-{
- nsignals++;
- return;
-}
-
-static av_cold int bktr_init(const char *video_device, int width, int height,
- int format, int *video_fd, int *tuner_fd, int idev, double frequency)
-{
- struct meteor_geomet geo;
- int h_max;
- long ioctl_frequency;
- char *arg;
- int c;
- struct sigaction act, old;
- int ret;
- char errbuf[128];
-
- if (idev < 0 || idev > 4)
- {
- arg = getenv ("BKTR_DEV");
- if (arg)
- idev = atoi (arg);
- if (idev < 0 || idev > 4)
- idev = 1;
- }
-
- if (format < 1 || format > 6)
- {
- arg = getenv ("BKTR_FORMAT");
- if (arg)
- format = atoi (arg);
- if (format < 1 || format > 6)
- format = VIDEO_FORMAT;
- }
-
- if (frequency <= 0)
- {
- arg = getenv ("BKTR_FREQUENCY");
- if (arg)
- frequency = atof (arg);
- if (frequency <= 0)
- frequency = 0.0;
- }
-
- memset(&act, 0, sizeof(act));
- sigemptyset(&act.sa_mask);
- act.sa_handler = catchsignal;
- sigaction(SIGUSR1, &act, &old);
-
- *tuner_fd = avpriv_open("/dev/tuner0", O_RDONLY);
- if (*tuner_fd < 0)
- av_log(NULL, AV_LOG_ERROR, "Warning. Tuner not opened, continuing: %s\n", strerror(errno));
-
- *video_fd = avpriv_open(video_device, O_RDONLY);
- if (*video_fd < 0) {
- ret = AVERROR(errno);
- av_strerror(ret, errbuf, sizeof(errbuf));
- av_log(NULL, AV_LOG_ERROR, "%s: %s\n", video_device, errbuf);
- return ret;
- }
-
- geo.rows = height;
- geo.columns = width;
- geo.frames = 1;
- geo.oformat = METEOR_GEO_YUV_422 | METEOR_GEO_YUV_12;
-
- switch (format) {
- case PAL: h_max = PAL_HEIGHT; c = BT848_IFORM_F_PALBDGHI; break;
- case PALN: h_max = PAL_HEIGHT; c = BT848_IFORM_F_PALN; break;
- case PALM: h_max = PAL_HEIGHT; c = BT848_IFORM_F_PALM; break;
- case SECAM: h_max = SECAM_HEIGHT; c = BT848_IFORM_F_SECAM; break;
- case NTSC: h_max = NTSC_HEIGHT; c = BT848_IFORM_F_NTSCM; break;
- case NTSCJ: h_max = NTSC_HEIGHT; c = BT848_IFORM_F_NTSCJ; break;
- default: h_max = PAL_HEIGHT; c = BT848_IFORM_F_PALBDGHI; break;
- }
-
- if (height <= h_max / 2)
- geo.oformat |= METEOR_GEO_EVEN_ONLY;
-
- if (ioctl(*video_fd, METEORSETGEO, &geo) < 0) {
- ret = AVERROR(errno);
- av_strerror(ret, errbuf, sizeof(errbuf));
- av_log(NULL, AV_LOG_ERROR, "METEORSETGEO: %s\n", errbuf);
- return ret;
- }
-
- if (ioctl(*video_fd, BT848SFMT, &c) < 0) {
- ret = AVERROR(errno);
- av_strerror(ret, errbuf, sizeof(errbuf));
- av_log(NULL, AV_LOG_ERROR, "BT848SFMT: %s\n", errbuf);
- return ret;
- }
-
- c = bktr_dev[idev];
- if (ioctl(*video_fd, METEORSINPUT, &c) < 0) {
- ret = AVERROR(errno);
- av_strerror(ret, errbuf, sizeof(errbuf));
- av_log(NULL, AV_LOG_ERROR, "METEORSINPUT: %s\n", errbuf);
- return ret;
- }
-
- video_buf_size = width * height * 12 / 8;
-
- video_buf = (uint8_t *)mmap((caddr_t)0, video_buf_size,
- PROT_READ, MAP_SHARED, *video_fd, (off_t)0);
- if (video_buf == MAP_FAILED) {
- ret = AVERROR(errno);
- av_strerror(ret, errbuf, sizeof(errbuf));
- av_log(NULL, AV_LOG_ERROR, "mmap: %s\n", errbuf);
- return ret;
- }
-
- if (frequency != 0.0) {
- ioctl_frequency = (unsigned long)(frequency*16);
- if (ioctl(*tuner_fd, TVTUNER_SETFREQ, &ioctl_frequency) < 0)
- av_log(NULL, AV_LOG_ERROR, "TVTUNER_SETFREQ: %s\n", strerror(errno));
- }
-
- c = AUDIO_UNMUTE;
- if (ioctl(*tuner_fd, BT848_SAUDIO, &c) < 0)
- av_log(NULL, AV_LOG_ERROR, "TVTUNER_SAUDIO: %s\n", strerror(errno));
-
- c = METEOR_CAP_CONTINOUS;
- ioctl(*video_fd, METEORCAPTUR, &c);
-
- c = SIGUSR1;
- ioctl(*video_fd, METEORSSIGNAL, &c);
-
- return 0;
-}
-
-static void bktr_getframe(uint64_t per_frame)
-{
- uint64_t curtime;
-
- curtime = av_gettime_relative();
- if (!last_frame_time
- || ((last_frame_time + per_frame) > curtime)) {
- if (!usleep(last_frame_time + per_frame + per_frame / 8 - curtime)) {
- if (!nsignals)
- av_log(NULL, AV_LOG_INFO,
- "SLEPT NO signals - %d microseconds late\n",
- (int)(av_gettime_relative() - last_frame_time - per_frame));
- }
- }
- nsignals = 0;
- last_frame_time = curtime;
-}
-
-
-/* note: we support only one picture read at a time */
-static int grab_read_packet(AVFormatContext *s1, AVPacket *pkt)
-{
- VideoData *s = s1->priv_data;
-
- if (av_new_packet(pkt, video_buf_size) < 0)
- return AVERROR(EIO);
-
- bktr_getframe(s->per_frame);
-
- pkt->pts = av_gettime();
- memcpy(pkt->data, video_buf, video_buf_size);
-
- return video_buf_size;
-}
-
-static int grab_read_header(AVFormatContext *s1)
-{
- VideoData *s = s1->priv_data;
- AVStream *st;
- AVRational framerate;
- int ret = 0;
-
- av_log(s1, AV_LOG_WARNING, "bktr input is deprecated and will be removed. "
- "Please contact the developers if you are interested in maintaining it.\n");
-
- if (!s->framerate)
- switch (s->standard) {
- case PAL: s->framerate = av_strdup("pal"); break;
- case NTSC: s->framerate = av_strdup("ntsc"); break;
- case SECAM: s->framerate = av_strdup("25"); break;
- default:
- av_log(s1, AV_LOG_ERROR, "Unknown standard.\n");
- ret = AVERROR(EINVAL);
- goto out;
- }
- if ((ret = av_parse_video_rate(&framerate, s->framerate)) < 0) {
- av_log(s1, AV_LOG_ERROR, "Could not parse framerate '%s'.\n", s->framerate);
- goto out;
- }
-
- st = avformat_new_stream(s1, NULL);
- if (!st) {
- ret = AVERROR(ENOMEM);
- goto out;
- }
- avpriv_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in use */
-
- s->per_frame = ((uint64_t)1000000 * framerate.den) / framerate.num;
-
- st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
- st->codecpar->format = AV_PIX_FMT_YUV420P;
- st->codecpar->codec_id = AV_CODEC_ID_RAWVIDEO;
- st->codecpar->width = s->width;
- st->codecpar->height = s->height;
- st->avg_frame_rate = framerate;
-
- if (bktr_init(s1->url, s->width, s->height, s->standard,
- &s->video_fd, &s->tuner_fd, -1, 0.0) < 0) {
- ret = AVERROR(EIO);
- goto out;
- }
-
- nsignals = 0;
- last_frame_time = 0;
-
-out:
- return ret;
-}
-
-static int grab_read_close(AVFormatContext *s1)
-{
- VideoData *s = s1->priv_data;
- int c;
-
- c = METEOR_CAP_STOP_CONT;
- ioctl(s->video_fd, METEORCAPTUR, &c);
- close(s->video_fd);
-
- c = AUDIO_MUTE;
- ioctl(s->tuner_fd, BT848_SAUDIO, &c);
- close(s->tuner_fd);
-
- munmap((caddr_t)video_buf, video_buf_size);
-
- return 0;
-}
-
-#define OFFSET(x) offsetof(VideoData, x)
-#define DEC AV_OPT_FLAG_DECODING_PARAM
-static const AVOption options[] = {
- { "standard", "", offsetof(VideoData, standard), AV_OPT_TYPE_INT, {.i64 = VIDEO_FORMAT}, PAL, NTSCJ, AV_OPT_FLAG_DECODING_PARAM, .unit = "standard" },
- { "PAL", "", 0, AV_OPT_TYPE_CONST, {.i64 = PAL}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, .unit = "standard" },
- { "NTSC", "", 0, AV_OPT_TYPE_CONST, {.i64 = NTSC}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, .unit = "standard" },
- { "SECAM", "", 0, AV_OPT_TYPE_CONST, {.i64 = SECAM}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, .unit = "standard" },
- { "PALN", "", 0, AV_OPT_TYPE_CONST, {.i64 = PALN}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, .unit = "standard" },
- { "PALM", "", 0, AV_OPT_TYPE_CONST, {.i64 = PALM}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, .unit = "standard" },
- { "NTSCJ", "", 0, AV_OPT_TYPE_CONST, {.i64 = NTSCJ}, 0, 0, AV_OPT_FLAG_DECODING_PARAM, .unit = "standard" },
- { "video_size", "A string describing frame size, such as 640x480 or hd720.", OFFSET(width), AV_OPT_TYPE_IMAGE_SIZE, {.str = "vga"}, 0, 0, DEC },
- { "framerate", "", OFFSET(framerate), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC },
- { NULL },
-};
-
-static const AVClass bktr_class = {
- .class_name = "BKTR grab indev",
- .item_name = av_default_item_name,
- .option = options,
- .version = LIBAVUTIL_VERSION_INT,
- .category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
-};
-
-const FFInputFormat ff_bktr_demuxer = {
- .p.name = "bktr",
- .p.long_name = NULL_IF_CONFIG_SMALL("video grab"),
- .p.flags = AVFMT_NOFILE,
- .p.priv_class = &bktr_class,
- .priv_data_size = sizeof(VideoData),
- .read_header = grab_read_header,
- .read_packet = grab_read_packet,
- .read_close = grab_read_close,
-};
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
index 50f577f295..b7dbe28b4d 100644
--- a/libavdevice/version_major.h
+++ b/libavdevice/version_major.h
@@ -33,8 +33,6 @@
* the public API and may change, break or disappear at any time.
*/
-// reminder to remove the bktr device on next major bump
-#define FF_API_BKTR_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
// reminder to remove the opengl device on next major bump
#define FF_API_OPENGL_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
// reminder to remove the sdl2 device on next major bump
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 12/30] avdevice: remove deprecated FF_API_OPENGL_DEVICE
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (10 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 11/30] avdevice: remove deprecated FF_API_BKTR_DEVICE James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 13/30] avdevice: remove deprecated FF_API_SDL2_DEVICE James Almer
` (22 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-02-28.
Signed-off-by: James Almer <jamrial@gmail.com>
---
configure | 5 +-
libavdevice/Makefile | 1 -
libavdevice/alldevices.c | 1 -
libavdevice/opengl_enc.c | 1325 ------------------------------
libavdevice/opengl_enc_shaders.h | 188 -----
libavdevice/version_major.h | 2 -
6 files changed, 1 insertion(+), 1521 deletions(-)
delete mode 100644 libavdevice/opengl_enc.c
delete mode 100644 libavdevice/opengl_enc_shaders.h
diff --git a/configure b/configure
index 33d37cf590..9a003aa453 100755
--- a/configure
+++ b/configure
@@ -2296,7 +2296,6 @@ HEADERS_LIST="
linux_perf_event_h
malloc_h
opencv2_core_core_c_h
- OpenGL_gl3_h
poll_h
pthread_np_h
sys_hwprobe_h
@@ -3761,8 +3760,6 @@ lavfi_indev_deps="avfilter"
libcdio_indev_deps="libcdio"
libdc1394_indev_deps="libdc1394"
openal_indev_deps="openal"
-opengl_outdev_deps="opengl"
-opengl_outdev_suggest="sdl2"
oss_indev_deps_any="sys_soundcard_h"
oss_outdev_deps_any="sys_soundcard_h"
pulse_indev_deps="libpulse"
@@ -7863,7 +7860,7 @@ enabled zoompan_filter && prepend avfilter_deps "swscale"
enabled lavfi_indev && prepend avdevice_deps "avfilter"
#FIXME
-enabled_any sdl2_outdev opengl_outdev && enabled sdl2 &&
+enabled_any sdl2_outdev && enabled sdl2 &&
add_cflags $(filter_out '-Dmain=SDL_main' $sdl2_cflags)
enabled opus_decoder && prepend avcodec_deps "swresample"
diff --git a/libavdevice/Makefile b/libavdevice/Makefile
index f35e6c4427..d09bfb95f9 100644
--- a/libavdevice/Makefile
+++ b/libavdevice/Makefile
@@ -34,7 +34,6 @@ OBJS-$(CONFIG_JACK_INDEV) += jack.o timefilter.o
OBJS-$(CONFIG_KMSGRAB_INDEV) += kmsgrab.o
OBJS-$(CONFIG_LAVFI_INDEV) += lavfi.o
OBJS-$(CONFIG_OPENAL_INDEV) += openal-dec.o
-OBJS-$(CONFIG_OPENGL_OUTDEV) += opengl_enc.o
OBJS-$(CONFIG_OSS_INDEV) += oss_dec.o oss.o
OBJS-$(CONFIG_OSS_OUTDEV) += oss_enc.o oss.o
OBJS-$(CONFIG_PULSE_INDEV) += pulse_audio_dec.o \
diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c
index ce28eac8b8..c2e525b7b9 100644
--- a/libavdevice/alldevices.c
+++ b/libavdevice/alldevices.c
@@ -44,7 +44,6 @@ extern const FFInputFormat ff_jack_demuxer;
extern const FFInputFormat ff_kmsgrab_demuxer;
extern const FFInputFormat ff_lavfi_demuxer;
extern const FFInputFormat ff_openal_demuxer;
-extern const FFOutputFormat ff_opengl_muxer;
extern const FFInputFormat ff_oss_demuxer;
extern const FFOutputFormat ff_oss_muxer;
extern const FFInputFormat ff_pulse_demuxer;
diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c
deleted file mode 100644
index 93d3959880..0000000000
--- a/libavdevice/opengl_enc.c
+++ /dev/null
@@ -1,1325 +0,0 @@
-/*
- * Copyright (c) 2014 Lukasz Marek
- *
- * 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
- */
-
-//TODO: support for more formats
-//TODO: support for more systems.
-//TODO: implement X11, Windows, Mac OS native default window. SDL 1.2 doesn't allow to render to custom thread.
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stddef.h>
-
-#include "config.h"
-
-#if HAVE_WINDOWS_H
-#include <windows.h>
-#endif
-#if HAVE_OPENGL_GL3_H
-#include <OpenGL/gl3.h>
-#elif HAVE_ES2_GL_H
-#include <ES2/gl.h>
-#else
-#include <GL/gl.h>
-#include <GL/glext.h>
-#endif
-#if HAVE_GLXGETPROCADDRESS
-#include <GL/glx.h>
-#endif
-
-#if CONFIG_SDL2
-#include <SDL.h>
-#endif
-
-#include "libavutil/common.h"
-#include "libavutil/frame.h"
-#include "libavutil/mem.h"
-#include "libavutil/pixdesc.h"
-#include "libavutil/log.h"
-#include "libavutil/opt.h"
-#include "libavutil/avassert.h"
-#include "libavformat/avformat.h"
-#include "libavformat/internal.h"
-#include "libavformat/mux.h"
-#include "libavdevice/avdevice.h"
-#include "opengl_enc_shaders.h"
-
-#ifndef APIENTRY
-#define APIENTRY
-#endif
-
-/* FF_GL_RED_COMPONENT is used for planar pixel types.
- * Only red component is sampled in shaders.
- * On some platforms GL_RED is not available and GL_LUMINANCE have to be used,
- * but since OpenGL 3.0 GL_LUMINANCE is deprecated.
- * GL_RED produces RGBA = value, 0, 0, 1.
- * GL_LUMINANCE produces RGBA = value, value, value, 1.
- * Note: GL_INTENSITY may also be used which produce RGBA = value, value, value, value. */
-#if defined(GL_RED)
-#define FF_GL_RED_COMPONENT GL_RED
-#elif defined(GL_LUMINANCE)
-#define FF_GL_RED_COMPONENT GL_LUMINANCE
-#else
-#define FF_GL_RED_COMPONENT 0x1903; //GL_RED
-#endif
-
-/* Constants not defined for iOS */
-#define FF_GL_UNSIGNED_BYTE_3_3_2 0x8032
-#define FF_GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
-#define FF_GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
-#define FF_GL_UNPACK_ROW_LENGTH 0x0CF2
-
-/* MinGW exposes only OpenGL 1.1 API */
-#define FF_GL_ARRAY_BUFFER 0x8892
-#define FF_GL_ELEMENT_ARRAY_BUFFER 0x8893
-#define FF_GL_STATIC_DRAW 0x88E4
-#define FF_GL_FRAGMENT_SHADER 0x8B30
-#define FF_GL_VERTEX_SHADER 0x8B31
-#define FF_GL_COMPILE_STATUS 0x8B81
-#define FF_GL_LINK_STATUS 0x8B82
-#define FF_GL_INFO_LOG_LENGTH 0x8B84
-typedef void (APIENTRY *FF_PFNGLACTIVETEXTUREPROC) (GLenum texture);
-typedef void (APIENTRY *FF_PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
-typedef void (APIENTRY *FF_PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
-typedef void (APIENTRY *FF_PFNGLBUFFERDATAPROC) (GLenum target, ptrdiff_t size, const GLvoid *data, GLenum usage);
-typedef void (APIENTRY *FF_PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
-typedef GLint (APIENTRY *FF_PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const char *name);
-typedef void (APIENTRY *FF_PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (APIENTRY *FF_PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, uintptr_t pointer);
-typedef GLint (APIENTRY *FF_PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const char *name);
-typedef void (APIENTRY *FF_PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
-typedef void (APIENTRY *FF_PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
-typedef void (APIENTRY *FF_PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef GLuint (APIENTRY *FF_PFNGLCREATEPROGRAMPROC) (void);
-typedef void (APIENTRY *FF_PFNGLDELETEPROGRAMPROC) (GLuint program);
-typedef void (APIENTRY *FF_PFNGLUSEPROGRAMPROC) (GLuint program);
-typedef void (APIENTRY *FF_PFNGLLINKPROGRAMPROC) (GLuint program);
-typedef void (APIENTRY *FF_PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
-typedef void (APIENTRY *FF_PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, char *infoLog);
-typedef void (APIENTRY *FF_PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
-typedef GLuint (APIENTRY *FF_PFNGLCREATESHADERPROC) (GLenum type);
-typedef void (APIENTRY *FF_PFNGLDELETESHADERPROC) (GLuint shader);
-typedef void (APIENTRY *FF_PFNGLCOMPILESHADERPROC) (GLuint shader);
-typedef void (APIENTRY *FF_PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const char* *string, const GLint *length);
-typedef void (APIENTRY *FF_PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
-typedef void (APIENTRY *FF_PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, char *infoLog);
-
-typedef struct FFOpenGLFunctions {
- FF_PFNGLACTIVETEXTUREPROC glActiveTexture; //Require GL ARB multitexture
- FF_PFNGLGENBUFFERSPROC glGenBuffers; //Require GL_ARB_vertex_buffer_object
- FF_PFNGLDELETEBUFFERSPROC glDeleteBuffers; //Require GL_ARB_vertex_buffer_object
- FF_PFNGLBUFFERDATAPROC glBufferData; //Require GL_ARB_vertex_buffer_object
- FF_PFNGLBINDBUFFERPROC glBindBuffer; //Require GL_ARB_vertex_buffer_object
- FF_PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation; //Require GL_ARB_vertex_shader
- FF_PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray; //Require GL_ARB_vertex_shader
- FF_PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer; //Require GL_ARB_vertex_shader
- FF_PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation; //Require GL_ARB_shader_objects
- FF_PFNGLUNIFORM1FPROC glUniform1f; //Require GL_ARB_shader_objects
- FF_PFNGLUNIFORM1IPROC glUniform1i; //Require GL_ARB_shader_objects
- FF_PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv; //Require GL_ARB_shader_objects
- FF_PFNGLCREATEPROGRAMPROC glCreateProgram; //Require GL_ARB_shader_objects
- FF_PFNGLDELETEPROGRAMPROC glDeleteProgram; //Require GL_ARB_shader_objects
- FF_PFNGLUSEPROGRAMPROC glUseProgram; //Require GL_ARB_shader_objects
- FF_PFNGLLINKPROGRAMPROC glLinkProgram; //Require GL_ARB_shader_objects
- FF_PFNGLGETPROGRAMIVPROC glGetProgramiv; //Require GL_ARB_shader_objects
- FF_PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog; //Require GL_ARB_shader_objects
- FF_PFNGLATTACHSHADERPROC glAttachShader; //Require GL_ARB_shader_objects
- FF_PFNGLCREATESHADERPROC glCreateShader; //Require GL_ARB_shader_objects
- FF_PFNGLDELETESHADERPROC glDeleteShader; //Require GL_ARB_shader_objects
- FF_PFNGLCOMPILESHADERPROC glCompileShader; //Require GL_ARB_shader_objects
- FF_PFNGLSHADERSOURCEPROC glShaderSource; //Require GL_ARB_shader_objects
- FF_PFNGLGETSHADERIVPROC glGetShaderiv; //Require GL_ARB_shader_objects
- FF_PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog; //Require GL_ARB_shader_objects
-} FFOpenGLFunctions;
-
-#define OPENGL_ERROR_CHECK(ctx) \
-{\
- GLenum err_code; \
- if ((err_code = glGetError()) != GL_NO_ERROR) { \
- av_log(ctx, AV_LOG_ERROR, "OpenGL error occurred in '%s', line %d: %d\n", __func__, __LINE__, err_code); \
- goto fail; \
- } \
-}\
-
-typedef struct OpenGLVertexInfo
-{
- float x, y, z; ///<Position
- float s0, t0; ///<Texture coords
-} OpenGLVertexInfo;
-
-/* defines 2 triangles to display */
-static const GLushort g_index[6] =
-{
- 0, 1, 2,
- 0, 3, 2,
-};
-
-typedef struct OpenGLContext {
- AVClass *class; ///< class for private options
-
-#if CONFIG_SDL2
- SDL_Window *window;
- SDL_GLContext glcontext;
-#endif
- FFOpenGLFunctions glprocs;
-
- int inited; ///< Set to 1 when write_header was successfully called.
- uint8_t background[4]; ///< Background color
- int no_window; ///< 0 for create default window
- char *window_title; ///< Title of the window
-
- /* OpenGL implementation limits */
- GLint max_texture_size; ///< Maximum texture size
- GLint max_viewport_width; ///< Maximum viewport size
- GLint max_viewport_height; ///< Maximum viewport size
- int non_pow_2_textures; ///< 1 when non power of 2 textures are supported
- int unpack_subimage; ///< 1 when GL_EXT_unpack_subimage is available
-
- /* Current OpenGL configuration */
- GLuint program; ///< Shader program
- GLuint vertex_shader; ///< Vertex shader
- GLuint fragment_shader; ///< Fragment shader for current pix_pmt
- GLuint texture_name[4]; ///< Textures' IDs
- GLuint index_buffer; ///< Index buffer
- GLuint vertex_buffer; ///< Vertex buffer
- OpenGLVertexInfo vertex[4]; ///< VBO
- GLint projection_matrix_location; ///< Uniforms' locations
- GLint model_view_matrix_location;
- GLint color_map_location;
- GLint chroma_div_w_location;
- GLint chroma_div_h_location;
- GLint texture_location[4];
- GLint position_attrib; ///< Attibutes' locations
- GLint texture_coords_attrib;
-
- GLfloat projection_matrix[16]; ///< Projection matrix
- GLfloat model_view_matrix[16]; ///< Modev view matrix
- GLfloat color_map[16]; ///< RGBA color map matrix
- GLfloat chroma_div_w; ///< Chroma subsampling w ratio
- GLfloat chroma_div_h; ///< Chroma subsampling h ratio
-
- /* Stream information */
- GLenum format;
- GLenum type;
- int width; ///< Stream width
- int height; ///< Stream height
- enum AVPixelFormat pix_fmt; ///< Stream pixel format
- int picture_width; ///< Rendered width
- int picture_height; ///< Rendered height
- int window_width;
- int window_height;
-
- int warned;
-} OpenGLContext;
-
-static const struct OpenGLFormatDesc {
- enum AVPixelFormat fixel_format;
- const char * const * fragment_shader;
- GLenum format;
- GLenum type;
-} opengl_format_desc[] = {
- { AV_PIX_FMT_YUV420P, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUV444P, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUV422P, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUV410P, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUV411P, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUV440P, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUV420P16, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_YUV422P16, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_YUV444P16, &FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_YUVA420P, &FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUVA444P, &FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUVA422P, &FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_YUVA420P16, &FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_YUVA422P16, &FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_YUVA444P16, &FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_RGB24, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGB, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_BGR24, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGB, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_0RGB, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGBA, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_RGB0, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGBA, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_0BGR, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGBA, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_BGR0, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGBA, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_RGB565, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGB, GL_UNSIGNED_SHORT_5_6_5 },
- { AV_PIX_FMT_BGR565, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGB, GL_UNSIGNED_SHORT_5_6_5 },
- { AV_PIX_FMT_RGB555, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGBA, FF_GL_UNSIGNED_SHORT_1_5_5_5_REV },
- { AV_PIX_FMT_BGR555, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGBA, FF_GL_UNSIGNED_SHORT_1_5_5_5_REV },
- { AV_PIX_FMT_RGB8, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGB, FF_GL_UNSIGNED_BYTE_3_3_2 },
- { AV_PIX_FMT_BGR8, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGB, FF_GL_UNSIGNED_BYTE_2_3_3_REV },
- { AV_PIX_FMT_RGB48, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGB, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_BGR48, &FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET, GL_RGB, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_ARGB, &FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET, GL_RGBA, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_RGBA, &FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET, GL_RGBA, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_ABGR, &FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET, GL_RGBA, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_BGRA, &FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET, GL_RGBA, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_RGBA64, &FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET, GL_RGBA, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_BGRA64, &FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET, GL_RGBA, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_GBRP, &FF_OPENGL_FRAGMENT_SHADER_RGB_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_GBRP16, &FF_OPENGL_FRAGMENT_SHADER_RGB_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_GBRAP, &FF_OPENGL_FRAGMENT_SHADER_RGBA_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_GBRAP16, &FF_OPENGL_FRAGMENT_SHADER_RGBA_PLANAR, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_GRAY8, &FF_OPENGL_FRAGMENT_SHADER_GRAY, FF_GL_RED_COMPONENT, GL_UNSIGNED_BYTE },
- { AV_PIX_FMT_GRAY16, &FF_OPENGL_FRAGMENT_SHADER_GRAY, FF_GL_RED_COMPONENT, GL_UNSIGNED_SHORT },
- { AV_PIX_FMT_NONE, NULL }
-};
-
-static av_cold int opengl_prepare_vertex(AVFormatContext *s);
-static int opengl_draw(AVFormatContext *h, void *intput, int repaint, int is_pkt);
-static av_cold int opengl_init_context(OpenGLContext *opengl);
-
-static av_cold void opengl_deinit_context(OpenGLContext *opengl)
-{
- glDeleteTextures(4, opengl->texture_name);
- opengl->texture_name[0] = opengl->texture_name[1] =
- opengl->texture_name[2] = opengl->texture_name[3] = 0;
- if (opengl->glprocs.glUseProgram)
- opengl->glprocs.glUseProgram(0);
- if (opengl->glprocs.glDeleteProgram) {
- opengl->glprocs.glDeleteProgram(opengl->program);
- opengl->program = 0;
- }
- if (opengl->glprocs.glDeleteShader) {
- opengl->glprocs.glDeleteShader(opengl->vertex_shader);
- opengl->glprocs.glDeleteShader(opengl->fragment_shader);
- opengl->vertex_shader = opengl->fragment_shader = 0;
- }
- if (opengl->glprocs.glBindBuffer) {
- opengl->glprocs.glBindBuffer(FF_GL_ARRAY_BUFFER, 0);
- opengl->glprocs.glBindBuffer(FF_GL_ELEMENT_ARRAY_BUFFER, 0);
- }
- if (opengl->glprocs.glDeleteBuffers) {
- opengl->glprocs.glDeleteBuffers(2, &opengl->index_buffer);
- opengl->vertex_buffer = opengl->index_buffer = 0;
- }
-}
-
-static int opengl_resize(AVFormatContext *h, int width, int height)
-{
- int ret = 0;
- OpenGLContext *opengl = h->priv_data;
- opengl->window_width = width;
- opengl->window_height = height;
- if (opengl->inited) {
- if (opengl->no_window &&
- (ret = avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER, NULL , 0)) < 0) {
- av_log(opengl, AV_LOG_ERROR, "Application failed to prepare window buffer.\n");
- goto end;
- }
- if ((ret = opengl_prepare_vertex(h)) < 0)
- goto end;
- ret = opengl_draw(h, NULL, 1, 0);
- }
- end:
- return ret;
-}
-
-static int opengl_control_message(AVFormatContext *h, int type, void *data, size_t data_size)
-{
- OpenGLContext *opengl = h->priv_data;
- switch(type) {
- case AV_APP_TO_DEV_WINDOW_SIZE:
- if (data) {
- AVDeviceRect *message = data;
- return opengl_resize(h, message->width, message->height);
- }
- return AVERROR(EINVAL);
- case AV_APP_TO_DEV_WINDOW_REPAINT:
- return opengl_resize(h, opengl->window_width, opengl->window_height);
- }
- return AVERROR(ENOSYS);
-}
-
-#if CONFIG_SDL2
-static int opengl_sdl_process_events(AVFormatContext *h)
-{
- OpenGLContext *opengl = h->priv_data;
- AVDeviceRect message;
- SDL_Event event;
- SDL_PumpEvents();
- while (SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT) > 0) {
- switch (event.type) {
- case SDL_QUIT:
- return AVERROR(EIO);
- case SDL_KEYDOWN:
- switch (event.key.keysym.sym) {
- case SDLK_ESCAPE:
- case SDLK_q:
- return AVERROR(EIO);
- }
- return 0;
- case SDL_WINDOWEVENT:
- switch(event.window.event) {
- case SDL_WINDOWEVENT_RESIZED:
- case SDL_WINDOWEVENT_SIZE_CHANGED:
- SDL_GL_GetDrawableSize(opengl->window, &message.width, &message.height);
- return opengl_control_message(h, AV_APP_TO_DEV_WINDOW_SIZE, &message, sizeof(AVDeviceRect));
- default:
- break;
- }
- }
- }
- return 0;
-}
-
-static int av_cold opengl_sdl_create_window(AVFormatContext *h)
-{
- OpenGLContext *opengl = h->priv_data;
- AVDeviceRect message;
- if (SDL_Init(SDL_INIT_VIDEO)) {
- av_log(opengl, AV_LOG_ERROR, "Unable to initialize SDL: %s\n", SDL_GetError());
- return AVERROR_EXTERNAL;
- }
- opengl->window = SDL_CreateWindow(opengl->window_title,
- SDL_WINDOWPOS_UNDEFINED,
- SDL_WINDOWPOS_UNDEFINED,
- opengl->window_width, opengl->window_height,
- SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL);
- if (!opengl->window) {
- av_log(opengl, AV_LOG_ERROR, "Unable to create default window: %s\n", SDL_GetError());
- return AVERROR_EXTERNAL;
- }
- opengl->glcontext = SDL_GL_CreateContext(opengl->window);
- if (!opengl->glcontext) {
- av_log(opengl, AV_LOG_ERROR, "Unable to create OpenGL context on default window: %s\n", SDL_GetError());
- return AVERROR_EXTERNAL;
- }
- SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
- av_log(opengl, AV_LOG_INFO, "SDL driver: '%s'.\n", SDL_GetCurrentVideoDriver());
- SDL_GL_GetDrawableSize(opengl->window, &message.width, &message.height);
- return opengl_control_message(h, AV_APP_TO_DEV_WINDOW_SIZE, &message, sizeof(AVDeviceRect));
-}
-
-static int av_cold opengl_sdl_load_procedures(OpenGLContext *opengl)
-{
- FFOpenGLFunctions *procs = &opengl->glprocs;
-
-#define LOAD_OPENGL_FUN(name, type) \
- procs->name = (type)SDL_GL_GetProcAddress(#name); \
- if (!procs->name) { \
- av_log(opengl, AV_LOG_ERROR, "Cannot load OpenGL function: '%s'\n", #name); \
- return AVERROR(ENOSYS); \
- }
-
- LOAD_OPENGL_FUN(glActiveTexture, FF_PFNGLACTIVETEXTUREPROC)
- LOAD_OPENGL_FUN(glGenBuffers, FF_PFNGLGENBUFFERSPROC)
- LOAD_OPENGL_FUN(glDeleteBuffers, FF_PFNGLDELETEBUFFERSPROC)
- LOAD_OPENGL_FUN(glBufferData, FF_PFNGLBUFFERDATAPROC)
- LOAD_OPENGL_FUN(glBindBuffer, FF_PFNGLBINDBUFFERPROC)
- LOAD_OPENGL_FUN(glGetAttribLocation, FF_PFNGLGETATTRIBLOCATIONPROC)
- LOAD_OPENGL_FUN(glGetUniformLocation, FF_PFNGLGETUNIFORMLOCATIONPROC)
- LOAD_OPENGL_FUN(glUniform1f, FF_PFNGLUNIFORM1FPROC)
- LOAD_OPENGL_FUN(glUniform1i, FF_PFNGLUNIFORM1IPROC)
- LOAD_OPENGL_FUN(glUniformMatrix4fv, FF_PFNGLUNIFORMMATRIX4FVPROC)
- LOAD_OPENGL_FUN(glCreateProgram, FF_PFNGLCREATEPROGRAMPROC)
- LOAD_OPENGL_FUN(glDeleteProgram, FF_PFNGLDELETEPROGRAMPROC)
- LOAD_OPENGL_FUN(glUseProgram, FF_PFNGLUSEPROGRAMPROC)
- LOAD_OPENGL_FUN(glLinkProgram, FF_PFNGLLINKPROGRAMPROC)
- LOAD_OPENGL_FUN(glGetProgramiv, FF_PFNGLGETPROGRAMIVPROC)
- LOAD_OPENGL_FUN(glGetProgramInfoLog, FF_PFNGLGETPROGRAMINFOLOGPROC)
- LOAD_OPENGL_FUN(glAttachShader, FF_PFNGLATTACHSHADERPROC)
- LOAD_OPENGL_FUN(glCreateShader, FF_PFNGLCREATESHADERPROC)
- LOAD_OPENGL_FUN(glDeleteShader, FF_PFNGLDELETESHADERPROC)
- LOAD_OPENGL_FUN(glCompileShader, FF_PFNGLCOMPILESHADERPROC)
- LOAD_OPENGL_FUN(glShaderSource, FF_PFNGLSHADERSOURCEPROC)
- LOAD_OPENGL_FUN(glGetShaderiv, FF_PFNGLGETSHADERIVPROC)
- LOAD_OPENGL_FUN(glGetShaderInfoLog, FF_PFNGLGETSHADERINFOLOGPROC)
- LOAD_OPENGL_FUN(glEnableVertexAttribArray, FF_PFNGLENABLEVERTEXATTRIBARRAYPROC)
- LOAD_OPENGL_FUN(glVertexAttribPointer, FF_PFNGLVERTEXATTRIBPOINTERPROC)
-
- return 0;
-
-#undef LOAD_OPENGL_FUN
-}
-#endif /* CONFIG_SDL2 */
-
-#if defined(__APPLE__)
-static int av_cold opengl_load_procedures(OpenGLContext *opengl)
-{
- FFOpenGLFunctions *procs = &opengl->glprocs;
-
-#if CONFIG_SDL2
- if (!opengl->no_window)
- return opengl_sdl_load_procedures(opengl);
-#endif
-
- procs->glActiveTexture = glActiveTexture;
- procs->glGenBuffers = glGenBuffers;
- procs->glDeleteBuffers = glDeleteBuffers;
- procs->glBufferData = glBufferData;
- procs->glBindBuffer = glBindBuffer;
- procs->glGetAttribLocation = glGetAttribLocation;
- procs->glGetUniformLocation = glGetUniformLocation;
- procs->glUniform1f = glUniform1f;
- procs->glUniform1i = glUniform1i;
- procs->glUniformMatrix4fv = glUniformMatrix4fv;
- procs->glCreateProgram = glCreateProgram;
- procs->glDeleteProgram = glDeleteProgram;
- procs->glUseProgram = glUseProgram;
- procs->glLinkProgram = glLinkProgram;
- procs->glGetProgramiv = glGetProgramiv;
- procs->glGetProgramInfoLog = glGetProgramInfoLog;
- procs->glAttachShader = glAttachShader;
- procs->glCreateShader = glCreateShader;
- procs->glDeleteShader = glDeleteShader;
- procs->glCompileShader = glCompileShader;
- procs->glShaderSource = glShaderSource;
- procs->glGetShaderiv = glGetShaderiv;
- procs->glGetShaderInfoLog = glGetShaderInfoLog;
- procs->glEnableVertexAttribArray = glEnableVertexAttribArray;
- procs->glVertexAttribPointer = (FF_PFNGLVERTEXATTRIBPOINTERPROC) glVertexAttribPointer;
- return 0;
-}
-#else
-static int av_cold opengl_load_procedures(OpenGLContext *opengl)
-{
- FFOpenGLFunctions *procs = &opengl->glprocs;
-
-#if HAVE_GLXGETPROCADDRESS
-#define SelectedGetProcAddress glXGetProcAddress
-#elif HAVE_WGLGETPROCADDRESS
-#define SelectedGetProcAddress wglGetProcAddress
-#endif
-
-#define LOAD_OPENGL_FUN(name, type) \
- procs->name = (type)SelectedGetProcAddress(#name); \
- if (!procs->name) { \
- av_log(opengl, AV_LOG_ERROR, "Cannot load OpenGL function: '%s'\n", #name); \
- return AVERROR(ENOSYS); \
- }
-
-#if CONFIG_SDL2
- if (!opengl->no_window)
- return opengl_sdl_load_procedures(opengl);
-#endif
-
- LOAD_OPENGL_FUN(glActiveTexture, FF_PFNGLACTIVETEXTUREPROC)
- LOAD_OPENGL_FUN(glGenBuffers, FF_PFNGLGENBUFFERSPROC)
- LOAD_OPENGL_FUN(glDeleteBuffers, FF_PFNGLDELETEBUFFERSPROC)
- LOAD_OPENGL_FUN(glBufferData, FF_PFNGLBUFFERDATAPROC)
- LOAD_OPENGL_FUN(glBindBuffer, FF_PFNGLBINDBUFFERPROC)
- LOAD_OPENGL_FUN(glGetAttribLocation, FF_PFNGLGETATTRIBLOCATIONPROC)
- LOAD_OPENGL_FUN(glGetUniformLocation, FF_PFNGLGETUNIFORMLOCATIONPROC)
- LOAD_OPENGL_FUN(glUniform1f, FF_PFNGLUNIFORM1FPROC)
- LOAD_OPENGL_FUN(glUniform1i, FF_PFNGLUNIFORM1IPROC)
- LOAD_OPENGL_FUN(glUniformMatrix4fv, FF_PFNGLUNIFORMMATRIX4FVPROC)
- LOAD_OPENGL_FUN(glCreateProgram, FF_PFNGLCREATEPROGRAMPROC)
- LOAD_OPENGL_FUN(glDeleteProgram, FF_PFNGLDELETEPROGRAMPROC)
- LOAD_OPENGL_FUN(glUseProgram, FF_PFNGLUSEPROGRAMPROC)
- LOAD_OPENGL_FUN(glLinkProgram, FF_PFNGLLINKPROGRAMPROC)
- LOAD_OPENGL_FUN(glGetProgramiv, FF_PFNGLGETPROGRAMIVPROC)
- LOAD_OPENGL_FUN(glGetProgramInfoLog, FF_PFNGLGETPROGRAMINFOLOGPROC)
- LOAD_OPENGL_FUN(glAttachShader, FF_PFNGLATTACHSHADERPROC)
- LOAD_OPENGL_FUN(glCreateShader, FF_PFNGLCREATESHADERPROC)
- LOAD_OPENGL_FUN(glDeleteShader, FF_PFNGLDELETESHADERPROC)
- LOAD_OPENGL_FUN(glCompileShader, FF_PFNGLCOMPILESHADERPROC)
- LOAD_OPENGL_FUN(glShaderSource, FF_PFNGLSHADERSOURCEPROC)
- LOAD_OPENGL_FUN(glGetShaderiv, FF_PFNGLGETSHADERIVPROC)
- LOAD_OPENGL_FUN(glGetShaderInfoLog, FF_PFNGLGETSHADERINFOLOGPROC)
- LOAD_OPENGL_FUN(glEnableVertexAttribArray, FF_PFNGLENABLEVERTEXATTRIBARRAYPROC)
- LOAD_OPENGL_FUN(glVertexAttribPointer, FF_PFNGLVERTEXATTRIBPOINTERPROC)
-
- return 0;
-
-#undef SelectedGetProcAddress
-#undef LOAD_OPENGL_FUN
-}
-#endif
-
-static void opengl_make_identity(float matrix[16])
-{
- memset(matrix, 0, 16 * sizeof(float));
- matrix[0] = matrix[5] = matrix[10] = matrix[15] = 1.0f;
-}
-
-static void opengl_make_ortho(float matrix[16], float left, float right,
- float bottom, float top, float nearZ, float farZ)
-{
- float ral = right + left;
- float rsl = right - left;
- float tab = top + bottom;
- float tsb = top - bottom;
- float fan = farZ + nearZ;
- float fsn = farZ - nearZ;
-
- memset(matrix, 0, 16 * sizeof(float));
- matrix[0] = 2.0f / rsl;
- matrix[5] = 2.0f / tsb;
- matrix[10] = -2.0f / fsn;
- matrix[12] = -ral / rsl;
- matrix[13] = -tab / tsb;
- matrix[14] = -fan / fsn;
- matrix[15] = 1.0f;
-}
-
-static av_cold int opengl_read_limits(AVFormatContext *h)
-{
- OpenGLContext *opengl = h->priv_data;
- static const struct{
- const char *extension;
- int major;
- int minor;
- } required_extensions[] = {
- { "GL_ARB_multitexture", 1, 3 },
- { "GL_ARB_vertex_buffer_object", 1, 5 }, //GLX_ARB_vertex_buffer_object
- { "GL_ARB_vertex_shader", 2, 0 },
- { "GL_ARB_fragment_shader", 2, 0 },
- { "GL_ARB_shader_objects", 2, 0 },
- { NULL, 0, 0 }
- };
- int i, major, minor;
- const char *extensions, *version;
-
- version = glGetString(GL_VERSION);
- extensions = glGetString(GL_EXTENSIONS);
- if (!version || !extensions) {
- av_log(h, AV_LOG_ERROR, "No OpenGL context initialized for the current thread\n");
- return AVERROR(ENOSYS);
- }
-
- av_log(h, AV_LOG_DEBUG, "OpenGL version: %s\n", version);
- if (sscanf(version, "%d.%d", &major, &minor) != 2)
- return AVERROR(ENOSYS);
-
- for (i = 0; required_extensions[i].extension; i++) {
- if (major < required_extensions[i].major &&
- (major == required_extensions[i].major && minor < required_extensions[i].minor) &&
- !strstr(extensions, required_extensions[i].extension)) {
- av_log(h, AV_LOG_ERROR, "Required extension %s is not supported.\n",
- required_extensions[i].extension);
- av_log(h, AV_LOG_DEBUG, "Supported extensions are: %s\n", extensions);
- return AVERROR(ENOSYS);
- }
- }
- glGetIntegerv(GL_MAX_TEXTURE_SIZE, &opengl->max_texture_size);
- glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &opengl->max_viewport_width);
- opengl->non_pow_2_textures = major >= 2 || strstr(extensions, "GL_ARB_texture_non_power_of_two");
-#if defined(GL_ES_VERSION_2_0)
- opengl->unpack_subimage = !!strstr(extensions, "GL_EXT_unpack_subimage");
-#else
- opengl->unpack_subimage = 1;
-#endif
-
- av_log(h, AV_LOG_DEBUG, "Non Power of 2 textures support: %s\n", opengl->non_pow_2_textures ? "Yes" : "No");
- av_log(h, AV_LOG_DEBUG, "Unpack Subimage extension support: %s\n", opengl->unpack_subimage ? "Yes" : "No");
- av_log(h, AV_LOG_DEBUG, "Max texture size: %dx%d\n", opengl->max_texture_size, opengl->max_texture_size);
- av_log(h, AV_LOG_DEBUG, "Max viewport size: %dx%d\n",
- opengl->max_viewport_width, opengl->max_viewport_height);
-
- OPENGL_ERROR_CHECK(opengl);
- return 0;
- fail:
- return AVERROR_EXTERNAL;
-}
-
-static const char* opengl_get_fragment_shader_code(enum AVPixelFormat format)
-{
- int i;
- for (i = 0; i < FF_ARRAY_ELEMS(opengl_format_desc); i++) {
- if (opengl_format_desc[i].fixel_format == format)
- return *opengl_format_desc[i].fragment_shader;
- }
- return NULL;
-}
-
-static int opengl_type_size(GLenum type)
-{
- switch(type) {
- case GL_UNSIGNED_SHORT:
- case FF_GL_UNSIGNED_SHORT_1_5_5_5_REV:
- case GL_UNSIGNED_SHORT_5_6_5:
- return 2;
- case GL_UNSIGNED_BYTE:
- case FF_GL_UNSIGNED_BYTE_3_3_2:
- case FF_GL_UNSIGNED_BYTE_2_3_3_REV:
- default:
- break;
- }
- return 1;
-}
-
-static av_cold void opengl_get_texture_params(OpenGLContext *opengl)
-{
- int i;
- for (i = 0; i < FF_ARRAY_ELEMS(opengl_format_desc); i++) {
- if (opengl_format_desc[i].fixel_format == opengl->pix_fmt) {
- opengl->format = opengl_format_desc[i].format;
- opengl->type = opengl_format_desc[i].type;
- break;
- }
- }
-}
-
-static void opengl_compute_display_area(AVFormatContext *s)
-{
- AVRational sar, dar; /* sample and display aspect ratios */
- OpenGLContext *opengl = s->priv_data;
- AVStream *st = s->streams[0];
- AVCodecParameters *par = st->codecpar;
-
- /* compute overlay width and height from the codec context information */
- sar = st->sample_aspect_ratio.num ? st->sample_aspect_ratio : (AVRational){ 1, 1 };
- dar = av_mul_q(sar, (AVRational){ par->width, par->height });
-
- /* we suppose the screen has a 1/1 sample aspect ratio */
- /* fit in the window */
- if (av_cmp_q(dar, (AVRational){ opengl->window_width, opengl->window_height }) > 0) {
- /* fit in width */
- opengl->picture_width = opengl->window_width;
- opengl->picture_height = av_rescale(opengl->picture_width, dar.den, dar.num);
- } else {
- /* fit in height */
- opengl->picture_height = opengl->window_height;
- opengl->picture_width = av_rescale(opengl->picture_height, dar.num, dar.den);
- }
-}
-
-static av_cold void opengl_get_texture_size(OpenGLContext *opengl, int in_width, int in_height,
- int *out_width, int *out_height)
-{
- if (opengl->non_pow_2_textures) {
- *out_width = in_width;
- *out_height = in_height;
- } else {
- int max = FFMIN(FFMAX(in_width, in_height), opengl->max_texture_size);
- unsigned power_of_2 = 1;
- while (power_of_2 < max)
- power_of_2 *= 2;
- *out_height = power_of_2;
- *out_width = power_of_2;
- av_log(opengl, AV_LOG_DEBUG, "Texture size calculated from %dx%d into %dx%d\n",
- in_width, in_height, *out_width, *out_height);
- }
-}
-
-static av_cold void opengl_fill_color_map(OpenGLContext *opengl)
-{
- const AVPixFmtDescriptor *desc;
- int shift;
- enum AVPixelFormat pix_fmt = opengl->pix_fmt;
-
- /* We need order of components, not exact position, some minor HACKs here */
- if (pix_fmt == AV_PIX_FMT_RGB565 || pix_fmt == AV_PIX_FMT_BGR555 ||
- pix_fmt == AV_PIX_FMT_BGR8 || pix_fmt == AV_PIX_FMT_RGB8)
- pix_fmt = AV_PIX_FMT_RGB24;
- else if (pix_fmt == AV_PIX_FMT_BGR565 || pix_fmt == AV_PIX_FMT_RGB555)
- pix_fmt = AV_PIX_FMT_BGR24;
-
- desc = av_pix_fmt_desc_get(pix_fmt);
- if (!(desc->flags & AV_PIX_FMT_FLAG_RGB))
- return;
-
-#define FILL_COMPONENT(i) { \
- shift = (desc->comp[i].depth - 1) >> 3; \
- opengl->color_map[(i << 2) + (desc->comp[i].offset >> shift)] = 1.0; \
- }
-
- memset(opengl->color_map, 0, sizeof(opengl->color_map));
- FILL_COMPONENT(0);
- FILL_COMPONENT(1);
- FILL_COMPONENT(2);
- if (desc->flags & AV_PIX_FMT_FLAG_ALPHA)
- FILL_COMPONENT(3);
-
-#undef FILL_COMPONENT
-}
-
-static av_cold GLuint opengl_load_shader(OpenGLContext *opengl, GLenum type, const char *source)
-{
- GLuint shader = opengl->glprocs.glCreateShader(type);
- GLint result;
- if (!shader) {
- av_log(opengl, AV_LOG_ERROR, "glCreateShader() failed\n");
- return 0;
- }
- opengl->glprocs.glShaderSource(shader, 1, &source, NULL);
- opengl->glprocs.glCompileShader(shader);
-
- opengl->glprocs.glGetShaderiv(shader, FF_GL_COMPILE_STATUS, &result);
- if (!result) {
- char *log;
- opengl->glprocs.glGetShaderiv(shader, FF_GL_INFO_LOG_LENGTH, &result);
- if (result) {
- if ((log = av_malloc(result))) {
- opengl->glprocs.glGetShaderInfoLog(shader, result, NULL, log);
- av_log(opengl, AV_LOG_ERROR, "Compile error: %s\n", log);
- av_free(log);
- }
- }
- goto fail;
- }
- OPENGL_ERROR_CHECK(opengl);
- return shader;
- fail:
- opengl->glprocs.glDeleteShader(shader);
- return 0;
-}
-
-static av_cold int opengl_compile_shaders(OpenGLContext *opengl, enum AVPixelFormat pix_fmt)
-{
- GLint result;
- const char *fragment_shader_code = opengl_get_fragment_shader_code(pix_fmt);
-
- if (!fragment_shader_code) {
- av_log(opengl, AV_LOG_ERROR, "Provided pixel format '%s' is not supported\n",
- av_get_pix_fmt_name(pix_fmt));
- return AVERROR(EINVAL);
- }
-
- opengl->vertex_shader = opengl_load_shader(opengl, FF_GL_VERTEX_SHADER,
- FF_OPENGL_VERTEX_SHADER);
- if (!opengl->vertex_shader) {
- av_log(opengl, AV_LOG_ERROR, "Vertex shader loading failed.\n");
- goto fail;
- }
- opengl->fragment_shader = opengl_load_shader(opengl, FF_GL_FRAGMENT_SHADER,
- fragment_shader_code);
- if (!opengl->fragment_shader) {
- av_log(opengl, AV_LOG_ERROR, "Fragment shader loading failed.\n");
- goto fail;
- }
-
- opengl->program = opengl->glprocs.glCreateProgram();
- if (!opengl->program)
- goto fail;
-
- opengl->glprocs.glAttachShader(opengl->program, opengl->vertex_shader);
- opengl->glprocs.glAttachShader(opengl->program, opengl->fragment_shader);
- opengl->glprocs.glLinkProgram(opengl->program);
-
- opengl->glprocs.glGetProgramiv(opengl->program, FF_GL_LINK_STATUS, &result);
- if (!result) {
- char *log;
- opengl->glprocs.glGetProgramiv(opengl->program, FF_GL_INFO_LOG_LENGTH, &result);
- if (result) {
- log = av_malloc(result);
- if (!log)
- goto fail;
- opengl->glprocs.glGetProgramInfoLog(opengl->program, result, NULL, log);
- av_log(opengl, AV_LOG_ERROR, "Link error: %s\n", log);
- av_free(log);
- }
- goto fail;
- }
-
- opengl->position_attrib = opengl->glprocs.glGetAttribLocation(opengl->program, "a_position");
- opengl->texture_coords_attrib = opengl->glprocs.glGetAttribLocation(opengl->program, "a_textureCoords");
- opengl->projection_matrix_location = opengl->glprocs.glGetUniformLocation(opengl->program, "u_projectionMatrix");
- opengl->model_view_matrix_location = opengl->glprocs.glGetUniformLocation(opengl->program, "u_modelViewMatrix");
- opengl->color_map_location = opengl->glprocs.glGetUniformLocation(opengl->program, "u_colorMap");
- opengl->texture_location[0] = opengl->glprocs.glGetUniformLocation(opengl->program, "u_texture0");
- opengl->texture_location[1] = opengl->glprocs.glGetUniformLocation(opengl->program, "u_texture1");
- opengl->texture_location[2] = opengl->glprocs.glGetUniformLocation(opengl->program, "u_texture2");
- opengl->texture_location[3] = opengl->glprocs.glGetUniformLocation(opengl->program, "u_texture3");
- opengl->chroma_div_w_location = opengl->glprocs.glGetUniformLocation(opengl->program, "u_chroma_div_w");
- opengl->chroma_div_h_location = opengl->glprocs.glGetUniformLocation(opengl->program, "u_chroma_div_h");
-
- OPENGL_ERROR_CHECK(opengl);
- return 0;
- fail:
- opengl->glprocs.glDeleteShader(opengl->vertex_shader);
- opengl->glprocs.glDeleteShader(opengl->fragment_shader);
- opengl->glprocs.glDeleteProgram(opengl->program);
- opengl->fragment_shader = opengl->vertex_shader = opengl->program = 0;
- return AVERROR_EXTERNAL;
-}
-
-static av_cold int opengl_configure_texture(OpenGLContext *opengl, GLuint texture,
- GLsizei width, GLsizei height)
-{
- if (texture) {
- int new_width, new_height;
- opengl_get_texture_size(opengl, width, height, &new_width, &new_height);
- glBindTexture(GL_TEXTURE_2D, texture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glTexImage2D(GL_TEXTURE_2D, 0, opengl->format, new_width, new_height, 0,
- opengl->format, opengl->type, NULL);
- OPENGL_ERROR_CHECK(NULL);
- }
- return 0;
- fail:
- return AVERROR_EXTERNAL;
-}
-
-static av_cold int opengl_prepare_vertex(AVFormatContext *s)
-{
- OpenGLContext *opengl = s->priv_data;
- int tex_w, tex_h;
-
- if (opengl->window_width > opengl->max_viewport_width || opengl->window_height > opengl->max_viewport_height) {
- opengl->window_width = FFMIN(opengl->window_width, opengl->max_viewport_width);
- opengl->window_height = FFMIN(opengl->window_height, opengl->max_viewport_height);
- av_log(opengl, AV_LOG_WARNING, "Too big viewport requested, limited to %dx%d", opengl->window_width, opengl->window_height);
- }
- glViewport(0, 0, opengl->window_width, opengl->window_height);
- opengl_make_ortho(opengl->projection_matrix,
- - (float)opengl->window_width / 2.0f, (float)opengl->window_width / 2.0f,
- - (float)opengl->window_height / 2.0f, (float)opengl->window_height / 2.0f,
- 1.0f, -1.0f);
- opengl_make_identity(opengl->model_view_matrix);
-
- opengl_compute_display_area(s);
-
- opengl->vertex[0].z = opengl->vertex[1].z = opengl->vertex[2].z = opengl->vertex[3].z = 0.0f;
- opengl->vertex[0].x = opengl->vertex[1].x = - (float)opengl->picture_width / 2.0f;
- opengl->vertex[2].x = opengl->vertex[3].x = (float)opengl->picture_width / 2.0f;
- opengl->vertex[1].y = opengl->vertex[2].y = - (float)opengl->picture_height / 2.0f;
- opengl->vertex[0].y = opengl->vertex[3].y = (float)opengl->picture_height / 2.0f;
-
- opengl_get_texture_size(opengl, opengl->width, opengl->height, &tex_w, &tex_h);
-
- opengl->vertex[0].s0 = 0.0f;
- opengl->vertex[0].t0 = 0.0f;
- opengl->vertex[1].s0 = 0.0f;
- opengl->vertex[1].t0 = (float)opengl->height / (float)tex_h;
- opengl->vertex[2].s0 = (float)opengl->width / (float)tex_w;
- opengl->vertex[2].t0 = (float)opengl->height / (float)tex_h;
- opengl->vertex[3].s0 = (float)opengl->width / (float)tex_w;
- opengl->vertex[3].t0 = 0.0f;
-
- opengl->glprocs.glBindBuffer(FF_GL_ARRAY_BUFFER, opengl->vertex_buffer);
- opengl->glprocs.glBufferData(FF_GL_ARRAY_BUFFER, sizeof(opengl->vertex), opengl->vertex, FF_GL_STATIC_DRAW);
- opengl->glprocs.glBindBuffer(FF_GL_ARRAY_BUFFER, 0);
- OPENGL_ERROR_CHECK(opengl);
- return 0;
- fail:
- return AVERROR_EXTERNAL;
-}
-
-static int opengl_prepare(OpenGLContext *opengl)
-{
- int i;
- opengl->glprocs.glUseProgram(opengl->program);
- opengl->glprocs.glUniformMatrix4fv(opengl->projection_matrix_location, 1, GL_FALSE, opengl->projection_matrix);
- opengl->glprocs.glUniformMatrix4fv(opengl->model_view_matrix_location, 1, GL_FALSE, opengl->model_view_matrix);
- for (i = 0; i < 4; i++)
- if (opengl->texture_location[i] != -1) {
- opengl->glprocs.glActiveTexture(GL_TEXTURE0 + i);
- glBindTexture(GL_TEXTURE_2D, opengl->texture_name[i]);
- opengl->glprocs.glUniform1i(opengl->texture_location[i], i);
- }
- if (opengl->color_map_location != -1)
- opengl->glprocs.glUniformMatrix4fv(opengl->color_map_location, 1, GL_FALSE, opengl->color_map);
- if (opengl->chroma_div_h_location != -1)
- opengl->glprocs.glUniform1f(opengl->chroma_div_h_location, opengl->chroma_div_h);
- if (opengl->chroma_div_w_location != -1)
- opengl->glprocs.glUniform1f(opengl->chroma_div_w_location, opengl->chroma_div_w);
-
- OPENGL_ERROR_CHECK(opengl);
- return 0;
- fail:
- return AVERROR_EXTERNAL;
-}
-
-static int opengl_create_window(AVFormatContext *h)
-{
- OpenGLContext *opengl = h->priv_data;
- int ret;
-
- if (!opengl->no_window) {
-#if CONFIG_SDL2
- if ((ret = opengl_sdl_create_window(h)) < 0) {
- av_log(opengl, AV_LOG_ERROR, "Cannot create default SDL window.\n");
- return ret;
- }
-#else
- av_log(opengl, AV_LOG_ERROR, "FFmpeg is compiled without SDL. Cannot create default window.\n");
- return AVERROR(ENOSYS);
-#endif
- } else {
- AVDeviceRect message;
- message.x = message.y = 0;
- message.width = opengl->window_width;
- message.height = opengl->window_height;
- if ((ret = avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_CREATE_WINDOW_BUFFER,
- &message , sizeof(message))) < 0) {
- av_log(opengl, AV_LOG_ERROR, "Application failed to create window buffer.\n");
- return ret;
- }
- if ((ret = avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER, NULL , 0)) < 0) {
- av_log(opengl, AV_LOG_ERROR, "Application failed to prepare window buffer.\n");
- return ret;
- }
- }
- return 0;
-}
-
-static int opengl_release_window(AVFormatContext *h)
-{
- int ret;
- OpenGLContext *opengl = h->priv_data;
- if (!opengl->no_window) {
-#if CONFIG_SDL2
- SDL_GL_DeleteContext(opengl->glcontext);
- SDL_DestroyWindow(opengl->window);
- SDL_Quit();
-#endif
- } else if ((ret = avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER, NULL , 0)) < 0) {
- av_log(opengl, AV_LOG_ERROR, "Application failed to release window buffer.\n");
- return ret;
- }
- return 0;
-}
-
-static av_cold int opengl_write_trailer(AVFormatContext *h)
-{
- OpenGLContext *opengl = h->priv_data;
-
- if (opengl->no_window &&
- avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER, NULL , 0) < 0)
- av_log(opengl, AV_LOG_ERROR, "Application failed to prepare window buffer.\n");
-
- opengl_deinit_context(opengl);
- opengl_release_window(h);
-
- return 0;
-}
-
-static av_cold int opengl_init_context(OpenGLContext *opengl)
-{
- int i, ret;
- const AVPixFmtDescriptor *desc;
-
- if ((ret = opengl_compile_shaders(opengl, opengl->pix_fmt)) < 0)
- goto fail;
-
- desc = av_pix_fmt_desc_get(opengl->pix_fmt);
- av_assert0(desc->nb_components > 0 && desc->nb_components <= 4);
- glGenTextures(desc->nb_components, opengl->texture_name);
-
- opengl->glprocs.glGenBuffers(2, &opengl->index_buffer);
- if (!opengl->index_buffer || !opengl->vertex_buffer) {
- av_log(opengl, AV_LOG_ERROR, "Buffer generation failed.\n");
- ret = AVERROR_EXTERNAL;
- goto fail;
- }
-
- opengl_configure_texture(opengl, opengl->texture_name[0], opengl->width, opengl->height);
- if (desc->nb_components > 1) {
- int has_alpha = desc->flags & AV_PIX_FMT_FLAG_ALPHA;
- int num_planes = desc->nb_components - (has_alpha ? 1 : 0);
- if (opengl->non_pow_2_textures) {
- opengl->chroma_div_w = 1.0f;
- opengl->chroma_div_h = 1.0f;
- } else {
- opengl->chroma_div_w = 1 << desc->log2_chroma_w;
- opengl->chroma_div_h = 1 << desc->log2_chroma_h;
- }
- for (i = 1; i < num_planes; i++)
- if (opengl->non_pow_2_textures)
- opengl_configure_texture(opengl, opengl->texture_name[i],
- AV_CEIL_RSHIFT(opengl->width, desc->log2_chroma_w),
- AV_CEIL_RSHIFT(opengl->height, desc->log2_chroma_h));
- else
- opengl_configure_texture(opengl, opengl->texture_name[i], opengl->width, opengl->height);
- if (has_alpha)
- opengl_configure_texture(opengl, opengl->texture_name[3], opengl->width, opengl->height);
- }
-
- opengl->glprocs.glBindBuffer(FF_GL_ELEMENT_ARRAY_BUFFER, opengl->index_buffer);
- opengl->glprocs.glBufferData(FF_GL_ELEMENT_ARRAY_BUFFER, sizeof(g_index), g_index, FF_GL_STATIC_DRAW);
- opengl->glprocs.glBindBuffer(FF_GL_ELEMENT_ARRAY_BUFFER, 0);
-
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-
- glClearColor((float)opengl->background[0] / 255.0f, (float)opengl->background[1] / 255.0f,
- (float)opengl->background[2] / 255.0f, 1.0f);
-
- ret = AVERROR_EXTERNAL;
- OPENGL_ERROR_CHECK(opengl);
-
- return 0;
- fail:
- return ret;
-}
-
-static av_cold int opengl_write_header(AVFormatContext *h)
-{
- OpenGLContext *opengl = h->priv_data;
- AVCodecParameters *par = h->streams[0]->codecpar;
- AVStream *st;
- int ret;
-
- if (!opengl->warned) {
- av_log(opengl, AV_LOG_WARNING,
- "The opengl output device is deprecated due to being fundamentally incompatible with libavformat API. "
- "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n"
- "Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -loglevel warning -vf setpts=0 -\n"
- );
- opengl->warned = 1;
- }
-
- if (h->nb_streams != 1 ||
- par->codec_type != AVMEDIA_TYPE_VIDEO ||
- (par->codec_id != AV_CODEC_ID_WRAPPED_AVFRAME && par->codec_id != AV_CODEC_ID_RAWVIDEO)) {
- av_log(opengl, AV_LOG_ERROR, "Only a single raw or wrapped avframe video stream is supported.\n");
- return AVERROR(EINVAL);
- }
- st = h->streams[0];
- opengl->width = st->codecpar->width;
- opengl->height = st->codecpar->height;
- opengl->pix_fmt = st->codecpar->format;
- if (!opengl->window_width)
- opengl->window_width = opengl->width;
- if (!opengl->window_height)
- opengl->window_height = opengl->height;
-
- if (!opengl->window_title && !opengl->no_window)
- opengl->window_title = av_strdup(h->url);
-
- if ((ret = opengl_create_window(h)))
- goto fail;
-
- if ((ret = opengl_read_limits(h)) < 0)
- goto fail;
-
- if (opengl->width > opengl->max_texture_size || opengl->height > opengl->max_texture_size) {
- av_log(opengl, AV_LOG_ERROR, "Too big picture %dx%d, max supported size is %dx%d\n",
- opengl->width, opengl->height, opengl->max_texture_size, opengl->max_texture_size);
- ret = AVERROR(EINVAL);
- goto fail;
- }
-
- if ((ret = opengl_load_procedures(opengl)) < 0)
- goto fail;
-
- opengl_fill_color_map(opengl);
- opengl_get_texture_params(opengl);
-
- if ((ret = opengl_init_context(opengl)) < 0)
- goto fail;
-
- if ((ret = opengl_prepare_vertex(h)) < 0)
- goto fail;
-
- glClear(GL_COLOR_BUFFER_BIT);
-
-#if CONFIG_SDL2
- if (!opengl->no_window)
- SDL_GL_SwapWindow(opengl->window);
-#endif
- if (opengl->no_window &&
- (ret = avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER, NULL , 0)) < 0) {
- av_log(opengl, AV_LOG_ERROR, "Application failed to display window buffer.\n");
- goto fail;
- }
-
- ret = AVERROR_EXTERNAL;
- OPENGL_ERROR_CHECK(opengl);
-
- opengl->inited = 1;
- return 0;
-
- fail:
- opengl_write_trailer(h);
- return ret;
-}
-
-static uint8_t* opengl_get_plane_pointer(OpenGLContext *opengl, AVPacket *pkt, int comp_index,
- const AVPixFmtDescriptor *desc)
-{
- uint8_t *data = pkt->data;
- int wordsize = opengl_type_size(opengl->type);
- int width_chroma = AV_CEIL_RSHIFT(opengl->width, desc->log2_chroma_w);
- int height_chroma = AV_CEIL_RSHIFT(opengl->height, desc->log2_chroma_h);
- int plane = desc->comp[comp_index].plane;
-
- switch(plane) {
- case 0:
- break;
- case 1:
- data += opengl->width * opengl->height * wordsize;
- break;
- case 2:
- data += opengl->width * opengl->height * wordsize;
- data += width_chroma * height_chroma * wordsize;
- break;
- case 3:
- data += opengl->width * opengl->height * wordsize;
- data += 2 * width_chroma * height_chroma * wordsize;
- break;
- default:
- return NULL;
- }
- return data;
-}
-
-#define LOAD_TEXTURE_DATA(comp_index, sub) \
-{ \
- int width = sub ? AV_CEIL_RSHIFT(opengl->width, desc->log2_chroma_w) : opengl->width; \
- int height = sub ? AV_CEIL_RSHIFT(opengl->height, desc->log2_chroma_h): opengl->height; \
- uint8_t *data; \
- int plane = desc->comp[comp_index].plane; \
- \
- glBindTexture(GL_TEXTURE_2D, opengl->texture_name[comp_index]); \
- if (!is_pkt) { \
- GLint length = ((AVFrame *)input)->linesize[plane]; \
- int bytes_per_pixel = opengl_type_size(opengl->type); \
- if (!(desc->flags & AV_PIX_FMT_FLAG_PLANAR)) \
- bytes_per_pixel *= desc->nb_components; \
- data = ((AVFrame *)input)->data[plane]; \
- if (!(length % bytes_per_pixel) && \
- (opengl->unpack_subimage || ((length / bytes_per_pixel) == width))) { \
- length /= bytes_per_pixel; \
- if (length != width) \
- glPixelStorei(FF_GL_UNPACK_ROW_LENGTH, length); \
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, \
- opengl->format, opengl->type, data); \
- if (length != width) \
- glPixelStorei(FF_GL_UNPACK_ROW_LENGTH, 0); \
- } else { \
- int h; \
- for (h = 0; h < height; h++) { \
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, h, width, 1, \
- opengl->format, opengl->type, data); \
- data += length; \
- } \
- } \
- } else { \
- data = opengl_get_plane_pointer(opengl, input, comp_index, desc); \
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, \
- opengl->format, opengl->type, data); \
- } \
-}
-
-static int opengl_draw(AVFormatContext *h, void *input, int repaint, int is_pkt)
-{
- OpenGLContext *opengl = h->priv_data;
- enum AVPixelFormat pix_fmt = h->streams[0]->codecpar->format;
- const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
- int ret;
-
-#if CONFIG_SDL2
- /* At this point, opengl->glcontext implies opengl->glcontext */
- if (opengl->glcontext)
- SDL_GL_MakeCurrent(opengl->window, opengl->glcontext);
-
- if (!opengl->no_window && (ret = opengl_sdl_process_events(h)) < 0)
- goto fail;
-#endif
- if (opengl->no_window &&
- (ret = avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER, NULL , 0)) < 0) {
- av_log(opengl, AV_LOG_ERROR, "Application failed to prepare window buffer.\n");
- goto fail;
- }
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- if (!repaint) {
- if (is_pkt)
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- LOAD_TEXTURE_DATA(0, 0)
- if (desc->flags & AV_PIX_FMT_FLAG_PLANAR) {
- LOAD_TEXTURE_DATA(1, 1)
- LOAD_TEXTURE_DATA(2, 1)
- if (desc->flags & AV_PIX_FMT_FLAG_ALPHA)
- LOAD_TEXTURE_DATA(3, 0)
- }
- }
- ret = AVERROR_EXTERNAL;
- OPENGL_ERROR_CHECK(opengl);
-
- if ((ret = opengl_prepare(opengl)) < 0)
- goto fail;
-
- opengl->glprocs.glBindBuffer(FF_GL_ARRAY_BUFFER, opengl->vertex_buffer);
- opengl->glprocs.glBindBuffer(FF_GL_ELEMENT_ARRAY_BUFFER, opengl->index_buffer);
- opengl->glprocs.glVertexAttribPointer(opengl->position_attrib, 3, GL_FLOAT, GL_FALSE, sizeof(OpenGLVertexInfo), 0);
- opengl->glprocs.glEnableVertexAttribArray(opengl->position_attrib);
- opengl->glprocs.glVertexAttribPointer(opengl->texture_coords_attrib, 2, GL_FLOAT, GL_FALSE, sizeof(OpenGLVertexInfo), 12);
- opengl->glprocs.glEnableVertexAttribArray(opengl->texture_coords_attrib);
-
- glDrawElements(GL_TRIANGLES, FF_ARRAY_ELEMS(g_index), GL_UNSIGNED_SHORT, 0);
-
- ret = AVERROR_EXTERNAL;
- OPENGL_ERROR_CHECK(opengl);
-
-#if CONFIG_SDL2
- if (!opengl->no_window)
- SDL_GL_SwapWindow(opengl->window);
-#endif
- if (opengl->no_window &&
- (ret = avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER, NULL , 0)) < 0) {
- av_log(opengl, AV_LOG_ERROR, "Application failed to display window buffer.\n");
- goto fail;
- }
-
- return 0;
- fail:
- return ret;
-}
-
-static int opengl_write_packet(AVFormatContext *h, AVPacket *pkt)
-{
- AVCodecParameters *par = h->streams[0]->codecpar;
- if (par->codec_id == AV_CODEC_ID_WRAPPED_AVFRAME) {
- AVFrame *frame = (AVFrame *)pkt->data;
- return opengl_draw(h, frame, 0, 0);
- } else {
- return opengl_draw(h, pkt, 0, 1);
- }
-}
-
-static int opengl_write_frame(AVFormatContext *h, int stream_index,
- AVFrame **frame, unsigned flags)
-{
- if ((flags & AV_WRITE_UNCODED_FRAME_QUERY))
- return 0;
- return opengl_draw(h, *frame, 0, 0);
-}
-
-#define OFFSET(x) offsetof(OpenGLContext, x)
-#define ENC AV_OPT_FLAG_ENCODING_PARAM
-static const AVOption options[] = {
- { "background", "set background color", OFFSET(background), AV_OPT_TYPE_COLOR, {.str = "black"}, 0, 0, ENC },
- { "no_window", "disable default window", OFFSET(no_window), AV_OPT_TYPE_INT, {.i64 = 0}, INT_MIN, INT_MAX, ENC },
- { "window_title", "set window title", OFFSET(window_title), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, ENC },
- { "window_size", "set window size", OFFSET(window_width), AV_OPT_TYPE_IMAGE_SIZE, {.str = NULL}, 0, 0, ENC },
- { NULL }
-};
-
-static const AVClass opengl_class = {
- .class_name = "opengl outdev",
- .item_name = av_default_item_name,
- .option = options,
- .version = LIBAVUTIL_VERSION_INT,
- .category = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT,
-};
-
-const FFOutputFormat ff_opengl_muxer = {
- .p.name = "opengl",
- .p.long_name = NULL_IF_CONFIG_SMALL("OpenGL output"),
- .p.audio_codec = AV_CODEC_ID_NONE,
- .p.video_codec = AV_CODEC_ID_WRAPPED_AVFRAME,
- .p.flags = AVFMT_NOFILE | AVFMT_VARIABLE_FPS | AVFMT_NOTIMESTAMPS,
- .p.priv_class = &opengl_class,
- .priv_data_size = sizeof(OpenGLContext),
- .write_header = opengl_write_header,
- .write_packet = opengl_write_packet,
- .write_uncoded_frame = opengl_write_frame,
- .write_trailer = opengl_write_trailer,
- .control_message = opengl_control_message,
-};
diff --git a/libavdevice/opengl_enc_shaders.h b/libavdevice/opengl_enc_shaders.h
deleted file mode 100644
index 67ee0ae7b4..0000000000
--- a/libavdevice/opengl_enc_shaders.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (c) 2014 Lukasz Marek
- *
- * 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 AVDEVICE_OPENGL_ENC_SHADERS_H
-#define AVDEVICE_OPENGL_ENC_SHADERS_H
-
-#include "libavutil/pixfmt.h"
-
-static const char * const FF_OPENGL_VERTEX_SHADER =
- "uniform mat4 u_projectionMatrix;"
- "uniform mat4 u_modelViewMatrix;"
-
- "attribute vec4 a_position;"
- "attribute vec2 a_textureCoords;"
-
- "varying vec2 texture_coordinate;"
-
- "void main()"
- "{"
- "gl_Position = u_projectionMatrix * (a_position * u_modelViewMatrix);"
- "texture_coordinate = a_textureCoords;"
- "}";
-
-/**
- * Fragment shader for packet RGBA formats.
- */
-static const char * const FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET =
-#if defined(GL_ES_VERSION_2_0)
- "precision mediump float;"
-#endif
- "uniform sampler2D u_texture0;"
- "uniform mat4 u_colorMap;"
-
- "varying vec2 texture_coordinate;"
-
- "void main()"
- "{"
- "gl_FragColor = texture2D(u_texture0, texture_coordinate) * u_colorMap;"
- "}";
-
-/**
- * Fragment shader for packet RGB formats.
- */
-static const char * const FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET =
-#if defined(GL_ES_VERSION_2_0)
- "precision mediump float;"
-#endif
- "uniform sampler2D u_texture0;"
- "uniform mat4 u_colorMap;"
-
- "varying vec2 texture_coordinate;"
-
- "void main()"
- "{"
- "gl_FragColor = vec4((texture2D(u_texture0, texture_coordinate) * u_colorMap).rgb, 1.0);"
- "}";
-
-/**
- * Fragment shader for planar RGBA formats.
- */
-static const char * const FF_OPENGL_FRAGMENT_SHADER_RGBA_PLANAR =
-#if defined(GL_ES_VERSION_2_0)
- "precision mediump float;"
-#endif
- "uniform sampler2D u_texture0;"
- "uniform sampler2D u_texture1;"
- "uniform sampler2D u_texture2;"
- "uniform sampler2D u_texture3;"
-
- "varying vec2 texture_coordinate;"
-
- "void main()"
- "{"
- "gl_FragColor = vec4(texture2D(u_texture0, texture_coordinate).r,"
- "texture2D(u_texture1, texture_coordinate).r,"
- "texture2D(u_texture2, texture_coordinate).r,"
- "texture2D(u_texture3, texture_coordinate).r);"
- "}";
-
-/**
- * Fragment shader for planar RGB formats.
- */
-static const char * const FF_OPENGL_FRAGMENT_SHADER_RGB_PLANAR =
-#if defined(GL_ES_VERSION_2_0)
- "precision mediump float;"
-#endif
- "uniform sampler2D u_texture0;"
- "uniform sampler2D u_texture1;"
- "uniform sampler2D u_texture2;"
-
- "varying vec2 texture_coordinate;"
-
- "void main()"
- "{"
- "gl_FragColor = vec4(texture2D(u_texture0, texture_coordinate).r,"
- "texture2D(u_texture1, texture_coordinate).r,"
- "texture2D(u_texture2, texture_coordinate).r,"
- "1.0);"
- "}";
-
-/**
- * Fragment shader for planar YUV formats.
- */
-static const char * const FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR =
-#if defined(GL_ES_VERSION_2_0)
- "precision mediump float;"
-#endif
- "uniform sampler2D u_texture0;"
- "uniform sampler2D u_texture1;"
- "uniform sampler2D u_texture2;"
- "uniform float u_chroma_div_w;"
- "uniform float u_chroma_div_h;"
-
- "varying vec2 texture_coordinate;"
-
- "void main()"
- "{"
- "vec3 yuv;"
-
- "yuv.r = texture2D(u_texture0, texture_coordinate).r - 0.0625;"
- "yuv.g = texture2D(u_texture1, vec2(texture_coordinate.x / u_chroma_div_w, texture_coordinate.y / u_chroma_div_h)).r - 0.5;"
- "yuv.b = texture2D(u_texture2, vec2(texture_coordinate.x / u_chroma_div_w, texture_coordinate.y / u_chroma_div_h)).r - 0.5;"
-
- "gl_FragColor = clamp(vec4(mat3(1.1643, 1.16430, 1.1643,"
- "0.0, -0.39173, 2.0170,"
- "1.5958, -0.81290, 0.0) * yuv, 1.0), 0.0, 1.0);"
-
- "}";
-
-/**
- * Fragment shader for planar YUVA formats.
- */
-static const char * const FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR =
-#if defined(GL_ES_VERSION_2_0)
- "precision mediump float;"
-#endif
- "uniform sampler2D u_texture0;"
- "uniform sampler2D u_texture1;"
- "uniform sampler2D u_texture2;"
- "uniform sampler2D u_texture3;"
- "uniform float u_chroma_div_w;"
- "uniform float u_chroma_div_h;"
-
- "varying vec2 texture_coordinate;"
-
- "void main()"
- "{"
- "vec3 yuv;"
-
- "yuv.r = texture2D(u_texture0, texture_coordinate).r - 0.0625;"
- "yuv.g = texture2D(u_texture1, vec2(texture_coordinate.x / u_chroma_div_w, texture_coordinate.y / u_chroma_div_h)).r - 0.5;"
- "yuv.b = texture2D(u_texture2, vec2(texture_coordinate.x / u_chroma_div_w, texture_coordinate.y / u_chroma_div_h)).r - 0.5;"
-
- "gl_FragColor = clamp(vec4(mat3(1.1643, 1.16430, 1.1643,"
- "0.0, -0.39173, 2.0170,"
- "1.5958, -0.81290, 0.0) * yuv, texture2D(u_texture3, texture_coordinate).r), 0.0, 1.0);"
- "}";
-
-static const char * const FF_OPENGL_FRAGMENT_SHADER_GRAY =
-#if defined(GL_ES_VERSION_2_0)
- "precision mediump float;"
-#endif
- "uniform sampler2D u_texture0;"
- "varying vec2 texture_coordinate;"
- "void main()"
- "{"
- "float c = texture2D(u_texture0, texture_coordinate).r;"
- "gl_FragColor = vec4(c, c, c, 1.0);"
- "}";
-
-#endif /* AVDEVICE_OPENGL_ENC_SHADERS_H */
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
index b7dbe28b4d..bbe7d8344c 100644
--- a/libavdevice/version_major.h
+++ b/libavdevice/version_major.h
@@ -33,8 +33,6 @@
* the public API and may change, break or disappear at any time.
*/
-// reminder to remove the opengl device on next major bump
-#define FF_API_OPENGL_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
// reminder to remove the sdl2 device on next major bump
#define FF_API_SDL2_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
#define FF_API_ALSA_CHANNELS (LIBAVDEVICE_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 13/30] avdevice: remove deprecated FF_API_SDL2_DEVICE
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (11 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 12/30] avdevice: remove deprecated FF_API_OPENGL_DEVICE James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 14/30] avdevice/version_major: postpone some deprecations until the next bump James Almer
` (21 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-02-28.
Signed-off-by: James Almer <jamrial@gmail.com>
---
configure | 5 -
libavdevice/Makefile | 1 -
libavdevice/alldevices.c | 1 -
libavdevice/sdl2.c | 377 ------------------------------------
libavdevice/version_major.h | 2 -
5 files changed, 386 deletions(-)
delete mode 100644 libavdevice/sdl2.c
diff --git a/configure b/configure
index 9a003aa453..9247face79 100755
--- a/configure
+++ b/configure
@@ -3764,7 +3764,6 @@ oss_indev_deps_any="sys_soundcard_h"
oss_outdev_deps_any="sys_soundcard_h"
pulse_indev_deps="libpulse"
pulse_outdev_deps="libpulse"
-sdl2_outdev_deps="sdl2"
sndio_indev_deps="sndio"
sndio_outdev_deps="sndio"
v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
@@ -7859,10 +7858,6 @@ enabled zoompan_filter && prepend avfilter_deps "swscale"
enabled lavfi_indev && prepend avdevice_deps "avfilter"
-#FIXME
-enabled_any sdl2_outdev && enabled sdl2 &&
- add_cflags $(filter_out '-Dmain=SDL_main' $sdl2_cflags)
-
enabled opus_decoder && prepend avcodec_deps "swresample"
# reorder the items at var $1 to align with the items order at var $2 .
diff --git a/libavdevice/Makefile b/libavdevice/Makefile
index d09bfb95f9..a226368d16 100644
--- a/libavdevice/Makefile
+++ b/libavdevice/Makefile
@@ -40,7 +40,6 @@ OBJS-$(CONFIG_PULSE_INDEV) += pulse_audio_dec.o \
pulse_audio_common.o timefilter.o
OBJS-$(CONFIG_PULSE_OUTDEV) += pulse_audio_enc.o \
pulse_audio_common.o
-OBJS-$(CONFIG_SDL2_OUTDEV) += sdl2.o
OBJS-$(CONFIG_SNDIO_INDEV) += sndio_dec.o sndio.o
OBJS-$(CONFIG_SNDIO_OUTDEV) += sndio_enc.o sndio.o
OBJS-$(CONFIG_V4L2_INDEV) += v4l2.o v4l2-common.o timefilter.o
diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c
index c2e525b7b9..573595f416 100644
--- a/libavdevice/alldevices.c
+++ b/libavdevice/alldevices.c
@@ -48,7 +48,6 @@ extern const FFInputFormat ff_oss_demuxer;
extern const FFOutputFormat ff_oss_muxer;
extern const FFInputFormat ff_pulse_demuxer;
extern const FFOutputFormat ff_pulse_muxer;
-extern const FFOutputFormat ff_sdl2_muxer;
extern const FFInputFormat ff_sndio_demuxer;
extern const FFOutputFormat ff_sndio_muxer;
extern const FFInputFormat ff_v4l2_demuxer;
diff --git a/libavdevice/sdl2.c b/libavdevice/sdl2.c
deleted file mode 100644
index 491c8dafe8..0000000000
--- a/libavdevice/sdl2.c
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * Copyright (c) 2016 Josh de Kock
- *
- * 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
- */
-
-/**
- * @file
- * libSDL2 output device
- */
-
-#include <SDL.h>
-#include <SDL_thread.h>
-
-#include "libavutil/imgutils.h"
-#include "libavutil/mem.h"
-#include "libavutil/opt.h"
-#include "libavutil/pixdesc.h"
-#include "libavformat/mux.h"
-
-typedef struct {
- AVClass *class;
- SDL_Window *window;
- SDL_Renderer *renderer;
- char *window_title;
- int window_width, window_height; /**< size of the window */
- int window_x, window_y; /**< position of the window */
- int window_fullscreen;
- int window_borderless;
- int enable_quit_action;
-
- SDL_Texture *texture;
- int texture_fmt;
- SDL_Rect texture_rect;
-
- int inited;
- int warned;
-} SDLContext;
-
-static const struct sdl_texture_format_entry {
- enum AVPixelFormat format; int texture_fmt;
-} sdl_texture_format_map[] = {
- /*
- * Not implemented in FFmpeg, but leaving here for completeness.
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_ARGB4444 },
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_RGBA4444 },
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_ABGR4444 },
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_BGRA4444 },
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_ARGB1555 },
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_RGBA5551 },
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_ABGR1555 },
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_BGRA5551 },
- * { AV_PIX_FMT_NONE, SDL_PIXELFORMAT_ARGB2101010 },
- */
- { AV_PIX_FMT_RGB8, SDL_PIXELFORMAT_RGB332 },
- { AV_PIX_FMT_RGB444, SDL_PIXELFORMAT_RGB444 },
- { AV_PIX_FMT_RGB555, SDL_PIXELFORMAT_RGB555 },
- { AV_PIX_FMT_BGR555, SDL_PIXELFORMAT_BGR555 },
- { AV_PIX_FMT_RGB565, SDL_PIXELFORMAT_RGB565 },
- { AV_PIX_FMT_BGR565, SDL_PIXELFORMAT_BGR565 },
- { AV_PIX_FMT_RGB24, SDL_PIXELFORMAT_RGB24 },
- { AV_PIX_FMT_BGR24, SDL_PIXELFORMAT_BGR24 },
- { AV_PIX_FMT_0RGB32, SDL_PIXELFORMAT_RGB888 },
- { AV_PIX_FMT_0BGR32, SDL_PIXELFORMAT_BGR888 },
-#if HAVE_BIGENDIAN
- { AV_PIX_FMT_RGB0, SDL_PIXELFORMAT_RGBX8888 },
- { AV_PIX_FMT_BGR0, SDL_PIXELFORMAT_BGRX8888 },
-#else
- { AV_PIX_FMT_0BGR, SDL_PIXELFORMAT_RGBX8888 },
- { AV_PIX_FMT_0RGB, SDL_PIXELFORMAT_BGRX8888 },
-#endif
- { AV_PIX_FMT_RGB32, SDL_PIXELFORMAT_ARGB8888 },
- { AV_PIX_FMT_RGB32_1, SDL_PIXELFORMAT_RGBA8888 },
- { AV_PIX_FMT_BGR32, SDL_PIXELFORMAT_ABGR8888 },
- { AV_PIX_FMT_BGR32_1, SDL_PIXELFORMAT_BGRA8888 },
- { AV_PIX_FMT_YUV420P, SDL_PIXELFORMAT_IYUV },
- { AV_PIX_FMT_YUYV422, SDL_PIXELFORMAT_YUY2 },
- { AV_PIX_FMT_UYVY422, SDL_PIXELFORMAT_UYVY },
- { AV_PIX_FMT_NONE, 0 },
-};
-
-static void compute_texture_rect(AVFormatContext *s)
-{
- AVRational sar, dar; /* sample and display aspect ratios */
- SDLContext *sdl = s->priv_data;
- AVStream *st = s->streams[0];
- AVCodecParameters *codecpar = st->codecpar;
- SDL_Rect *texture_rect = &sdl->texture_rect;
-
- /* compute texture width and height from the codec context information */
- sar = st->sample_aspect_ratio.num ? st->sample_aspect_ratio : (AVRational){ 1, 1 };
- dar = av_mul_q(sar, (AVRational){ codecpar->width, codecpar->height });
-
- /* we suppose the screen has a 1/1 sample aspect ratio */
- if (sdl->window_width && sdl->window_height) {
- /* fit in the window */
- if (av_cmp_q(dar, (AVRational){ sdl->window_width, sdl->window_height }) > 0) {
- /* fit in width */
- texture_rect->w = sdl->window_width;
- texture_rect->h = av_rescale(texture_rect->w, dar.den, dar.num);
- } else {
- /* fit in height */
- texture_rect->h = sdl->window_height;
- texture_rect->w = av_rescale(texture_rect->h, dar.num, dar.den);
- }
- } else {
- if (sar.num > sar.den) {
- texture_rect->w = codecpar->width;
- texture_rect->h = av_rescale(texture_rect->w, dar.den, dar.num);
- } else {
- texture_rect->h = codecpar->height;
- texture_rect->w = av_rescale(texture_rect->h, dar.num, dar.den);
- }
- sdl->window_width = texture_rect->w;
- sdl->window_height = texture_rect->h;
- }
-
- texture_rect->x = (sdl->window_width - texture_rect->w) / 2;
- texture_rect->y = (sdl->window_height - texture_rect->h) / 2;
-}
-
-static int sdl2_write_trailer(AVFormatContext *s)
-{
- SDLContext *sdl = s->priv_data;
-
- if (sdl->texture)
- SDL_DestroyTexture(sdl->texture);
- sdl->texture = NULL;
-
- if (sdl->renderer)
- SDL_DestroyRenderer(sdl->renderer);
- sdl->renderer = NULL;
-
- if (sdl->window)
- SDL_DestroyWindow(sdl->window);
- sdl->window = NULL;
-
- if (!sdl->inited)
- SDL_Quit();
-
- return 0;
-}
-
-static int sdl2_write_header(AVFormatContext *s)
-{
- SDLContext *sdl = s->priv_data;
- AVStream *st = s->streams[0];
- AVCodecParameters *codecpar = st->codecpar;
- int i, ret = 0;
- int flags = 0;
-
- if (!sdl->warned) {
- av_log(sdl, AV_LOG_WARNING,
- "The sdl output device is deprecated due to being fundamentally incompatible with libavformat API. "
- "For monitoring purposes in ffmpeg you can output to a file or use pipes and a video player.\n"
- "Example: ffmpeg -i INPUT -f nut -c:v rawvideo - | ffplay -loglevel warning -vf setpts=0 -\n"
- );
- sdl->warned = 1;
- }
-
- if (!sdl->window_title)
- sdl->window_title = av_strdup(s->url);
-
- if (SDL_WasInit(SDL_INIT_VIDEO)) {
- av_log(s, AV_LOG_WARNING,
- "SDL video subsystem was already inited, you could have multiple SDL outputs. This may cause unknown behaviour.\n");
- sdl->inited = 1;
- }
-
- if ( s->nb_streams > 1
- || codecpar->codec_type != AVMEDIA_TYPE_VIDEO
- || codecpar->codec_id != AV_CODEC_ID_RAWVIDEO) {
- av_log(s, AV_LOG_ERROR, "Only supports one rawvideo stream\n");
- goto fail;
- }
-
- for (i = 0; sdl_texture_format_map[i].format != AV_PIX_FMT_NONE; i++) {
- if (sdl_texture_format_map[i].format == codecpar->format) {
- sdl->texture_fmt = sdl_texture_format_map[i].texture_fmt;
- break;
- }
- }
-
- if (!sdl->texture_fmt) {
- av_log(s, AV_LOG_ERROR,
- "Unsupported pixel format '%s'.\n",
- av_get_pix_fmt_name(codecpar->format));
- goto fail;
- }
-
- /* resize texture to width and height from the codec context information */
- flags = SDL_WINDOW_HIDDEN |
- (sdl->window_fullscreen ? SDL_WINDOW_FULLSCREEN : 0) |
- (sdl->window_borderless ? SDL_WINDOW_BORDERLESS : SDL_WINDOW_RESIZABLE);
-
- /* initialization */
- if (!sdl->inited){
- if (SDL_Init(SDL_INIT_VIDEO) != 0) {
- av_log(s, AV_LOG_ERROR, "Unable to initialize SDL: %s\n", SDL_GetError());
- goto fail;
- }
- }
-
- compute_texture_rect(s);
-
- if (SDL_CreateWindowAndRenderer(sdl->window_width, sdl->window_height,
- flags, &sdl->window, &sdl->renderer) != 0){
- av_log(sdl, AV_LOG_ERROR, "Couldn't create window and renderer: %s\n", SDL_GetError());
- goto fail;
- }
-
- SDL_SetWindowTitle(sdl->window, sdl->window_title);
- SDL_SetWindowPosition(sdl->window, sdl->window_x, sdl->window_y);
- SDL_ShowWindow(sdl->window);
-
- sdl->texture = SDL_CreateTexture(sdl->renderer, sdl->texture_fmt, SDL_TEXTUREACCESS_STREAMING,
- codecpar->width, codecpar->height);
-
- if (!sdl->texture) {
- av_log(sdl, AV_LOG_ERROR, "Unable to set create mode: %s\n", SDL_GetError());
- goto fail;
- }
-
- av_log(s, AV_LOG_VERBOSE, "w:%d h:%d fmt:%s -> w:%d h:%d\n",
- codecpar->width, codecpar->height, av_get_pix_fmt_name(codecpar->format),
- sdl->window_width, sdl->window_height);
-
- sdl->inited = 1;
-
- return 0;
-fail:
- sdl2_write_trailer(s);
- return ret;
-}
-
-static int sdl2_write_packet(AVFormatContext *s, AVPacket *pkt)
-{
- int ret, quit = 0;
- SDLContext *sdl = s->priv_data;
- AVCodecParameters *codecpar = s->streams[0]->codecpar;
- uint8_t *data[4];
- int linesize[4];
-
- SDL_Event event;
- if (SDL_PollEvent(&event)){
- switch (event.type) {
- case SDL_KEYDOWN:
- switch (event.key.keysym.sym) {
- case SDLK_ESCAPE:
- case SDLK_q:
- quit = 1;
- break;
- default:
- break;
- }
- break;
- case SDL_QUIT:
- quit = 1;
- break;
- case SDL_WINDOWEVENT:
- switch(event.window.event){
- case SDL_WINDOWEVENT_RESIZED:
- case SDL_WINDOWEVENT_SIZE_CHANGED:
- sdl->window_width = event.window.data1;
- sdl->window_height = event.window.data2;
- compute_texture_rect(s);
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- }
-
- if (quit && sdl->enable_quit_action) {
- sdl2_write_trailer(s);
- return AVERROR(EIO);
- }
-
- av_image_fill_arrays(data, linesize, pkt->data, codecpar->format, codecpar->width, codecpar->height, 1);
- switch (sdl->texture_fmt) {
- /* case SDL_PIXELFORMAT_ARGB4444:
- * case SDL_PIXELFORMAT_RGBA4444:
- * case SDL_PIXELFORMAT_ABGR4444:
- * case SDL_PIXELFORMAT_BGRA4444:
- * case SDL_PIXELFORMAT_ARGB1555:
- * case SDL_PIXELFORMAT_RGBA5551:
- * case SDL_PIXELFORMAT_ABGR1555:
- * case SDL_PIXELFORMAT_BGRA5551:
- * case SDL_PIXELFORMAT_ARGB2101010:
- */
- case SDL_PIXELFORMAT_IYUV:
- case SDL_PIXELFORMAT_YUY2:
- case SDL_PIXELFORMAT_UYVY:
- ret = SDL_UpdateYUVTexture(sdl->texture, NULL,
- data[0], linesize[0],
- data[1], linesize[1],
- data[2], linesize[2]);
- break;
- case SDL_PIXELFORMAT_RGB332:
- case SDL_PIXELFORMAT_RGB444:
- case SDL_PIXELFORMAT_RGB555:
- case SDL_PIXELFORMAT_BGR555:
- case SDL_PIXELFORMAT_RGB565:
- case SDL_PIXELFORMAT_BGR565:
- case SDL_PIXELFORMAT_RGB24:
- case SDL_PIXELFORMAT_BGR24:
- case SDL_PIXELFORMAT_RGB888:
- case SDL_PIXELFORMAT_RGBX8888:
- case SDL_PIXELFORMAT_BGR888:
- case SDL_PIXELFORMAT_BGRX8888:
- case SDL_PIXELFORMAT_ARGB8888:
- case SDL_PIXELFORMAT_RGBA8888:
- case SDL_PIXELFORMAT_ABGR8888:
- case SDL_PIXELFORMAT_BGRA8888:
- ret = SDL_UpdateTexture(sdl->texture, NULL, data[0], linesize[0]);
- break;
- default:
- av_log(NULL, AV_LOG_FATAL, "Unsupported pixel format\n");
- ret = -1;
- break;
- }
- SDL_RenderClear(sdl->renderer);
- SDL_RenderCopy(sdl->renderer, sdl->texture, NULL, &sdl->texture_rect);
- SDL_RenderPresent(sdl->renderer);
- return ret;
-}
-
-#define OFFSET(x) offsetof(SDLContext,x)
-
-static const AVOption options[] = {
- { "window_title", "set SDL window title", OFFSET(window_title), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, AV_OPT_FLAG_ENCODING_PARAM },
- { "window_size", "set SDL window forced size", OFFSET(window_width), AV_OPT_TYPE_IMAGE_SIZE, { .str = NULL }, 0, 0, AV_OPT_FLAG_ENCODING_PARAM },
- { "window_x", "set SDL window x position", OFFSET(window_x), AV_OPT_TYPE_INT, { .i64 = SDL_WINDOWPOS_CENTERED }, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
- { "window_y", "set SDL window y position", OFFSET(window_y), AV_OPT_TYPE_INT, { .i64 = SDL_WINDOWPOS_CENTERED }, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
- { "window_fullscreen", "set SDL window fullscreen", OFFSET(window_fullscreen), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, AV_OPT_FLAG_ENCODING_PARAM },
- { "window_borderless", "set SDL window border off", OFFSET(window_borderless), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, AV_OPT_FLAG_ENCODING_PARAM },
- { "window_enable_quit", "set if quit action is available", OFFSET(enable_quit_action), AV_OPT_TYPE_INT, {.i64=1}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM },
- { NULL },
-};
-
-static const AVClass sdl2_class = {
- .class_name = "sdl2 outdev",
- .item_name = av_default_item_name,
- .option = options,
- .version = LIBAVUTIL_VERSION_INT,
- .category = AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT,
-};
-
-const FFOutputFormat ff_sdl2_muxer = {
- .p.name = "sdl,sdl2",
- .p.long_name = NULL_IF_CONFIG_SMALL("SDL2 output device"),
- .priv_data_size = sizeof(SDLContext),
- .p.audio_codec = AV_CODEC_ID_NONE,
- .p.video_codec = AV_CODEC_ID_RAWVIDEO,
- .write_header = sdl2_write_header,
- .write_packet = sdl2_write_packet,
- .write_trailer = sdl2_write_trailer,
- .p.flags = AVFMT_NOFILE | AVFMT_VARIABLE_FPS | AVFMT_NOTIMESTAMPS,
- .p.priv_class = &sdl2_class,
-};
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
index bbe7d8344c..6e7dd62027 100644
--- a/libavdevice/version_major.h
+++ b/libavdevice/version_major.h
@@ -33,8 +33,6 @@
* the public API and may change, break or disappear at any time.
*/
-// reminder to remove the sdl2 device on next major bump
-#define FF_API_SDL2_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62)
#define FF_API_ALSA_CHANNELS (LIBAVDEVICE_VERSION_MAJOR < 62)
#endif /* AVDEVICE_VERSION_MAJOR_H */
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 14/30] avdevice/version_major: postpone some deprecations until the next bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (12 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 13/30] avdevice: remove deprecated FF_API_SDL2_DEVICE James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 15/30] avformat: remove deprecated FF_API_LAVF_SHORTEST James Almer
` (20 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
They are too recent.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavdevice/version_major.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
index 6e7dd62027..470e5626be 100644
--- a/libavdevice/version_major.h
+++ b/libavdevice/version_major.h
@@ -33,6 +33,6 @@
* the public API and may change, break or disappear at any time.
*/
-#define FF_API_ALSA_CHANNELS (LIBAVDEVICE_VERSION_MAJOR < 62)
+#define FF_API_ALSA_CHANNELS (LIBAVDEVICE_VERSION_MAJOR < 63)
#endif /* AVDEVICE_VERSION_MAJOR_H */
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 15/30] avformat: remove deprecated FF_API_LAVF_SHORTEST
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (13 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 14/30] avdevice/version_major: postpone some deprecations until the next bump James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 16/30] avformat: remove deprecated FF_API_ALLOW_FLUSH James Almer
` (19 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-09-18.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/avformat.h | 3 ---
libavformat/avformat_internal.h | 7 ------
libavformat/mux.c | 38 ---------------------------------
libavformat/options.c | 4 ----
libavformat/options_table.h | 3 ---
libavformat/version_major.h | 1 -
6 files changed, 56 deletions(-)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 6abdb6d480..a3bb1f1ee3 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1470,9 +1470,6 @@ typedef struct AVFormatContext {
#define AVFMT_FLAG_BITEXACT 0x0400
#define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down)
#define AVFMT_FLAG_FAST_SEEK 0x80000 ///< Enable fast, but inaccurate seeks for some formats
-#if FF_API_LAVF_SHORTEST
-#define AVFMT_FLAG_SHORTEST 0x100000 ///< Stop muxing when the shortest stream stops.
-#endif
#define AVFMT_FLAG_AUTO_BSF 0x200000 ///< Add bitstream filters as requested by the muxer
/**
diff --git a/libavformat/avformat_internal.h b/libavformat/avformat_internal.h
index b114dba659..157252fa90 100644
--- a/libavformat/avformat_internal.h
+++ b/libavformat/avformat_internal.h
@@ -95,13 +95,6 @@ typedef struct FormatContextInternal {
int chapter_ids_monotonic;
};
};
-
-#if FF_API_LAVF_SHORTEST
- /**
- * Timestamp of the end of the shortest stream.
- */
- int64_t shortest_end;
-#endif
} FormatContextInternal;
static av_always_inline FormatContextInternal *ff_fc_internal(AVFormatContext *s)
diff --git a/libavformat/mux.c b/libavformat/mux.c
index dde30f89eb..60204f6266 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -1025,44 +1025,6 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *pkt,
}
}
-#if FF_API_LAVF_SHORTEST
- if (si->packet_buffer.head &&
- eof &&
- (s->flags & AVFMT_FLAG_SHORTEST) &&
- fci->shortest_end == AV_NOPTS_VALUE) {
- AVPacket *const top_pkt = &si->packet_buffer.head->pkt;
-
- fci->shortest_end = av_rescale_q(top_pkt->dts,
- s->streams[top_pkt->stream_index]->time_base,
- AV_TIME_BASE_Q);
- }
-
- if (fci->shortest_end != AV_NOPTS_VALUE) {
- while (si->packet_buffer.head) {
- PacketListEntry *pktl = si->packet_buffer.head;
- AVPacket *const top_pkt = &pktl->pkt;
- AVStream *const st = s->streams[top_pkt->stream_index];
- FFStream *const sti = ffstream(st);
- int64_t top_dts = av_rescale_q(top_pkt->dts, st->time_base,
- AV_TIME_BASE_Q);
-
- if (fci->shortest_end + 1 >= top_dts)
- break;
-
- si->packet_buffer.head = pktl->next;
- if (!si->packet_buffer.head)
- si->packet_buffer.tail = NULL;
-
- if (sti->last_in_packet_buffer == pktl)
- sti->last_in_packet_buffer = NULL;
-
- av_packet_unref(&pktl->pkt);
- av_freep(&pktl);
- flush = 0;
- }
- }
-#endif
-
if (stream_count && flush) {
PacketListEntry *pktl = si->packet_buffer.head;
AVStream *const st = s->streams[pktl->pkt.stream_index];
diff --git a/libavformat/options.c b/libavformat/options.c
index c8f3390306..b314cd4a35 100644
--- a/libavformat/options.c
+++ b/libavformat/options.c
@@ -184,10 +184,6 @@ AVFormatContext *avformat_alloc_context(void)
return NULL;
}
-#if FF_API_LAVF_SHORTEST
- fci->shortest_end = AV_NOPTS_VALUE;
-#endif
-
return s;
}
diff --git a/libavformat/options_table.h b/libavformat/options_table.h
index 311880d24d..e2e690fd2a 100644
--- a/libavformat/options_table.h
+++ b/libavformat/options_table.h
@@ -51,9 +51,6 @@ static const AVOption avformat_options[] = {
{"fastseek", "fast but inaccurate seeks", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_FAST_SEEK }, INT_MIN, INT_MAX, D, .unit = "fflags"},
{"nobuffer", "reduce the latency introduced by optional buffering", 0, AV_OPT_TYPE_CONST, {.i64 = AVFMT_FLAG_NOBUFFER }, 0, INT_MAX, D, .unit = "fflags"},
{"bitexact", "do not write random/volatile data", 0, AV_OPT_TYPE_CONST, { .i64 = AVFMT_FLAG_BITEXACT }, 0, 0, E, .unit = "fflags" },
-#if FF_API_LAVF_SHORTEST
-{"shortest", "stop muxing with the shortest stream", 0, AV_OPT_TYPE_CONST, { .i64 = AVFMT_FLAG_SHORTEST }, 0, 0, E | AV_OPT_FLAG_DEPRECATED, .unit = "fflags" },
-#endif
{"autobsf", "add needed bsfs automatically", 0, AV_OPT_TYPE_CONST, { .i64 = AVFMT_FLAG_AUTO_BSF }, 0, 0, E, .unit = "fflags" },
{"seek2any", "allow seeking to non-keyframes on demuxer level when supported", OFFSET(seek2any), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, D},
{"analyzeduration", "specify how many microseconds are analyzed to probe the input", OFFSET(max_analyze_duration), AV_OPT_TYPE_INT64, {.i64 = 0 }, 0, INT64_MAX, D},
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index 7a9b06703d..e189ed90ac 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -42,7 +42,6 @@
*
*/
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62)
-#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 16/30] avformat: remove deprecated FF_API_ALLOW_FLUSH
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (14 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 15/30] avformat: remove deprecated FF_API_LAVF_SHORTEST James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 17/30] avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA James Almer
` (18 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-10-02.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavdevice/pulse_audio_enc.c | 4 ----
libavformat/avformat.h | 3 ---
libavformat/fifo.c | 4 ----
libavformat/hlsenc.c | 4 ----
libavformat/matroskaenc.c | 13 -----------
libavformat/movenc.c | 40 ++--------------------------------
libavformat/mpegtsenc.c | 4 ----
libavformat/oggenc.c | 20 -----------------
libavformat/tee.c | 4 ----
libavformat/tests/fifo_muxer.c | 4 ----
libavformat/version_major.h | 1 -
11 files changed, 2 insertions(+), 99 deletions(-)
diff --git a/libavdevice/pulse_audio_enc.c b/libavdevice/pulse_audio_enc.c
index 80136d1e20..d1652bf8d7 100644
--- a/libavdevice/pulse_audio_enc.c
+++ b/libavdevice/pulse_audio_enc.c
@@ -796,11 +796,7 @@ const FFOutputFormat ff_pulse_muxer = {
.get_output_timestamp = pulse_get_output_timestamp,
.get_device_list = pulse_get_device_list,
.control_message = pulse_control_message,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_NOFILE,
-#endif
.p.priv_class = &pulse_muxer_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index a3bb1f1ee3..08e3206290 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -485,9 +485,6 @@ typedef struct AVProbeData {
#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fall back on binary search via read_timestamp */
#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fall back on generic search */
#define AVFMT_NO_BYTE_SEEK 0x8000 /**< Format does not allow seeking by bytes */
-#if FF_API_ALLOW_FLUSH
-#define AVFMT_ALLOW_FLUSH 0x10000 /**< @deprecated: Just send a NULL packet if you want to flush a muxer. */
-#endif
#define AVFMT_TS_NONSTRICT 0x20000 /**< Format does not require strictly
increasing timestamps, but they must
still be monotonic */
diff --git a/libavformat/fifo.c b/libavformat/fifo.c
index 23e4149ad6..936a153a49 100644
--- a/libavformat/fifo.c
+++ b/libavformat/fifo.c
@@ -717,11 +717,7 @@ const FFOutputFormat ff_fifo_muxer = {
.p.name = "fifo",
.p.long_name = NULL_IF_CONFIG_SMALL("FIFO queue pseudo-muxer"),
.p.priv_class = &fifo_muxer_class,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE,
-#else
.p.flags = AVFMT_NOFILE | AVFMT_TS_NEGATIVE,
-#endif
.priv_data_size = sizeof(FifoContext),
.init = fifo_init,
.write_header = fifo_write_header,
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 6148685f40..f1f03dbd49 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -3256,11 +3256,7 @@ const FFOutputFormat ff_hls_muxer = {
.p.audio_codec = AV_CODEC_ID_AAC,
.p.video_codec = AV_CODEC_ID_H264,
.p.subtitle_codec = AV_CODEC_ID_WEBVTT,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_NOFILE | AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_NODIMENSIONS,
-#else
.p.flags = AVFMT_NOFILE | AVFMT_GLOBALHEADER | AVFMT_NODIMENSIONS,
-#endif
.p.priv_class = &hls_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
.priv_data_size = sizeof(HLSContext),
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 2e06f68304..6d0d791f18 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -3601,11 +3601,7 @@ const FFOutputFormat ff_matroska_muxer = {
.write_packet = mkv_write_flush_packet,
.write_trailer = mkv_write_trailer,
.p.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS |
-#if FF_API_ALLOW_FLUSH
- AVFMT_TS_NONSTRICT | AVFMT_ALLOW_FLUSH,
-#else
AVFMT_TS_NONSTRICT,
-#endif
.p.codec_tag = (const AVCodecTag* const []){
ff_codec_bmp_tags, ff_codec_wav_tags,
additional_audio_tags, additional_subtitle_tags, 0
@@ -3645,11 +3641,7 @@ const FFOutputFormat ff_webm_muxer = {
.query_codec = webm_query_codec,
.check_bitstream = mkv_check_bitstream,
.p.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS |
-#if FF_API_ALLOW_FLUSH
- AVFMT_TS_NONSTRICT | AVFMT_ALLOW_FLUSH,
-#else
AVFMT_TS_NONSTRICT,
-#endif
.p.priv_class = &matroska_webm_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
@@ -3671,12 +3663,7 @@ const FFOutputFormat ff_matroska_audio_muxer = {
.write_packet = mkv_write_flush_packet,
.write_trailer = mkv_write_trailer,
.check_bitstream = mkv_check_bitstream,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NONSTRICT |
- AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NONSTRICT,
-#endif
.p.codec_tag = (const AVCodecTag* const []){
ff_codec_wav_tags, additional_audio_tags, 0
},
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 76dce9e6e5..daac6e8957 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -8713,11 +8713,7 @@ const FFOutputFormat ff_mov_muxer = {
.write_packet = mov_write_packet,
.write_trailer = mov_write_trailer,
.deinit = mov_free,
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE | AVFMT_VARIABLE_FPS
-#if FF_API_ALLOW_FLUSH
- | AVFMT_ALLOW_FLUSH
-#endif
- ,
+ .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE | AVFMT_VARIABLE_FPS,
.p.codec_tag = (const AVCodecTag* const []){
ff_codec_movvideo_tags, ff_codec_movaudio_tags, ff_codec_movsubtitle_tags, 0
},
@@ -8739,11 +8735,7 @@ const FFOutputFormat ff_tgp_muxer = {
.write_packet = mov_write_packet,
.write_trailer = mov_write_trailer,
.deinit = mov_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE,
-#else
.p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE,
-#endif
.p.codec_tag = codec_3gp_tags_list,
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
@@ -8765,11 +8757,7 @@ const FFOutputFormat ff_mp4_muxer = {
.write_packet = mov_write_packet,
.write_trailer = mov_write_trailer,
.deinit = mov_free,
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE | AVFMT_VARIABLE_FPS
-#if FF_API_ALLOW_FLUSH
- | AVFMT_ALLOW_FLUSH
-#endif
- ,
+ .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE | AVFMT_VARIABLE_FPS,
.p.codec_tag = mp4_codec_tags_list,
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
@@ -8790,11 +8778,7 @@ const FFOutputFormat ff_psp_muxer = {
.write_packet = mov_write_packet,
.write_trailer = mov_write_trailer,
.deinit = mov_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE,
-#else
.p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE,
-#endif
.p.codec_tag = mp4_codec_tags_list,
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
@@ -8814,11 +8798,7 @@ const FFOutputFormat ff_tg2_muxer = {
.write_packet = mov_write_packet,
.write_trailer = mov_write_trailer,
.deinit = mov_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE,
-#else
.p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE,
-#endif
.p.codec_tag = codec_3gp_tags_list,
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
@@ -8839,11 +8819,7 @@ const FFOutputFormat ff_ipod_muxer = {
.write_packet = mov_write_packet,
.write_trailer = mov_write_trailer,
.deinit = mov_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE,
-#else
.p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE,
-#endif
.p.codec_tag = (const AVCodecTag* const []){ codec_ipod_tags, 0 },
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
@@ -8864,11 +8840,7 @@ const FFOutputFormat ff_ismv_muxer = {
.write_packet = mov_write_packet,
.write_trailer = mov_write_trailer,
.deinit = mov_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE,
-#else
.p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE,
-#endif
.p.codec_tag = (const AVCodecTag* const []){
codec_mp4_tags, codec_ism_tags, 0 },
.check_bitstream = mov_check_bitstream,
@@ -8890,11 +8862,7 @@ const FFOutputFormat ff_f4v_muxer = {
.write_packet = mov_write_packet,
.write_trailer = mov_write_trailer,
.deinit = mov_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_GLOBALHEADER,
-#endif
.p.codec_tag = (const AVCodecTag* const []){ codec_f4v_tags, 0 },
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
@@ -8914,11 +8882,7 @@ const FFOutputFormat ff_avif_muxer = {
.write_packet = mov_write_packet,
.write_trailer = avif_write_trailer,
.deinit = mov_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_GLOBALHEADER,
-#endif
.p.codec_tag = codec_avif_tags_list,
.p.priv_class = &mov_avif_muxer_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 399ba21d29..6935b71cfe 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -2413,11 +2413,7 @@ const FFOutputFormat ff_mpegts_muxer = {
.write_trailer = mpegts_write_end,
.deinit = mpegts_deinit,
.check_bitstream = mpegts_check_bitstream,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_ALLOW_FLUSH | AVFMT_VARIABLE_FPS | AVFMT_NODIMENSIONS,
-#else
.p.flags = AVFMT_VARIABLE_FPS | AVFMT_NODIMENSIONS,
-#endif
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
.p.priv_class = &mpegts_muxer_class,
};
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index 0647111396..e1bb7dd972 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -773,11 +773,7 @@ const FFOutputFormat ff_ogg_muxer = {
.write_packet = ogg_write_packet,
.write_trailer = ogg_write_trailer,
.deinit = ogg_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT,
-#endif
.p.priv_class = &ogg_muxer_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
@@ -796,11 +792,7 @@ const FFOutputFormat ff_oga_muxer = {
.write_packet = ogg_write_packet,
.write_trailer = ogg_write_trailer,
.deinit = ogg_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_TS_NEGATIVE,
-#endif
.p.priv_class = &ogg_muxer_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
@@ -822,11 +814,7 @@ const FFOutputFormat ff_ogv_muxer = {
.write_packet = ogg_write_packet,
.write_trailer = ogg_write_trailer,
.deinit = ogg_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT,
-#endif
.p.priv_class = &ogg_muxer_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
@@ -845,11 +833,7 @@ const FFOutputFormat ff_spx_muxer = {
.write_packet = ogg_write_packet,
.write_trailer = ogg_write_trailer,
.deinit = ogg_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_TS_NEGATIVE,
-#endif
.p.priv_class = &ogg_muxer_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
@@ -868,11 +852,7 @@ const FFOutputFormat ff_opus_muxer = {
.write_packet = ogg_write_packet,
.write_trailer = ogg_write_trailer,
.deinit = ogg_free,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_TS_NEGATIVE,
-#endif
.p.priv_class = &ogg_muxer_class,
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
diff --git a/libavformat/tee.c b/libavformat/tee.c
index 1a2a8ead82..0150ee9f22 100644
--- a/libavformat/tee.c
+++ b/libavformat/tee.c
@@ -610,10 +610,6 @@ const FFOutputFormat ff_tee_muxer = {
.write_trailer = tee_write_trailer,
.write_packet = tee_write_packet,
.p.priv_class = &tee_muxer_class,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE,
-#else
.p.flags = AVFMT_NOFILE | AVFMT_TS_NEGATIVE,
-#endif
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
diff --git a/libavformat/tests/fifo_muxer.c b/libavformat/tests/fifo_muxer.c
index 222761fed3..1ba440b301 100644
--- a/libavformat/tests/fifo_muxer.c
+++ b/libavformat/tests/fifo_muxer.c
@@ -154,11 +154,7 @@ const FFOutputFormat ff_fifo_test_muxer = {
.write_trailer = fifo_test_trailer,
.deinit = failing_deinit,
.p.priv_class = &failing_muxer_class,
-#if FF_API_ALLOW_FLUSH
- .p.flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH,
-#else
.p.flags = AVFMT_NOFILE,
-#endif
.flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index e189ed90ac..f76d811889 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -42,7 +42,6 @@
*
*/
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62)
-#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_GET_DUR_ESTIMATE_METHOD (LIBAVFORMAT_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 17/30] avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (15 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 16/30] avformat: remove deprecated FF_API_ALLOW_FLUSH James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 18/30] avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD James Almer
` (17 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-10-06.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/avformat.c | 80 ----------------------------
libavformat/avformat.h | 103 ------------------------------------
libavformat/demux.c | 46 ----------------
libavformat/demux_utils.c | 12 -----
libavformat/internal.h | 11 ----
libavformat/mux.c | 22 --------
libavformat/options.c | 5 --
libavformat/seek.c | 7 ---
libavformat/version_major.h | 1 -
9 files changed, 287 deletions(-)
diff --git a/libavformat/avformat.c b/libavformat/avformat.c
index f53299cc40..18ca4643ee 100644
--- a/libavformat/avformat.c
+++ b/libavformat/avformat.c
@@ -50,14 +50,6 @@ void ff_free_stream(AVStream **pst)
if (!st)
return;
-#if FF_API_AVSTREAM_SIDE_DATA
-FF_DISABLE_DEPRECATION_WARNINGS
- for (int i = 0; i < st->nb_side_data; i++)
- av_freep(&st->side_data[i].data);
- av_freep(&st->side_data);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (st->attached_pic.data)
av_packet_unref(&st->attached_pic);
@@ -199,78 +191,6 @@ void avformat_free_context(AVFormatContext *s)
av_free(s);
}
-#if FF_API_AVSTREAM_SIDE_DATA
-FF_DISABLE_DEPRECATION_WARNINGS
-uint8_t *av_stream_get_side_data(const AVStream *st,
- enum AVPacketSideDataType type, size_t *size)
-{
- for (int i = 0; i < st->nb_side_data; i++) {
- if (st->side_data[i].type == type) {
- if (size)
- *size = st->side_data[i].size;
- return st->side_data[i].data;
- }
- }
- if (size)
- *size = 0;
- return NULL;
-}
-
-int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type,
- uint8_t *data, size_t size)
-{
- AVPacketSideData *sd, *tmp;
-
- for (int i = 0; i < st->nb_side_data; i++) {
- sd = &st->side_data[i];
-
- if (sd->type == type) {
- av_freep(&sd->data);
- sd->data = data;
- sd->size = size;
- return 0;
- }
- }
-
- if (st->nb_side_data + 1U > FFMIN(INT_MAX, SIZE_MAX / sizeof(*tmp)))
- return AVERROR(ERANGE);
-
- tmp = av_realloc_array(st->side_data, st->nb_side_data + 1, sizeof(*tmp));
- if (!tmp) {
- return AVERROR(ENOMEM);
- }
-
- st->side_data = tmp;
- st->nb_side_data++;
-
- sd = &st->side_data[st->nb_side_data - 1];
- sd->type = type;
- sd->data = data;
- sd->size = size;
-
- return 0;
-}
-
-uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type,
- size_t size)
-{
- int ret;
- uint8_t *data = av_malloc(size);
-
- if (!data)
- return NULL;
-
- ret = av_stream_add_side_data(st, type, data, size);
- if (ret < 0) {
- av_freep(&data);
- return NULL;
- }
-
- return data;
-}
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
/**
* Copy all stream parameters from source to destination stream, with the
* exception of the index field, which is usually set by avformat_new_stream().
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 08e3206290..fabe1d305c 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -844,38 +844,6 @@ typedef struct AVStream {
*/
AVPacket attached_pic;
-#if FF_API_AVSTREAM_SIDE_DATA
- /**
- * An array of side data that applies to the whole stream (i.e. the
- * container does not allow it to change between packets).
- *
- * There may be no overlap between the side data in this array and side data
- * in the packets. I.e. a given side data is either exported by the muxer
- * (demuxing) / set by the caller (muxing) in this array, then it never
- * appears in the packets, or the side data is exported / sent through
- * the packets (always in the first packet where the value becomes known or
- * changes), then it does not appear in this array.
- *
- * - demuxing: Set by libavformat when the stream is created.
- * - muxing: May be set by the caller before avformat_write_header().
- *
- * Freed by libavformat in avformat_free_context().
- *
- * @deprecated use AVStream's @ref AVCodecParameters.coded_side_data
- * "codecpar side data".
- */
- attribute_deprecated
- AVPacketSideData *side_data;
- /**
- * The number of elements in the AVStream.side_data array.
- *
- * @deprecated use AVStream's @ref AVCodecParameters.nb_coded_side_data
- * "codecpar side data".
- */
- attribute_deprecated
- int nb_side_data;
-#endif
-
/**
* Flags indicating events happening on the stream, a combination of
* AVSTREAM_EVENT_FLAG_*.
@@ -1923,26 +1891,6 @@ typedef struct AVFormatContext {
int64_t duration_probesize;
} AVFormatContext;
-#if FF_API_AVSTREAM_SIDE_DATA
-/**
- * This function will cause global side data to be injected in the next packet
- * of each stream as well as after any subsequent seek.
- *
- * @note global side data is always available in every AVStream's
- * @ref AVCodecParameters.coded_side_data "codecpar side data" array, and
- * in a @ref AVCodecContext.coded_side_data "decoder's side data" array if
- * initialized with said stream's codecpar.
- * @see av_packet_side_data_get()
- *
- * @deprecated this function should never be needed, as global side data is now
- * exported in AVCodecParameters and should
- * be propagated from demuxers to decoders via
- * ::avcodec_parameters_to_context()
- */
-attribute_deprecated
-void av_format_inject_global_side_data(AVFormatContext *s);
-#endif
-
#if FF_API_GET_DUR_ESTIMATE_METHOD
/**
* Returns the method used to set ctx->duration.
@@ -2131,57 +2079,6 @@ AVStream *avformat_new_stream(AVFormatContext *s, const struct AVCodec *c);
*/
int avformat_stream_group_add_stream(AVStreamGroup *stg, AVStream *st);
-#if FF_API_AVSTREAM_SIDE_DATA
-/**
- * Wrap an existing array as stream side data.
- *
- * @param st stream
- * @param type side information type
- * @param data the side data array. It must be allocated with the av_malloc()
- * family of functions. The ownership of the data is transferred to
- * st.
- * @param size side information size
- *
- * @return zero on success, a negative AVERROR code on failure. On failure,
- * the stream is unchanged and the data remains owned by the caller.
- * @deprecated use av_packet_side_data_add() with the stream's
- * @ref AVCodecParameters.coded_side_data "codecpar side data"
- */
-attribute_deprecated
-int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type,
- uint8_t *data, size_t size);
-
-/**
- * Allocate new information from stream.
- *
- * @param stream stream
- * @param type desired side information type
- * @param size side information size
- *
- * @return pointer to fresh allocated data or NULL otherwise
- * @deprecated use av_packet_side_data_new() with the stream's
- * @ref AVCodecParameters.coded_side_data "codecpar side data"
- */
-attribute_deprecated
-uint8_t *av_stream_new_side_data(AVStream *stream,
- enum AVPacketSideDataType type, size_t size);
-/**
- * Get side information from stream.
- *
- * @param stream stream
- * @param type desired side information type
- * @param size If supplied, *size will be set to the size of the side data
- * or to zero if the desired side data is not present.
- *
- * @return pointer to data if present or NULL otherwise
- * @deprecated use av_packet_side_data_get() with the stream's
- * @ref AVCodecParameters.coded_side_data "codecpar side data"
- */
-attribute_deprecated
-uint8_t *av_stream_get_side_data(const AVStream *stream,
- enum AVPacketSideDataType type, size_t *size);
-#endif
-
AVProgram *av_new_program(AVFormatContext *s, int id);
/**
diff --git a/libavformat/demux.c b/libavformat/demux.c
index c0bfb9cb67..71af8acad9 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -1495,27 +1495,6 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
}
sti->skip_samples = 0;
}
-
-#if FF_API_AVSTREAM_SIDE_DATA
- if (sti->inject_global_side_data) {
- for (int i = 0; i < st->codecpar->nb_coded_side_data; i++) {
- const AVPacketSideData *const src_sd = &st->codecpar->coded_side_data[i];
- uint8_t *dst_data;
-
- if (av_packet_get_side_data(pkt, src_sd->type, NULL))
- continue;
-
- dst_data = av_packet_new_side_data(pkt, src_sd->type, src_sd->size);
- if (!dst_data) {
- av_log(s, AV_LOG_WARNING, "Could not inject global side data\n");
- continue;
- }
-
- memcpy(dst_data, src_sd->data, src_sd->size);
- }
- sti->inject_global_side_data = 0;
- }
-#endif
}
if (!fci->metafree) {
@@ -3074,31 +3053,6 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
}
sti->avctx_inited = 0;
-#if FF_API_AVSTREAM_SIDE_DATA
-FF_DISABLE_DEPRECATION_WARNINGS
- if (st->codecpar->nb_coded_side_data > 0) {
- av_assert0(!st->side_data && !st->nb_side_data);
- st->side_data = av_calloc(st->codecpar->nb_coded_side_data, sizeof(*st->side_data));
- if (!st->side_data) {
- ret = AVERROR(ENOMEM);
- goto find_stream_info_err;
- }
-
- for (int j = 0; j < st->codecpar->nb_coded_side_data; j++) {
- uint8_t *data = av_memdup(st->codecpar->coded_side_data[j].data,
- st->codecpar->coded_side_data[j].size);
- if (!data) {
- ret = AVERROR(ENOMEM);
- goto find_stream_info_err;
- }
- st->side_data[j].type = st->codecpar->coded_side_data[j].type;
- st->side_data[j].size = st->codecpar->coded_side_data[j].size;
- st->side_data[j].data = data;
- st->nb_side_data++;
- }
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
find_stream_info_err:
diff --git a/libavformat/demux_utils.c b/libavformat/demux_utils.c
index 9aae521c6c..b632277460 100644
--- a/libavformat/demux_utils.c
+++ b/libavformat/demux_utils.c
@@ -81,18 +81,6 @@ AVChapter *avpriv_new_chapter(AVFormatContext *s, int64_t id, AVRational time_ba
return chapter;
}
-#if FF_API_AVSTREAM_SIDE_DATA
-void av_format_inject_global_side_data(AVFormatContext *s)
-{
- FFFormatContext *const si = ffformatcontext(s);
- si->inject_global_side_data = 1;
- for (unsigned i = 0; i < s->nb_streams; i++) {
- AVStream *st = s->streams[i];
- ffstream(st)->inject_global_side_data = 1;
- }
-}
-#endif
-
int avformat_queue_attached_pictures(AVFormatContext *s)
{
FormatContextInternal *const fci = ff_fc_internal(s);
diff --git a/libavformat/internal.h b/libavformat/internal.h
index b909adf209..500c310b88 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -110,10 +110,6 @@ typedef struct FFFormatContext {
*/
AVPacket *pkt;
-#if FF_API_AVSTREAM_SIDE_DATA
- int inject_global_side_data;
-#endif
-
int avoid_negative_ts_use_pts;
/**
@@ -292,13 +288,6 @@ typedef struct FFStream {
uint8_t dts_ordered;
uint8_t dts_misordered;
-#if FF_API_AVSTREAM_SIDE_DATA
- /**
- * Internal data to inject global side data
- */
- int inject_global_side_data;
-#endif
-
/**
* display aspect ratio (0 if unknown)
* - encoding: unused
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 60204f6266..db3b6c2bfe 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -295,27 +295,6 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options)
}
}
-#if FF_API_AVSTREAM_SIDE_DATA
-FF_DISABLE_DEPRECATION_WARNINGS
- /* if the caller is using the deprecated AVStream side_data API,
- * copy its contents to AVStream.codecpar, giving it priority
- over existing side data in the latter */
- for (int i = 0; i < st->nb_side_data; i++) {
- const AVPacketSideData *sd_src = &st->side_data[i];
- AVPacketSideData *sd_dst;
-
- sd_dst = av_packet_side_data_new(&st->codecpar->coded_side_data,
- &st->codecpar->nb_coded_side_data,
- sd_src->type, sd_src->size, 0);
- if (!sd_dst) {
- ret = AVERROR(ENOMEM);
- goto fail;
- }
- memcpy(sd_dst->data, sd_src->data, sd_src->size);
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
desc = avcodec_descriptor_get(par->codec_id);
if (desc && desc->props & AV_CODEC_PROP_REORDER)
sti->reorder = 1;
@@ -965,7 +944,6 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *pkt,
int stream_count = 0;
int noninterleaved_count = 0;
int ret;
- int eof = flush;
if (has_packet) {
if ((ret = ff_interleave_add_packet(s, pkt, interleave_compare_dts)) < 0)
diff --git a/libavformat/options.c b/libavformat/options.c
index b314cd4a35..76b91169a5 100644
--- a/libavformat/options.c
+++ b/libavformat/options.c
@@ -250,7 +250,6 @@ const AVClass *av_stream_get_class(void)
AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c)
{
- FFFormatContext *const si = ffformatcontext(s);
FFStream *sti;
AVStream *st;
AVStream **streams;
@@ -322,10 +321,6 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c)
sti->transferred_mux_tb = (AVRational) { 0, 1 };;
#endif
-#if FF_API_AVSTREAM_SIDE_DATA
- sti->inject_global_side_data = si->inject_global_side_data;
-#endif
-
sti->need_context_update = 1;
s->streams[s->nb_streams++] = st;
diff --git a/libavformat/seek.c b/libavformat/seek.c
index a096d5e5b3..c0d94371e6 100644
--- a/libavformat/seek.c
+++ b/libavformat/seek.c
@@ -715,8 +715,6 @@ int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts,
/** Flush the frame reader. */
void ff_read_frame_flush(AVFormatContext *s)
{
- FFFormatContext *const si = ffformatcontext(s);
-
ff_flush_packet_queue(s);
/* Reset read state for each stream. */
@@ -741,11 +739,6 @@ void ff_read_frame_flush(AVFormatContext *s)
for (int j = 0; j < MAX_REORDER_DELAY + 1; j++)
sti->pts_buffer[j] = AV_NOPTS_VALUE;
-#if FF_API_AVSTREAM_SIDE_DATA
- if (si->inject_global_side_data)
- sti->inject_global_side_data = 1;
-#endif
-
sti->skip_samples = 0;
}
}
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index f76d811889..aec4ee6e74 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -42,7 +42,6 @@
*
*/
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62)
-#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_GET_DUR_ESTIMATE_METHOD (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_INTERNAL_TIMING (LIBAVFORMAT_VERSION_MAJOR < 62)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 18/30] avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (16 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 17/30] avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 19/30] avformat/version_major: postpone some deprecations until the next bump James Almer
` (16 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-03-06.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/avformat.h | 11 -----------
libavformat/options.c | 7 -------
libavformat/version_major.h | 1 -
3 files changed, 19 deletions(-)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index fabe1d305c..1a94819644 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1891,17 +1891,6 @@ typedef struct AVFormatContext {
int64_t duration_probesize;
} AVFormatContext;
-#if FF_API_GET_DUR_ESTIMATE_METHOD
-/**
- * Returns the method used to set ctx->duration.
- *
- * @return AVFMT_DURATION_FROM_PTS, AVFMT_DURATION_FROM_STREAM, or AVFMT_DURATION_FROM_BITRATE.
- * @deprecated duration_estimation_method is public and can be read directly.
- */
-attribute_deprecated
-enum AVDurationEstimationMethod av_fmt_ctx_get_duration_estimation_method(const AVFormatContext* ctx);
-#endif
-
/**
* @defgroup lavf_core Core functions
* @ingroup libavf
diff --git a/libavformat/options.c b/libavformat/options.c
index 76b91169a5..7e4130b405 100644
--- a/libavformat/options.c
+++ b/libavformat/options.c
@@ -187,13 +187,6 @@ AVFormatContext *avformat_alloc_context(void)
return s;
}
-#if FF_API_GET_DUR_ESTIMATE_METHOD
-enum AVDurationEstimationMethod av_fmt_ctx_get_duration_estimation_method(const AVFormatContext* ctx)
-{
- return ctx->duration_estimation_method;
-}
-#endif
-
const AVClass *avformat_get_class(void)
{
return &av_format_context_class;
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index aec4ee6e74..f5efa4db33 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -43,7 +43,6 @@
*/
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62)
-#define FF_API_GET_DUR_ESTIMATE_METHOD (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_INTERNAL_TIMING (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_R_FRAME_RATE 1
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 19/30] avformat/version_major: postpone some deprecations until the next bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (17 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 18/30] avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 20/30] avfilter: remove deprecated FF_API_LINK_PUBLIC James Almer
` (15 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
They are either too recent, or are not trivial to remove.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/version_major.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index f5efa4db33..be3e13c334 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -41,9 +41,9 @@
* at once through the bump. This improves the git bisect-ability of the change.
*
*/
-#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62)
+#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 63)
-#define FF_API_INTERNAL_TIMING (LIBAVFORMAT_VERSION_MAJOR < 62)
+#define FF_API_INTERNAL_TIMING (LIBAVFORMAT_VERSION_MAJOR < 63)
#define FF_API_R_FRAME_RATE 1
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 20/30] avfilter: remove deprecated FF_API_LINK_PUBLIC
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (18 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 19/30] avformat/version_major: postpone some deprecations until the next bump James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 21/30] avfilter/version_major: postpone some deprecations until the next bump James Almer
` (14 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-03-08.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavfilter/avfilter.c | 11 -----------
libavfilter/avfilter.h | 14 --------------
libavfilter/version_major.h | 1 -
3 files changed, 26 deletions(-)
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index e732556ffa..cac5cf8997 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -213,17 +213,6 @@ static void link_free(AVFilterLink **link)
av_freep(link);
}
-#if FF_API_LINK_PUBLIC
-void avfilter_link_free(AVFilterLink **link)
-{
- link_free(link);
-}
-int avfilter_config_links(AVFilterContext *filter)
-{
- return ff_filter_config_links(filter);
-}
-#endif
-
static void update_link_current_pts(FilterLinkInternal *li, int64_t pts)
{
AVFilterLink *const link = &li->l.pub;
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 4520d5f978..a89d3cf658 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -447,20 +447,6 @@ struct AVFilterLink {
int avfilter_link(AVFilterContext *src, unsigned srcpad,
AVFilterContext *dst, unsigned dstpad);
-#if FF_API_LINK_PUBLIC
-/**
- * @deprecated this function should never be called by users
- */
-attribute_deprecated
-void avfilter_link_free(AVFilterLink **link);
-
-/**
- * @deprecated this function should never be called by users
- */
-attribute_deprecated
-int avfilter_config_links(AVFilterContext *filter);
-#endif
-
#define AVFILTER_CMD_FLAG_ONE 1 ///< Stop once a filter understood the command (for target=all for example), fast filters are favored automatically
#define AVFILTER_CMD_FLAG_FAST 2 ///< Only execute command when its fast (like a video out that supports contrast adjustment in hw)
diff --git a/libavfilter/version_major.h b/libavfilter/version_major.h
index 41374fbbe5..c156805a31 100644
--- a/libavfilter/version_major.h
+++ b/libavfilter/version_major.h
@@ -35,7 +35,6 @@
* the public API and may change, break or disappear at any time.
*/
-#define FF_API_LINK_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 11)
#define FF_API_BUFFERSINK_OPTS (LIBAVFILTER_VERSION_MAJOR < 11)
#define FF_API_CONTEXT_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 11)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 21/30] avfilter/version_major: postpone some deprecations until the next bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (19 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 20/30] avfilter: remove deprecated FF_API_LINK_PUBLIC James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 22/30] avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE James Almer
` (13 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
They are too recent.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavfilter/version_major.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavfilter/version_major.h b/libavfilter/version_major.h
index c156805a31..cd5c01d7c3 100644
--- a/libavfilter/version_major.h
+++ b/libavfilter/version_major.h
@@ -35,7 +35,7 @@
* the public API and may change, break or disappear at any time.
*/
-#define FF_API_BUFFERSINK_OPTS (LIBAVFILTER_VERSION_MAJOR < 11)
-#define FF_API_CONTEXT_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 11)
+#define FF_API_BUFFERSINK_OPTS (LIBAVFILTER_VERSION_MAJOR < 12)
+#define FF_API_CONTEXT_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 12)
#endif /* AVFILTER_VERSION_MAJOR_H */
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 22/30] avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (20 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 21/30] avfilter/version_major: postpone some deprecations until the next bump James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT James Almer
` (12 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-03-17.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/dynamic_hdr_vivid.c | 11 ------
libavutil/hdr_dynamic_vivid_metadata.h | 54 --------------------------
libavutil/version.h | 1 -
3 files changed, 66 deletions(-)
diff --git a/libavcodec/dynamic_hdr_vivid.c b/libavcodec/dynamic_hdr_vivid.c
index a9b6910798..319d13b90a 100644
--- a/libavcodec/dynamic_hdr_vivid.c
+++ b/libavcodec/dynamic_hdr_vivid.c
@@ -116,17 +116,6 @@ int ff_parse_itu_t_t35_to_dynamic_hdr_vivid(AVDynamicHDRVivid *s, const uint8_t
three_spline->th_delta2 = (AVRational){get_bits(gb, 10), 1023};
three_spline->enable_strength = (AVRational){get_bits(gb, 8), 255};
}
-#if FF_API_HDR_VIVID_THREE_SPLINE
- three_spline = &tm_params->three_spline[0];
-FF_DISABLE_DEPRECATION_WARNINGS
- tm_params->three_Spline_TH_mode = three_spline->th_mode;
- tm_params->three_Spline_TH_enable_MB = three_spline->th_enable_mb;
- tm_params->three_Spline_TH_enable = three_spline->th_enable;
- tm_params->three_Spline_TH_Delta1 = three_spline->th_delta1;
- tm_params->three_Spline_TH_Delta2 = three_spline->th_delta2;
- tm_params->three_Spline_enable_Strength = three_spline->enable_strength;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
}
}
diff --git a/libavutil/hdr_dynamic_vivid_metadata.h b/libavutil/hdr_dynamic_vivid_metadata.h
index 4524a81557..a9d4797f0b 100644
--- a/libavutil/hdr_dynamic_vivid_metadata.h
+++ b/libavutil/hdr_dynamic_vivid_metadata.h
@@ -168,60 +168,6 @@ typedef struct AVHDRVividColorToneMappingParams {
*/
int three_Spline_num;
-#if FF_API_HDR_VIVID_THREE_SPLINE
- /**
- * The mode of three Spline. the value shall be in the range
- * of 0 to 3, inclusive.
- * @deprecated Use three_spline instead
- */
- attribute_deprecated
- int three_Spline_TH_mode;
-
- /**
- * three_Spline_TH_enable_MB is in the range of 0.0 to 1.0, inclusive
- * and in multiples of 1.0/255.
- * @deprecated Use three_spline instead
- */
- attribute_deprecated
- AVRational three_Spline_TH_enable_MB;
-
- /**
- * 3Spline_TH_enable of three Spline.
- * The value shall be in the range of 0.0 to 1.0, inclusive.
- * and in multiples of 1.0/4095.
- * @deprecated Use three_spline instead
- */
- attribute_deprecated
- AVRational three_Spline_TH_enable;
-
- /**
- * 3Spline_TH_Delta1 of three Spline.
- * The value shall be in the range of 0.0 to 0.25, inclusive,
- * and in multiples of 0.25/1023.
- * @deprecated Use three_spline instead
- */
- attribute_deprecated
- AVRational three_Spline_TH_Delta1;
-
- /**
- * 3Spline_TH_Delta2 of three Spline.
- * The value shall be in the range of 0.0 to 0.25, inclusive,
- * and in multiples of 0.25/1023.
- * @deprecated Use three_spline instead
- */
- attribute_deprecated
- AVRational three_Spline_TH_Delta2;
-
- /**
- * 3Spline_enable_Strength of three Spline.
- * The value shall be in the range of 0.0 to 1.0, inclusive,
- * and in multiples of 1.0/255.
- * @deprecated Use three_spline instead
- */
- attribute_deprecated
- AVRational three_Spline_enable_Strength;
-#endif
-
AVHDRVivid3SplineParams three_spline[2];
} AVHDRVividColorToneMappingParams;
diff --git a/libavutil/version.h b/libavutil/version.h
index ee4a36cb17..4c8282a35c 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_HDR_VIVID_THREE_SPLINE (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 60)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (21 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 22/30] avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE James Almer
@ 2025-02-23 22:06 ` James Almer
2025-03-01 17:29 ` Marton Balint
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 24/30] avutil: remove deprecated FF_API_INTERLACED_FRAME James Almer
` (11 subsequent siblings)
34 siblings, 1 reply; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-03-20.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/av1dec.c | 6 ----
libavcodec/cuviddec.c | 6 ----
libavcodec/decode.c | 27 ------------------
libavcodec/libuavs3d.c | 12 --------
libavdevice/lavfi.c | 10 -------
libavfilter/af_volume.c | 15 ----------
libavfilter/af_volume.h | 3 --
libavfilter/avfilter.c | 14 ---------
libavfilter/f_select.c | 11 -------
libavfilter/f_sendcmd.c | 11 -------
libavfilter/setpts.c | 11 -------
libavfilter/vf_crop.c | 15 ----------
libavfilter/vf_drawtext.c | 18 ------------
libavfilter/vf_eq.c | 8 ------
libavfilter/vf_eq.h | 6 ----
libavfilter/vf_overlay.c | 14 ---------
libavfilter/vf_overlay.h | 3 --
libavfilter/vf_overlay_cuda.c | 18 ------------
libavfilter/vf_scale.c | 41 ++------------------------
libavfilter/vf_scale_npp.c | 54 +++--------------------------------
libavfilter/vf_swaprect.c | 17 ++---------
libavutil/frame.c | 12 --------
libavutil/frame.h | 26 -----------------
libavutil/version.h | 1 -
24 files changed, 8 insertions(+), 351 deletions(-)
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index 7c54e36220..1909b1f122 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -1196,12 +1196,6 @@ static int set_output_frame(AVCodecContext *avctx, AVFrame *frame)
frame->pts = pkt->pts;
frame->pkt_dts = pkt->dts;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_size = pkt->size;
- frame->pkt_pos = pkt->pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
av_packet_unref(pkt);
diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c
index 67076a1752..b029882926 100644
--- a/libavcodec/cuviddec.c
+++ b/libavcodec/cuviddec.c
@@ -695,12 +695,6 @@ static int cuvid_output_frame(AVCodecContext *avctx, AVFrame *frame)
* So set pkt_pts and clear all the other pkt_ fields.
*/
frame->duration = 0;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_pos = -1;
- frame->pkt_size = -1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (!parsed_frame.is_deinterlacing && !parsed_frame.dispinfo.progressive_frame)
frame->flags |= AV_FRAME_FLAG_INTERLACED;
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index a28279bd36..271345cff1 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -172,10 +172,6 @@ static int extract_packet_props(AVCodecInternal *avci, const AVPacket *pkt)
av_packet_unref(avci->last_pkt_props);
if (pkt) {
ret = av_packet_copy_props(avci->last_pkt_props, pkt);
-#if FF_API_FRAME_PKT
- if (!ret)
- avci->last_pkt_props->stream_index = pkt->size; // Needed for ff_decode_frame_props().
-#endif
}
return ret;
}
@@ -444,14 +440,6 @@ static inline int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame,
if (!(codec->caps_internal & FF_CODEC_CAP_SETS_PKT_DTS))
frame->pkt_dts = pkt->dts;
- if (avctx->codec->type == AVMEDIA_TYPE_VIDEO) {
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- if(!avctx->has_b_frames)
- frame->pkt_pos = pkt->pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
- }
emms_c();
if (avctx->codec->type == AVMEDIA_TYPE_VIDEO) {
@@ -507,10 +495,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
pkt->pts = AV_NOPTS_VALUE;
pkt->dts = AV_NOPTS_VALUE;
if (!(codec->caps_internal & FF_CODEC_CAP_SETS_FRAME_PROPS)) {
-#if FF_API_FRAME_PKT
- // See extract_packet_props() comment.
- avci->last_pkt_props->stream_index = avci->last_pkt_props->stream_index - consumed;
-#endif
avci->last_pkt_props->pts = AV_NOPTS_VALUE;
avci->last_pkt_props->dts = AV_NOPTS_VALUE;
}
@@ -1483,12 +1467,6 @@ int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx,
frame->pts = pkt->pts;
frame->duration = pkt->duration;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_pos = pkt->pos;
- frame->pkt_size = pkt->size;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
ret = side_data_map(frame, pkt->side_data, pkt->side_data_elems, ff_sd_global_map);
if (ret < 0)
@@ -1529,11 +1507,6 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame)
ret = ff_decode_frame_props_from_pkt(avctx, frame, pkt);
if (ret < 0)
return ret;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_size = pkt->stream_index;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
ret = fill_frame_props(avctx, frame);
diff --git a/libavcodec/libuavs3d.c b/libavcodec/libuavs3d.c
index 53b5faafc5..4122f60480 100644
--- a/libavcodec/libuavs3d.c
+++ b/libavcodec/libuavs3d.c
@@ -79,12 +79,6 @@ static void uavs3d_output_callback(uavs3d_io_frm_t *dec_frame) {
frm->pts = dec_frame->pts;
frm->pkt_dts = dec_frame->dts;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- frm->pkt_pos = dec_frame->pkt_pos;
- frm->pkt_size = dec_frame->pkt_size;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (dec_frame->type < 0 || dec_frame->type >= FF_ARRAY_ELEMS(ff_avs3_image_type)) {
av_log(NULL, AV_LOG_WARNING, "Error frame type in uavs3d: %d.\n", dec_frame->type);
@@ -176,12 +170,6 @@ static int libuavs3d_decode_frame(AVCodecContext *avctx, AVFrame *frm,
uavs3d_io_frm_t *frm_dec = &h->dec_frame;
buf_end = buf + buf_size;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- frm_dec->pkt_pos = avpkt->pos;
- frm_dec->pkt_size = avpkt->size;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
while (!finish) {
int bs_len;
diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c
index 17657a0638..548183d633 100644
--- a/libavdevice/lavfi.c
+++ b/libavdevice/lavfi.c
@@ -353,11 +353,6 @@ static int create_subcc_packet(AVFormatContext *avctx, AVFrame *frame,
memcpy(lavfi->subcc_packet.data, sd->data, sd->size);
lavfi->subcc_packet.stream_index = stream_idx;
lavfi->subcc_packet.pts = frame->pts;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- lavfi->subcc_packet.pos = frame->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
return 0;
}
@@ -466,11 +461,6 @@ static int lavfi_read_packet(AVFormatContext *avctx, AVPacket *pkt)
pkt->stream_index = stream_idx;
pkt->pts = frame->pts;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- pkt->pos = frame->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
av_frame_free(&frame_to_free);
diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c
index 18b1616cab..471bffeceb 100644
--- a/libavfilter/af_volume.c
+++ b/libavfilter/af_volume.c
@@ -48,9 +48,6 @@ static const char *const var_names[] = {
"nb_channels", ///< number of channels
"nb_consumed_samples", ///< number of samples consumed by the filter
"nb_samples", ///< number of samples in the current frame
-#if FF_API_FRAME_PKT
- "pos", ///< position in the file of the frame
-#endif
"pts", ///< frame presentation timestamp
"sample_rate", ///< sample rate
"startpts", ///< PTS at start of stream
@@ -289,9 +286,6 @@ static int config_output(AVFilterLink *outlink)
vol->var_values[VAR_N] =
vol->var_values[VAR_NB_CONSUMED_SAMPLES] =
vol->var_values[VAR_NB_SAMPLES] =
-#if FF_API_FRAME_PKT
- vol->var_values[VAR_POS] =
-#endif
vol->var_values[VAR_PTS] =
vol->var_values[VAR_STARTPTS] =
vol->var_values[VAR_STARTT] =
@@ -383,15 +377,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
vol->var_values[VAR_T ] = TS2T(buf->pts, inlink->time_base);
vol->var_values[VAR_N ] = inl->frame_count_out;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- {
- int64_t pos;
- pos = buf->pkt_pos;
- vol->var_values[VAR_POS] = pos == -1 ? NAN : pos;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (vol->eval_mode == EVAL_MODE_FRAME)
set_volume(ctx);
diff --git a/libavfilter/af_volume.h b/libavfilter/af_volume.h
index c3756ee969..e9527eea8a 100644
--- a/libavfilter/af_volume.h
+++ b/libavfilter/af_volume.h
@@ -47,9 +47,6 @@ enum VolumeVarName {
VAR_NB_CHANNELS,
VAR_NB_CONSUMED_SAMPLES,
VAR_NB_SAMPLES,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_PTS,
VAR_SAMPLE_RATE,
VAR_STARTPTS,
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index cac5cf8997..64c1075c40 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -550,9 +550,6 @@ static int request_frame_to_filter(AVFilterLink *link)
static const char *const var_names[] = {
"t",
"n",
-#if FF_API_FRAME_PKT
- "pos",
-#endif
"w",
"h",
NULL
@@ -561,9 +558,6 @@ static const char *const var_names[] = {
enum {
VAR_T,
VAR_N,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_W,
VAR_H,
VAR_VARS_NB
@@ -1012,11 +1006,6 @@ static int evaluate_timeline_at_frame(AVFilterLink *link, const AVFrame *frame)
AVFilterContext *dstctx = link->dst;
FFFilterContext *dsti = fffilterctx(dstctx);
int64_t pts = frame->pts;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- int64_t pos = frame->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (!dstctx->enable_str)
return 1;
@@ -1025,9 +1014,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
dsti->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base);
dsti->var_values[VAR_W] = link->w;
dsti->var_values[VAR_H] = link->h;
-#if FF_API_FRAME_PKT
- dsti->var_values[VAR_POS] = pos == -1 ? NAN : pos;
-#endif
return fabs(av_expr_eval(dsti->enable, dsti->var_values, NULL)) >= 0.5;
}
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index 1f2a9a59fc..aa374c6ad0 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -82,9 +82,6 @@ static const char *const var_names[] = {
"prev_selected_n", ///< number of the last selected frame
"key", ///< tell if the frame is a key frame
-#if FF_API_FRAME_PKT
- "pos", ///< original position in the file of the frame
-#endif
"scene",
@@ -141,9 +138,6 @@ enum var_name {
VAR_PREV_SELECTED_N,
VAR_KEY,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_SCENE,
@@ -358,11 +352,6 @@ static void select_frame(AVFilterContext *ctx, AVFrame *frame)
select->var_values[VAR_N ] = inl->frame_count_out;
select->var_values[VAR_PTS] = TS2D(frame->pts);
select->var_values[VAR_T ] = TS2D(frame->pts) * av_q2d(inlink->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- select->var_values[VAR_POS] = frame->pkt_pos == -1 ? NAN : frame->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
select->var_values[VAR_KEY] = !!(frame->flags & AV_FRAME_FLAG_KEY);
select->var_values[VAR_CONCATDEC_SELECT] = get_concatdec_select(frame, av_rescale_q(frame->pts, inlink->time_base, AV_TIME_BASE_Q));
diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
index d5d72e6410..9201fb5381 100644
--- a/libavfilter/f_sendcmd.c
+++ b/libavfilter/f_sendcmd.c
@@ -44,9 +44,6 @@
static const char *const var_names[] = {
"N", /* frame number */
"T", /* frame time in seconds */
-#if FF_API_FRAME_PKT
- "POS", /* original position in the file of the frame */
-#endif
"PTS", /* frame pts */
"TS", /* interval start time in seconds */
"TE", /* interval end time in seconds */
@@ -59,9 +56,6 @@ static const char *const var_names[] = {
enum var_name {
VAR_N,
VAR_T,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_PTS,
VAR_TS,
VAR_TE,
@@ -537,11 +531,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *ref)
double current = TS2T(ref->pts, inlink->time_base);
var_values[VAR_N] = inl->frame_count_in;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- var_values[VAR_POS] = ref->pkt_pos == -1 ? NAN : ref->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
var_values[VAR_PTS] = TS2D(ref->pts);
var_values[VAR_T] = current;
var_values[VAR_TS] = start;
diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
index 397be5c817..0565533ed2 100644
--- a/libavfilter/setpts.c
+++ b/libavfilter/setpts.c
@@ -44,9 +44,6 @@ static const char *const var_names[] = {
"N", ///< frame / sample number (starting at zero)
"NB_CONSUMED_SAMPLES", ///< number of samples consumed by the filter (only audio)
"NB_SAMPLES", ///< number of samples in the current frame (only audio)
-#if FF_API_FRAME_PKT
- "POS", ///< original position in the file of the frame
-#endif
"PREV_INPTS", ///< previous input PTS
"PREV_INT", ///< previous input time in seconds
"PREV_OUTPTS", ///< previous output PTS
@@ -72,9 +69,6 @@ enum var_name {
VAR_N,
VAR_NB_CONSUMED_SAMPLES,
VAR_NB_SAMPLES,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_PREV_INPTS,
VAR_PREV_INT,
VAR_PREV_OUTPTS,
@@ -182,11 +176,6 @@ static double eval_pts(SetPTSContext *setpts, AVFilterLink *inlink, AVFrame *fra
}
V(PTS ) = TS2D(pts);
V(T ) = TS2T(pts, inlink->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- V(POS ) = !frame || frame->pkt_pos == -1 ? NAN : frame->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
V(RTCTIME ) = av_gettime();
if (frame) {
diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c
index fd0750c755..fb3f30a758 100644
--- a/libavfilter/vf_crop.c
+++ b/libavfilter/vf_crop.c
@@ -50,9 +50,6 @@ static const char *const var_names[] = {
"x",
"y",
"n", ///< number of frame
-#if FF_API_FRAME_PKT
- "pos", ///< position in the file
-#endif
"t", ///< timestamp expressed in seconds
NULL
};
@@ -70,9 +67,6 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_N,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_T,
VAR_VARS_NB
};
@@ -152,9 +146,6 @@ static int config_input(AVFilterLink *link)
s->var_values[VAR_OUT_H] = s->var_values[VAR_OH] = NAN;
s->var_values[VAR_N] = 0;
s->var_values[VAR_T] = NAN;
-#if FF_API_FRAME_PKT
- s->var_values[VAR_POS] = NAN;
-#endif
av_image_fill_max_pixsteps(s->max_step, NULL, pix_desc);
@@ -267,12 +258,6 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
s->var_values[VAR_N] = l->frame_count_out;
s->var_values[VAR_T] = frame->pts == AV_NOPTS_VALUE ?
NAN : frame->pts * av_q2d(link->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- s->var_values[VAR_POS] = frame->pkt_pos == -1 ?
- NAN : frame->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, NULL);
s->var_values[VAR_Y] = av_expr_eval(s->y_pexpr, s->var_values, NULL);
/* It is necessary if x is expressed from y */
diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index e4662f3a45..6c57652748 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -102,12 +102,6 @@ static const char *const var_names[] = {
"x",
"y",
"pict_type",
-#if FF_API_FRAME_PKT
- "pkt_pos",
-#endif
-#if FF_API_FRAME_PKT
- "pkt_size",
-#endif
"duration",
NULL
};
@@ -150,12 +144,6 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_PICT_TYPE,
-#if FF_API_FRAME_PKT
- VAR_PKT_POS,
-#endif
-#if FF_API_FRAME_PKT
- VAR_PKT_SIZE,
-#endif
VAR_DURATION,
VAR_VARS_NB
};
@@ -1878,12 +1866,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
NAN : frame->pts * av_q2d(inlink->time_base);
s->var_values[VAR_PICT_TYPE] = frame->pict_type;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- s->var_values[VAR_PKT_POS] = frame->pkt_pos;
- s->var_values[VAR_PKT_SIZE] = frame->pkt_size;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
s->var_values[VAR_DURATION] = frame->duration * av_q2d(inlink->time_base);
s->metadata = frame->metadata;
diff --git a/libavfilter/vf_eq.c b/libavfilter/vf_eq.c
index 2d6822348f..c9922c41b1 100644
--- a/libavfilter/vf_eq.c
+++ b/libavfilter/vf_eq.c
@@ -238,14 +238,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
desc = av_pix_fmt_desc_get(inlink->format);
eq->var_values[VAR_N] = inl->frame_count_out;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- {
- int64_t pos = in->pkt_pos;
- eq->var_values[VAR_POS] = pos == -1 ? NAN : pos;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
eq->var_values[VAR_T] = TS2T(in->pts, inlink->time_base);
if (eq->eval_mode == EVAL_MODE_FRAME) {
diff --git a/libavfilter/vf_eq.h b/libavfilter/vf_eq.h
index 50850ea42c..cbca3bc27c 100644
--- a/libavfilter/vf_eq.h
+++ b/libavfilter/vf_eq.h
@@ -30,9 +30,6 @@
static const char *const var_names[] = {
"n", // frame count
-#if FF_API_FRAME_PKT
- "pos", // frame position
-#endif
"r", // frame rate
"t", // timestamp expressed in seconds
NULL
@@ -40,9 +37,6 @@ static const char *const var_names[] = {
enum var_name {
VAR_N,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_R,
VAR_T,
VAR_NB
diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c
index 528b845c6c..8560ed7c17 100644
--- a/libavfilter/vf_overlay.c
+++ b/libavfilter/vf_overlay.c
@@ -55,9 +55,6 @@ static const char *const var_names[] = {
"x",
"y",
"n", ///< number of frame
-#if FF_API_FRAME_PKT
- "pos", ///< position in the file
-#endif
"t", ///< timestamp expressed in seconds
NULL
};
@@ -305,9 +302,6 @@ static int config_input_overlay(AVFilterLink *inlink)
s->var_values[VAR_Y] = NAN;
s->var_values[VAR_N] = 0;
s->var_values[VAR_T] = NAN;
-#if FF_API_FRAME_PKT
- s->var_values[VAR_POS] = NAN;
-#endif
if ((ret = set_expr(&s->x_pexpr, s->x_expr, "x", ctx)) < 0 ||
(ret = set_expr(&s->y_pexpr, s->y_expr, "y", ctx)) < 0)
@@ -897,14 +891,6 @@ static int do_blend(FFFrameSync *fs)
s->var_values[VAR_N] = inl->frame_count_out;
s->var_values[VAR_T] = mainpic->pts == AV_NOPTS_VALUE ?
NAN : mainpic->pts * av_q2d(inlink->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- {
- int64_t pos = mainpic->pkt_pos;
- s->var_values[VAR_POS] = pos == -1 ? NAN : pos;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
s->var_values[VAR_OVERLAY_W] = s->var_values[VAR_OW] = second->width;
s->var_values[VAR_OVERLAY_H] = s->var_values[VAR_OH] = second->height;
diff --git a/libavfilter/vf_overlay.h b/libavfilter/vf_overlay.h
index 59749648c3..3ad378ce42 100644
--- a/libavfilter/vf_overlay.h
+++ b/libavfilter/vf_overlay.h
@@ -34,9 +34,6 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_N,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_T,
VAR_VARS_NB
};
diff --git a/libavfilter/vf_overlay_cuda.c b/libavfilter/vf_overlay_cuda.c
index 8680fc0c4a..4708b34d30 100644
--- a/libavfilter/vf_overlay_cuda.c
+++ b/libavfilter/vf_overlay_cuda.c
@@ -67,9 +67,6 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_N,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_T,
VAR_VARS_NB
};
@@ -88,9 +85,6 @@ static const char *const var_names[] = {
"x",
"y",
"n", ///< number of frame
-#if FF_API_FRAME_PKT
- "pos", ///< position in the file
-#endif
"t", ///< timestamp expressed in seconds
NULL
};
@@ -274,15 +268,6 @@ static int overlay_cuda_blend(FFFrameSync *fs)
ctx->var_values[VAR_T] = input_main->pts == AV_NOPTS_VALUE ?
NAN : input_main->pts * av_q2d(inlink->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- {
- int64_t pos = input_main->pkt_pos;
- ctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
ctx->var_values[VAR_OVERLAY_W] = ctx->var_values[VAR_OW] = input_overlay->width;
ctx->var_values[VAR_OVERLAY_H] = ctx->var_values[VAR_OH] = input_overlay->height;
ctx->var_values[VAR_MAIN_W ] = ctx->var_values[VAR_MW] = input_main->width;
@@ -365,9 +350,6 @@ static int config_input_overlay(AVFilterLink *inlink)
s->var_values[VAR_Y] = NAN;
s->var_values[VAR_N] = 0;
s->var_values[VAR_T] = NAN;
-#if FF_API_FRAME_PKT
- s->var_values[VAR_POS] = NAN;
-#endif
if ((ret = set_expr(&s->x_pexpr, s->x_expr, "x", ctx)) < 0 ||
(ret = set_expr(&s->y_pexpr, s->y_expr, "y", ctx)) < 0)
diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
index 8c03d7fd8d..606bf9ba10 100644
--- a/libavfilter/vf_scale.c
+++ b/libavfilter/vf_scale.c
@@ -57,9 +57,6 @@ static const char *const var_names[] = {
"ovsub",
"n",
"t",
-#if FF_API_FRAME_PKT
- "pos",
-#endif
"ref_w", "rw",
"ref_h", "rh",
"ref_a",
@@ -98,9 +95,6 @@ enum var_name {
VAR_OVSUB,
VAR_N,
VAR_T,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_REF_W, VAR_RW,
VAR_REF_H, VAR_RH,
VAR_REF_A,
@@ -266,9 +260,6 @@ static int check_exprs(AVFilterContext *ctx)
if (scale->eval_mode == EVAL_MODE_INIT &&
(vars_w[VAR_N] || vars_h[VAR_N] ||
vars_w[VAR_T] || vars_h[VAR_T] ||
-#if FF_API_FRAME_PKT
- vars_w[VAR_POS] || vars_h[VAR_POS] ||
-#endif
vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T] ||
vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]) ) {
@@ -790,16 +781,8 @@ static int scale_frame(AVFilterLink *link, AVFrame **frame_in,
if (scale->eval_mode == EVAL_MODE_FRAME &&
!frame_changed &&
!IS_SCALE2REF(ctx) &&
- !(vars_w[VAR_N] || vars_w[VAR_T]
-#if FF_API_FRAME_PKT
- || vars_w[VAR_POS]
-#endif
- ) &&
- !(vars_h[VAR_N] || vars_h[VAR_T]
-#if FF_API_FRAME_PKT
- || vars_h[VAR_POS]
-#endif
- ) &&
+ !(vars_w[VAR_N] || vars_w[VAR_T]) &&
+ !(vars_h[VAR_N] || vars_h[VAR_T]) &&
scale->w && scale->h)
goto scale;
@@ -821,19 +804,9 @@ static int scale_frame(AVFilterLink *link, AVFrame **frame_in,
if (IS_SCALE2REF(ctx)) {
scale->var_values[VAR_S2R_MAIN_N] = inl->frame_count_out;
scale->var_values[VAR_S2R_MAIN_T] = TS2T(in->pts, link->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- scale->var_values[VAR_S2R_MAIN_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
} else {
scale->var_values[VAR_N] = inl->frame_count_out;
scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
link->dst->inputs[0]->format = in->format;
@@ -975,11 +948,6 @@ static int do_scale(FFFrameSync *fs)
if (scale->eval_mode == EVAL_MODE_FRAME) {
scale->var_values[VAR_REF_N] = rl->frame_count_out;
scale->var_values[VAR_REF_T] = TS2T(ref->pts, reflink->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- scale->var_values[VAR_REF_POS] = ref->pkt_pos == -1 ? NAN : ref->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
}
@@ -1040,11 +1008,6 @@ static int filter_frame_ref(AVFilterLink *link, AVFrame *in)
if (scale->eval_mode == EVAL_MODE_FRAME) {
scale->var_values[VAR_N] = l->frame_count_out;
scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
return ff_filter_frame(outlink, in);
diff --git a/libavfilter/vf_scale_npp.c b/libavfilter/vf_scale_npp.c
index 618788bc36..1b1b7b9fc9 100644
--- a/libavfilter/vf_scale_npp.c
+++ b/libavfilter/vf_scale_npp.c
@@ -85,9 +85,6 @@ static const char *const var_names[] = {
"dar",
"n",
"t",
-#if FF_API_FRAME_PKT
- "pos",
-#endif
"main_w",
"main_h",
"main_a",
@@ -95,9 +92,6 @@ static const char *const var_names[] = {
"main_dar", "mdar",
"main_n",
"main_t",
-#if FF_API_FRAME_PKT
- "main_pos",
-#endif
NULL
};
@@ -111,9 +105,6 @@ enum var_name {
VAR_DAR,
VAR_N,
VAR_T,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
VAR_S2R_MAIN_W,
VAR_S2R_MAIN_H,
VAR_S2R_MAIN_A,
@@ -121,9 +112,6 @@ enum var_name {
VAR_S2R_MAIN_DAR, VAR_S2R_MDAR,
VAR_S2R_MAIN_N,
VAR_S2R_MAIN_T,
-#if FF_API_FRAME_PKT
- VAR_S2R_MAIN_POS,
-#endif
VARS_NB
};
@@ -215,11 +203,7 @@ static int check_exprs(AVFilterContext* ctx)
vars_w[VAR_S2R_MAIN_DAR] || vars_h[VAR_S2R_MAIN_DAR] ||
vars_w[VAR_S2R_MDAR] || vars_h[VAR_S2R_MDAR] ||
vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
- vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T]
-#if FF_API_FRAME_PKT
- || vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]
-#endif
- )) {
+ vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T])) {
av_log(ctx, AV_LOG_ERROR, "Expressions with scale2ref_npp variables are not valid in scale_npp filter.\n");
return AVERROR(EINVAL);
}
@@ -227,15 +211,8 @@ static int check_exprs(AVFilterContext* ctx)
if (scale->eval_mode == EVAL_MODE_INIT &&
(vars_w[VAR_N] || vars_h[VAR_N] ||
vars_w[VAR_T] || vars_h[VAR_T] ||
-#if FF_API_FRAME_PKT
- vars_w[VAR_POS] || vars_h[VAR_POS] ||
-#endif
vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
- vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T]
-#if FF_API_FRAME_PKT
- || vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]
-#endif
- ) ) {
+ vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T])) {
av_log(ctx, AV_LOG_ERROR, "Expressions with frame variables 'n', 't', are not valid in init eval_mode.\n");
return AVERROR(EINVAL);
}
@@ -821,16 +798,8 @@ static int nppscale_scale(AVFilterLink *link, AVFrame *out, AVFrame *in)
av_expr_count_vars(s->h_pexpr, vars_h, VARS_NB);
if (s->eval_mode == EVAL_MODE_FRAME && !frame_changed && !IS_SCALE2REF(ctx) &&
- !(vars_w[VAR_N] || vars_w[VAR_T]
-#if FF_API_FRAME_PKT
- || vars_w[VAR_POS]
-#endif
- ) &&
- !(vars_h[VAR_N] || vars_h[VAR_T]
-#if FF_API_FRAME_PKT
- || vars_h[VAR_POS]
-#endif
- ) && s->w && s->h)
+ !(vars_w[VAR_N] || vars_w[VAR_T]) &&
+ !(vars_h[VAR_N] || vars_h[VAR_T]) && s->w && s->h)
goto scale;
if (s->eval_mode == EVAL_MODE_INIT) {
@@ -851,19 +820,9 @@ static int nppscale_scale(AVFilterLink *link, AVFrame *out, AVFrame *in)
if (IS_SCALE2REF(ctx)) {
s->var_values[VAR_S2R_MAIN_N] = inl->frame_count_out;
s->var_values[VAR_S2R_MAIN_T] = TS2T(in->pts, link->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- s->var_values[VAR_S2R_MAIN_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
} else {
s->var_values[VAR_N] = inl->frame_count_out;
s->var_values[VAR_T] = TS2T(in->pts, link->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- s->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
link->format = in->format;
@@ -985,11 +944,6 @@ static int nppscale_filter_frame_ref(AVFilterLink *link, AVFrame *in)
if (scale->eval_mode == EVAL_MODE_FRAME) {
scale->var_values[VAR_N] = inl->frame_count_out;
scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
return ff_filter_frame(outlink, in);
diff --git a/libavfilter/vf_swaprect.c b/libavfilter/vf_swaprect.c
index 83afe49ec1..5d93f51c30 100644
--- a/libavfilter/vf_swaprect.c
+++ b/libavfilter/vf_swaprect.c
@@ -68,16 +68,8 @@ static int query_formats(const AVFilterContext *ctx,
ff_formats_pixdesc_filter(0, reject_flags));
}
-static const char *const var_names[] = { "w", "h", "a", "n", "t",
-#if FF_API_FRAME_PKT
- "pos",
-#endif
- "sar", "dar", NULL };
-enum { VAR_W, VAR_H, VAR_A, VAR_N, VAR_T,
-#if FF_API_FRAME_PKT
- VAR_POS,
-#endif
- VAR_SAR, VAR_DAR, VAR_VARS_NB };
+static const char *const var_names[] = { "w", "h", "a", "n", "t", "sar", "dar", NULL };
+enum { VAR_W, VAR_H, VAR_A, VAR_N, VAR_T, VAR_SAR, VAR_DAR, VAR_VARS_NB };
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
{
@@ -103,11 +95,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
var_values[VAR_DAR] = var_values[VAR_A] * var_values[VAR_SAR];
var_values[VAR_N] = inl->frame_count_out;
var_values[VAR_T] = in->pts == AV_NOPTS_VALUE ? NAN : in->pts * av_q2d(inlink->time_base);
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
ret = av_expr_parse_and_eval(&dw, s->w,
var_names, &var_values[0],
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 492b467ebd..5434021f44 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -69,12 +69,6 @@ static void get_frame_defaults(AVFrame *frame)
frame->pkt_dts = AV_NOPTS_VALUE;
frame->best_effort_timestamp = AV_NOPTS_VALUE;
frame->duration = 0;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_pos = -1;
- frame->pkt_size = -1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->time_base = (AVRational){ 0, 1 };
frame->sample_aspect_ratio = (AVRational){ 0, 1 };
frame->format = -1; /* unknown */
@@ -348,12 +342,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
dst->sample_rate = src->sample_rate;
dst->opaque = src->opaque;
dst->pkt_dts = src->pkt_dts;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->pkt_pos = src->pkt_pos;
- dst->pkt_size = src->pkt_size;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
dst->time_base = src->time_base;
dst->quality = src->quality;
dst->best_effort_timestamp = src->best_effort_timestamp;
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 49260ae2dd..5f89acbe2f 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -716,18 +716,6 @@ typedef struct AVFrame {
*/
int64_t best_effort_timestamp;
-#if FF_API_FRAME_PKT
- /**
- * reordered pos from the last AVPacket that has been input into the decoder
- * - encoding: unused
- * - decoding: Read by user.
- * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user
- * data from packets to frames
- */
- attribute_deprecated
- int64_t pkt_pos;
-#endif
-
/**
* metadata.
* - encoding: Set by user.
@@ -748,20 +736,6 @@ typedef struct AVFrame {
#define FF_DECODE_ERROR_CONCEALMENT_ACTIVE 4
#define FF_DECODE_ERROR_DECODE_SLICES 8
-#if FF_API_FRAME_PKT
- /**
- * size of the corresponding packet containing the compressed
- * frame.
- * It is set to a negative value if unknown.
- * - encoding: unused
- * - decoding: set by libavcodec, read by user.
- * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user
- * data from packets to frames
- */
- attribute_deprecated
- int pkt_size;
-#endif
-
/**
* For hwaccel-format frames, this should be a reference to the
* AVHWFramesContext describing the frame.
diff --git a/libavutil/version.h b/libavutil/version.h
index 4c8282a35c..879444718a 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 60)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 24/30] avutil: remove deprecated FF_API_INTERLACED_FRAME
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (22 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 25/30] avutil: remove deprecated FF_API_FRAME_KEY James Almer
` (10 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-05-04.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/decode.c | 6 ------
libavcodec/encode.c | 8 --------
libavfilter/buffersrc.c | 9 ---------
libavfilter/qsvvpp.c | 5 -----
libavfilter/vf_coreimage.m | 3 ---
libavfilter/vf_deinterlace_vaapi.c | 5 -----
libavfilter/vf_estdif.c | 5 -----
libavfilter/vf_field.c | 5 -----
libavfilter/vf_fieldhint.c | 10 ----------
libavfilter/vf_fieldmatch.c | 10 ----------
libavfilter/vf_fieldorder.c | 5 -----
libavfilter/vf_idet.c | 32 ------------------------------
libavfilter/vf_kerndeint.c | 5 -----
libavfilter/vf_nnedi.c | 5 -----
libavfilter/vf_separatefields.c | 5 -----
libavfilter/vf_setparams.c | 11 ----------
libavfilter/vf_telecine.c | 18 -----------------
libavfilter/vf_tinterlace.c | 23 ---------------------
libavfilter/vf_w3fdif.c | 5 -----
libavfilter/vf_weave.c | 6 ------
libavfilter/vsrc_gradients.c | 5 -----
libavfilter/vsrc_testsrc.c | 5 -----
libavfilter/yadif_common.c | 10 ----------
libavutil/frame.c | 6 ------
libavutil/frame.h | 18 -----------------
libavutil/version.h | 1 -
26 files changed, 226 deletions(-)
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 271345cff1..455adff25c 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -674,12 +674,6 @@ static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame)
FF_DISABLE_DEPRECATION_WARNINGS
frame->key_frame = !!(frame->flags & AV_FRAME_FLAG_KEY);
FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->interlaced_frame = !!(frame->flags & AV_FRAME_FLAG_INTERLACED);
- frame->top_field_first = !!(frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST);
-FF_ENABLE_DEPRECATION_WARNINGS
#endif
frame->best_effort_timestamp = guess_correct_pts(dc,
frame->pts,
diff --git a/libavcodec/encode.c b/libavcodec/encode.c
index 7935bb971b..d831cac13b 100644
--- a/libavcodec/encode.c
+++ b/libavcodec/encode.c
@@ -219,14 +219,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
if (frame->key_frame)
frame->flags |= AV_FRAME_FLAG_KEY;
FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- if (frame->interlaced_frame)
- frame->flags |= AV_FRAME_FLAG_INTERLACED;
- if (frame->top_field_first)
- frame->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST;
-FF_ENABLE_DEPRECATION_WARNINGS
#endif
return 0;
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index 7edec7ee77..d41d1112d4 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -252,15 +252,6 @@ int attribute_align_arg av_buffersrc_add_frame_flags(AVFilterContext *ctx, AVFra
return AVERROR(ENOMEM);
}
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- if (copy->interlaced_frame)
- copy->flags |= AV_FRAME_FLAG_INTERLACED;
- if (copy->top_field_first)
- copy->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
#if FF_API_FRAME_KEY
FF_DISABLE_DEPRECATION_WARNINGS
if (copy->key_frame)
diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
index 67ae23b165..c3685f126c 100644
--- a/libavfilter/qsvvpp.c
+++ b/libavfilter/qsvvpp.c
@@ -536,11 +536,6 @@ static QSVFrame *query_frame(QSVVPPContext *s, AVFilterLink *outlink, const AVFr
mfxExtBuffer *extbuf = s->vpp_param.ExtParam[i];
if (extbuf->BufferId == MFX_EXTBUFF_VPP_DEINTERLACING) {
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out_frame->frame->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out_frame->frame->flags &= ~AV_FRAME_FLAG_INTERLACED;
break;
}
diff --git a/libavfilter/vf_coreimage.m b/libavfilter/vf_coreimage.m
index ec7eaa4b80..9e03c46ce5 100644
--- a/libavfilter/vf_coreimage.m
+++ b/libavfilter/vf_coreimage.m
@@ -304,9 +304,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
#if FF_API_FRAME_KEY
frame->key_frame = 1;
#endif
-#if FF_API_INTERLACED_FRAME
- frame->interlaced_frame = 0;
-#endif
FF_ENABLE_DEPRECATION_WARNINGS
frame->pict_type = AV_PICTURE_TYPE_I;
diff --git a/libavfilter/vf_deinterlace_vaapi.c b/libavfilter/vf_deinterlace_vaapi.c
index e37c2835bb..4bb109336a 100644
--- a/libavfilter/vf_deinterlace_vaapi.c
+++ b/libavfilter/vf_deinterlace_vaapi.c
@@ -304,11 +304,6 @@ static int deint_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
output_frame->pts = input_frame->pts +
ctx->frame_queue[current_frame_index + 1]->pts;
}
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- output_frame->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
output_frame->flags &= ~AV_FRAME_FLAG_INTERLACED;
av_log(avctx, AV_LOG_DEBUG, "Filter output: %s, %ux%u (%"PRId64").\n",
diff --git a/libavfilter/vf_estdif.c b/libavfilter/vf_estdif.c
index 08360533d1..b8289a6e96 100644
--- a/libavfilter/vf_estdif.c
+++ b/libavfilter/vf_estdif.c
@@ -440,11 +440,6 @@ static int filter(AVFilterContext *ctx, AVFrame *in, int64_t pts, int64_t durati
if (!out)
return AVERROR(ENOMEM);
av_frame_copy_props(out, in);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags &= ~AV_FRAME_FLAG_INTERLACED;
out->pts = pts;
out->duration = duration;
diff --git a/libavfilter/vf_field.c b/libavfilter/vf_field.c
index 801fc42ce5..40fcf73bc4 100644
--- a/libavfilter/vf_field.c
+++ b/libavfilter/vf_field.c
@@ -73,11 +73,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *inpicref)
int i;
inpicref->height = outlink->h;
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- inpicref->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
inpicref->flags &= ~AV_FRAME_FLAG_INTERLACED;
for (i = 0; i < field->nb_planes; i++) {
diff --git a/libavfilter/vf_fieldhint.c b/libavfilter/vf_fieldhint.c
index 20f13e34d3..6f4403a48d 100644
--- a/libavfilter/vf_fieldhint.c
+++ b/libavfilter/vf_fieldhint.c
@@ -223,19 +223,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
switch (hint) {
case '+':
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags |= AV_FRAME_FLAG_INTERLACED;
break;
case '-':
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags &= ~AV_FRAME_FLAG_INTERLACED;
break;
case '=':
diff --git a/libavfilter/vf_fieldmatch.c b/libavfilter/vf_fieldmatch.c
index 5e68ad0e49..60b4a602cb 100644
--- a/libavfilter/vf_fieldmatch.c
+++ b/libavfilter/vf_fieldmatch.c
@@ -823,20 +823,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
/* mark the frame we are unable to match properly as interlaced so a proper
* de-interlacer can take the relay */
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->interlaced_frame = interlaced_frame;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (interlaced_frame) {
dst->flags |= AV_FRAME_FLAG_INTERLACED;
av_log(ctx, AV_LOG_WARNING, "Frame #%"PRId64" at %s is still interlaced\n",
outl->frame_count_in, av_ts2timestr(in->pts, &inlink->time_base));
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->top_field_first = field;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (field)
dst->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST;
else
diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c
index dc5cb87517..fe999f27ea 100644
--- a/libavfilter/vf_fieldorder.c
+++ b/libavfilter/vf_fieldorder.c
@@ -142,11 +142,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
}
}
}
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->top_field_first = s->dst_tff;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (s->dst_tff)
out->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST;
else
diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c
index 15ed489eb6..445ecc203a 100644
--- a/libavfilter/vf_idet.c
+++ b/libavfilter/vf_idet.c
@@ -183,28 +183,11 @@ static void filter(AVFilterContext *ctx)
}
if (idet->last_type == TFF){
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- idet->cur->top_field_first = 1;
- idet->cur->interlaced_frame = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
idet->cur->flags |= (AV_FRAME_FLAG_INTERLACED | AV_FRAME_FLAG_TOP_FIELD_FIRST);
}else if(idet->last_type == BFF){
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- idet->cur->top_field_first = 0;
- idet->cur->interlaced_frame = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
idet->cur->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST;
idet->cur->flags |= AV_FRAME_FLAG_INTERLACED;
}else if(idet->last_type == PROGRESSIVE){
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- idet->cur->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
idet->cur->flags &= ~AV_FRAME_FLAG_INTERLACED;
}
@@ -260,11 +243,6 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref)
}
if (idet->analyze_interlaced_flag_done) {
if ((picref->flags & AV_FRAME_FLAG_INTERLACED) && idet->interlaced_flag_accuracy < 0) {
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- picref->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
picref->flags &= ~AV_FRAME_FLAG_INTERLACED;
}
return ff_filter_frame(ctx->outputs[0], picref);
@@ -305,11 +283,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (idet->analyze_interlaced_flag) {
if (idet->cur->flags & AV_FRAME_FLAG_INTERLACED) {
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- idet->cur->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
idet->cur->flags &= ~AV_FRAME_FLAG_INTERLACED;
filter(ctx);
if (idet->last_type == PROGRESSIVE) {
@@ -323,11 +296,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
ff_filter_frame(ctx->outputs[0], av_frame_clone(idet->cur));
if ((idet->next->flags & AV_FRAME_FLAG_INTERLACED) && idet->interlaced_flag_accuracy < 0) {
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- idet->next->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
idet->next->flags &= ~AV_FRAME_FLAG_INTERLACED;
}
idet->analyze_interlaced_flag_done = 1;
diff --git a/libavfilter/vf_kerndeint.c b/libavfilter/vf_kerndeint.c
index d6f65a2dc4..f37e6b05d3 100644
--- a/libavfilter/vf_kerndeint.c
+++ b/libavfilter/vf_kerndeint.c
@@ -142,11 +142,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *inpic)
return AVERROR(ENOMEM);
}
av_frame_copy_props(outpic, inpic);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- outpic->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
outpic->flags &= ~AV_FRAME_FLAG_INTERLACED;
for (plane = 0; plane < 4 && inpic->data[plane] && inpic->linesize[plane]; plane++) {
diff --git a/libavfilter/vf_nnedi.c b/libavfilter/vf_nnedi.c
index 113252ebd0..d3f52b3f94 100644
--- a/libavfilter/vf_nnedi.c
+++ b/libavfilter/vf_nnedi.c
@@ -668,11 +668,6 @@ static int get_frame(AVFilterContext *ctx, int is_second)
if (!dst)
return AVERROR(ENOMEM);
av_frame_copy_props(dst, s->prev);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
dst->flags &= ~AV_FRAME_FLAG_INTERLACED;
dst->pts = s->pts;
diff --git a/libavfilter/vf_separatefields.c b/libavfilter/vf_separatefields.c
index 2933570358..c0c0640dcc 100644
--- a/libavfilter/vf_separatefields.c
+++ b/libavfilter/vf_separatefields.c
@@ -72,11 +72,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *inpicref)
int ret;
inpicref->height = outlink->h;
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- inpicref->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
inpicref->flags &= ~AV_FRAME_FLAG_INTERLACED;
if (!s->second) {
diff --git a/libavfilter/vf_setparams.c b/libavfilter/vf_setparams.c
index 34583b1d10..751750e6c0 100644
--- a/libavfilter/vf_setparams.c
+++ b/libavfilter/vf_setparams.c
@@ -167,19 +167,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
/* set field */
if (s->field_mode == MODE_PROG) {
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->flags &= ~AV_FRAME_FLAG_INTERLACED;
} else if (s->field_mode != MODE_AUTO) {
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->interlaced_frame = 1;
- frame->top_field_first = s->field_mode;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->flags |= AV_FRAME_FLAG_INTERLACED;
if (s->field_mode)
frame->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST;
diff --git a/libavfilter/vf_telecine.c b/libavfilter/vf_telecine.c
index e64e400d9f..292b2ee625 100644
--- a/libavfilter/vf_telecine.c
+++ b/libavfilter/vf_telecine.c
@@ -209,12 +209,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *inpicref)
s->stride[i],
(s->planeheight[i] - !s->first_field + 1) / 2);
}
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame[nout]->interlaced_frame = 1;
- s->frame[nout]->top_field_first = !s->first_field;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
s->frame[nout]->flags |= AV_FRAME_FLAG_INTERLACED;
if (s->first_field)
s->frame[nout]->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST;
@@ -237,12 +231,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
inpicref->data[i], inpicref->linesize[i],
s->stride[i],
s->planeheight[i]);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame[nout]->interlaced_frame = inpicref->interlaced_frame;
- s->frame[nout]->top_field_first = inpicref->top_field_first;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
s->frame[nout]->flags |= (inpicref->flags & (AV_FRAME_FLAG_INTERLACED | AV_FRAME_FLAG_TOP_FIELD_FIRST));
nout++;
len -= 2;
@@ -269,12 +257,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
av_frame_copy_props(frame, inpicref);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->interlaced_frame = interlaced;
- frame->top_field_first = tff;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (interlaced)
frame->flags |= AV_FRAME_FLAG_INTERLACED;
else
diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c
index de7cd88103..8b04926faa 100644
--- a/libavfilter/vf_tinterlace.c
+++ b/libavfilter/vf_tinterlace.c
@@ -405,12 +405,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *picref)
return AVERROR(ENOMEM);
av_frame_copy_props(out, cur);
out->height = outlink->h;
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 1;
- out->top_field_first = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags |= AV_FRAME_FLAG_INTERLACED | AV_FRAME_FLAG_TOP_FIELD_FIRST;
out->sample_aspect_ratio = av_mul_q(cur->sample_aspect_ratio, av_make_q(2, 1));
@@ -479,12 +473,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (!out)
return AVERROR(ENOMEM);
av_frame_copy_props(out, cur);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 1;
- out->top_field_first = tff;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags |= AV_FRAME_FLAG_INTERLACED;
if (tff)
out->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST;
@@ -510,11 +498,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
out = av_frame_clone(cur);
if (!out)
return AVERROR(ENOMEM);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags |= AV_FRAME_FLAG_INTERLACED;
if (cur->pts != AV_NOPTS_VALUE)
out->pts = cur->pts*2;
@@ -530,12 +513,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (!out)
return AVERROR(ENOMEM);
av_frame_copy_props(out, next);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 1;
- out->top_field_first = !tff;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags |= AV_FRAME_FLAG_INTERLACED;
if (tff)
out->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST;
diff --git a/libavfilter/vf_w3fdif.c b/libavfilter/vf_w3fdif.c
index 0635edc7f0..5b4c83bbd9 100644
--- a/libavfilter/vf_w3fdif.c
+++ b/libavfilter/vf_w3fdif.c
@@ -488,11 +488,6 @@ static int filter(AVFilterContext *ctx, int is_second)
if (!out)
return AVERROR(ENOMEM);
av_frame_copy_props(out, s->cur);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags &= ~AV_FRAME_FLAG_INTERLACED;
if (!is_second) {
diff --git a/libavfilter/vf_weave.c b/libavfilter/vf_weave.c
index c978c47ad4..91c98e0e66 100644
--- a/libavfilter/vf_weave.c
+++ b/libavfilter/vf_weave.c
@@ -161,12 +161,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
FFMIN(s->planeheight[1], ff_filter_get_nb_threads(ctx)));
out->pts = s->double_weave ? s->prev->pts : in->pts / 2;
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- out->interlaced_frame = 1;
- out->top_field_first = !s->first_field;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
out->flags |= AV_FRAME_FLAG_INTERLACED;
if (s->first_field)
out->flags &= ~AV_FRAME_FLAG_TOP_FIELD_FIRST;
diff --git a/libavfilter/vsrc_gradients.c b/libavfilter/vsrc_gradients.c
index 0c5a9dbf53..d4dc2b1bc5 100644
--- a/libavfilter/vsrc_gradients.c
+++ b/libavfilter/vsrc_gradients.c
@@ -415,11 +415,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
#endif
frame->flags |= AV_FRAME_FLAG_KEY;
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->flags &= ~AV_FRAME_FLAG_INTERLACED;
frame->pict_type = AV_PICTURE_TYPE_I;
frame->sample_aspect_ratio = (AVRational) {1, 1};
diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index c842cacceb..ef51161adb 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -205,11 +205,6 @@ static int activate(AVFilterContext *ctx)
frame->pts = test->pts;
frame->duration = 1;
frame->flags |= AV_FRAME_FLAG_KEY;
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->flags &= ~AV_FRAME_FLAG_INTERLACED;
frame->pict_type = AV_PICTURE_TYPE_I;
frame->sample_aspect_ratio = test->sar;
diff --git a/libavfilter/yadif_common.c b/libavfilter/yadif_common.c
index 059b44ba22..a6cd981684 100644
--- a/libavfilter/yadif_common.c
+++ b/libavfilter/yadif_common.c
@@ -44,11 +44,6 @@ static int return_frame(AVFilterContext *ctx, int is_second)
return AVERROR(ENOMEM);
av_frame_copy_props(yadif->out, yadif->cur);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- yadif->out->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
yadif->out->flags &= ~AV_FRAME_FLAG_INTERLACED;
if (yadif->current_field == YADIF_FIELD_BACK_END)
yadif->current_field = YADIF_FIELD_END;
@@ -164,11 +159,6 @@ int ff_yadif_filter_frame(AVFilterLink *link, AVFrame *frame)
return AVERROR(ENOMEM);
av_frame_copy_props(yadif->out, yadif->cur);
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- yadif->out->interlaced_frame = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
yadif->out->flags &= ~AV_FRAME_FLAG_INTERLACED;
if (yadif->out->pts != AV_NOPTS_VALUE)
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 5434021f44..b745a7df01 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -328,12 +328,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
dst->pts = src->pts;
dst->duration = src->duration;
dst->repeat_pict = src->repeat_pict;
-#if FF_API_INTERLACED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->interlaced_frame = src->interlaced_frame;
- dst->top_field_first = src->top_field_first;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
#if FF_API_PALETTE_HAS_CHANGED
FF_DISABLE_DEPRECATION_WARNINGS
dst->palette_has_changed = src->palette_has_changed;
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 5f89acbe2f..a6667aadce 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -577,24 +577,6 @@ typedef struct AVFrame {
*/
int repeat_pict;
-#if FF_API_INTERLACED_FRAME
- /**
- * The content of the picture is interlaced.
- *
- * @deprecated Use AV_FRAME_FLAG_INTERLACED instead
- */
- attribute_deprecated
- int interlaced_frame;
-
- /**
- * If the content is interlaced, is top field displayed first.
- *
- * @deprecated Use AV_FRAME_FLAG_TOP_FIELD_FIRST instead
- */
- attribute_deprecated
- int top_field_first;
-#endif
-
#if FF_API_PALETTE_HAS_CHANGED
/**
* Tell user application that palette has changed from previous frame.
diff --git a/libavutil/version.h b/libavutil/version.h
index 879444718a..f4fc2e4855 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 25/30] avutil: remove deprecated FF_API_FRAME_KEY
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (23 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 24/30] avutil: remove deprecated FF_API_INTERLACED_FRAME James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 26/30] avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED James Almer
` (9 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-05-04.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/decode.c | 5 -----
libavcodec/encode.c | 7 -------
libavfilter/buffersrc.c | 7 -------
libavfilter/vf_coreimage.m | 7 -------
libavfilter/vsrc_gradients.c | 6 ------
libavutil/frame.c | 5 -----
libavutil/frame.h | 10 ----------
libavutil/version.h | 1 -
8 files changed, 48 deletions(-)
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 455adff25c..794f14f18d 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -670,11 +670,6 @@ static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame)
return ret;
}
-#if FF_API_FRAME_KEY
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->key_frame = !!(frame->flags & AV_FRAME_FLAG_KEY);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->best_effort_timestamp = guess_correct_pts(dc,
frame->pts,
frame->pkt_dts);
diff --git a/libavcodec/encode.c b/libavcodec/encode.c
index d831cac13b..72dfa8867a 100644
--- a/libavcodec/encode.c
+++ b/libavcodec/encode.c
@@ -214,13 +214,6 @@ int ff_encode_get_frame(AVCodecContext *avctx, AVFrame *frame)
av_frame_move_ref(frame, avci->buffer_frame);
-#if FF_API_FRAME_KEY
-FF_DISABLE_DEPRECATION_WARNINGS
- if (frame->key_frame)
- frame->flags |= AV_FRAME_FLAG_KEY;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
return 0;
}
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index d41d1112d4..af27306b3b 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -252,13 +252,6 @@ int attribute_align_arg av_buffersrc_add_frame_flags(AVFilterContext *ctx, AVFra
return AVERROR(ENOMEM);
}
-#if FF_API_FRAME_KEY
-FF_DISABLE_DEPRECATION_WARNINGS
- if (copy->key_frame)
- copy->flags |= AV_FRAME_FLAG_KEY;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (copy->colorspace == AVCOL_SPC_UNSPECIFIED)
copy->colorspace = ctx->outputs[0]->colorspace;
if (copy->color_range == AVCOL_RANGE_UNSPECIFIED)
diff --git a/libavfilter/vf_coreimage.m b/libavfilter/vf_coreimage.m
index 9e03c46ce5..dfa8758ce9 100644
--- a/libavfilter/vf_coreimage.m
+++ b/libavfilter/vf_coreimage.m
@@ -299,13 +299,6 @@ static int request_frame(AVFilterLink *link)
frame->duration = 1;
frame->flags |= AV_FRAME_FLAG_KEY;
frame->flags &= ~AV_FRAME_FLAG_INTERLACED;
-
-FF_DISABLE_DEPRECATION_WARNINGS
-#if FF_API_FRAME_KEY
- frame->key_frame = 1;
-#endif
-FF_ENABLE_DEPRECATION_WARNINGS
-
frame->pict_type = AV_PICTURE_TYPE_I;
frame->sample_aspect_ratio = ctx->sar;
diff --git a/libavfilter/vsrc_gradients.c b/libavfilter/vsrc_gradients.c
index d4dc2b1bc5..cb1b73773f 100644
--- a/libavfilter/vsrc_gradients.c
+++ b/libavfilter/vsrc_gradients.c
@@ -408,12 +408,6 @@ static int activate(AVFilterContext *ctx)
if (!frame)
return AVERROR(ENOMEM);
-#if FF_API_FRAME_KEY
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->key_frame = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
frame->flags |= AV_FRAME_FLAG_KEY;
frame->flags &= ~AV_FRAME_FLAG_INTERLACED;
frame->pict_type = AV_PICTURE_TYPE_I;
diff --git a/libavutil/frame.c b/libavutil/frame.c
index b745a7df01..45e0df65fa 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -314,11 +314,6 @@ static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy)
{
int ret;
-#if FF_API_FRAME_KEY
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->key_frame = src->key_frame;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
dst->pict_type = src->pict_type;
dst->sample_aspect_ratio = src->sample_aspect_ratio;
dst->crop_top = src->crop_top;
diff --git a/libavutil/frame.h b/libavutil/frame.h
index a6667aadce..60edcc4787 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -496,16 +496,6 @@ typedef struct AVFrame {
*/
int format;
-#if FF_API_FRAME_KEY
- /**
- * 1 -> keyframe, 0-> not
- *
- * @deprecated Use AV_FRAME_FLAG_KEY instead
- */
- attribute_deprecated
- int key_frame;
-#endif
-
/**
* Picture type of the frame.
*/
diff --git a/libavutil/version.h b/libavutil/version.h
index f4fc2e4855..58a25c28cd 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_H274_FILM_GRAIN_VCS (LIBAVUTIL_VERSION_MAJOR < 60)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 26/30] avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (24 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 25/30] avutil: remove deprecated FF_API_FRAME_KEY James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 27/30] avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY James Almer
` (8 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-05-18.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/8bps.c | 7 -------
libavcodec/ansi.c | 10 ----------
libavcodec/bethsoftvideo.c | 5 -----
libavcodec/bfi.c | 10 ----------
libavcodec/bintext.c | 5 -----
libavcodec/bmvvideo.c | 5 -----
libavcodec/brenderpix.c | 12 ------------
libavcodec/c93.c | 5 -----
libavcodec/cdgraphics.c | 5 -----
libavcodec/cdtoons.c | 5 -----
libavcodec/cinepak.c | 7 -------
libavcodec/dds.c | 11 -----------
libavcodec/dfa.c | 5 -----
libavcodec/dsicinvideo.c | 5 -----
libavcodec/dxa.c | 5 -----
libavcodec/flicvideo.c | 5 -----
libavcodec/gemdec.c | 5 -----
libavcodec/idcinvideo.c | 7 -------
libavcodec/imx.c | 10 ----------
libavcodec/interplayvideo.c | 7 -------
libavcodec/jvdec.c | 12 ------------
libavcodec/kmvc.c | 17 -----------------
libavcodec/mscc.c | 5 -----
libavcodec/msrle.c | 8 --------
libavcodec/mss1.c | 5 -----
libavcodec/msvideo1.c | 7 -------
libavcodec/pafvideo.c | 5 -----
libavcodec/pictordec.c | 5 -----
libavcodec/psd.c | 5 -----
libavcodec/qdrw.c | 5 -----
libavcodec/qpeg.c | 7 -------
libavcodec/qtrle.c | 8 --------
libavcodec/rawdec.c | 13 +------------
libavcodec/rscc.c | 7 -------
libavcodec/sga.c | 5 -----
libavcodec/smacker.c | 5 -----
libavcodec/smc.c | 7 -------
libavcodec/targa.c | 5 -----
libavcodec/tiertexseqv.c | 5 -----
libavcodec/tmv.c | 5 -----
libavcodec/tscc.c | 5 -----
libavcodec/vb.c | 5 -----
libavcodec/vqavideo.c | 5 -----
libavcodec/yop.c | 6 ------
libavutil/frame.c | 5 -----
libavutil/frame.h | 8 --------
libavutil/version.h | 1 -
47 files changed, 1 insertion(+), 311 deletions(-)
diff --git a/libavcodec/8bps.c b/libavcodec/8bps.c
index 0060c46d09..7a01633c9a 100644
--- a/libavcodec/8bps.c
+++ b/libavcodec/8bps.c
@@ -114,14 +114,7 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
}
if (avctx->bits_per_coded_sample <= 8) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed =
-#endif
ff_copy_palette(c->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(frame->data[1], c->pal, AVPALETTE_SIZE);
}
diff --git a/libavcodec/ansi.c b/libavcodec/ansi.c
index d8d32bafbd..b58b72ef49 100644
--- a/libavcodec/ansi.c
+++ b/libavcodec/ansi.c
@@ -262,11 +262,6 @@ static int execute_code(AVCodecContext * avctx, int c)
AV_GET_BUFFER_FLAG_REF)) < 0)
return ret;
s->frame->pict_type = AV_PICTURE_TYPE_I;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
set_palette((uint32_t *)s->frame->data[1]);
erase_screen(avctx);
} else if (c == 'l') {
@@ -375,11 +370,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *rframe,
}
s->frame->pict_type = AV_PICTURE_TYPE_I;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
set_palette((uint32_t *)s->frame->data[1]);
if (!s->first_frame) {
erase_screen(avctx);
diff --git a/libavcodec/bethsoftvideo.c b/libavcodec/bethsoftvideo.c
index 6de502822b..c06eaba32a 100644
--- a/libavcodec/bethsoftvideo.c
+++ b/libavcodec/bethsoftvideo.c
@@ -63,11 +63,6 @@ static int set_palette(BethsoftvidContext *ctx, GetByteContext *g)
palette[a] = 0xFFU << 24 | bytestream2_get_be24u(g) * 4;
palette[a] |= palette[a] >> 6 & 0x30303;
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- ctx->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
return 0;
}
diff --git a/libavcodec/bfi.c b/libavcodec/bfi.c
index 58158f6eee..1d2d3a7204 100644
--- a/libavcodec/bfi.c
+++ b/libavcodec/bfi.c
@@ -83,19 +83,9 @@ static int bfi_decode_frame(AVCodecContext *avctx, AVFrame *frame,
pal++;
}
memcpy(bfi->pal, frame->data[1], sizeof(bfi->pal));
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
} else {
frame->pict_type = AV_PICTURE_TYPE_P;
frame->flags &= ~AV_FRAME_FLAG_KEY;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(frame->data[1], bfi->pal, sizeof(bfi->pal));
}
diff --git a/libavcodec/bintext.c b/libavcodec/bintext.c
index b20d6ce176..b91a741875 100644
--- a/libavcodec/bintext.c
+++ b/libavcodec/bintext.c
@@ -157,11 +157,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
if ((ret = ff_get_buffer(avctx, s->frame, 0)) < 0)
return ret;
s->frame->pict_type = AV_PICTURE_TYPE_I;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(s->frame->data[1], s->palette, 16 * 4);
if (avctx->codec_id == AV_CODEC_ID_XBIN) {
diff --git a/libavcodec/bmvvideo.c b/libavcodec/bmvvideo.c
index 20f07ca556..e83b7e64d6 100644
--- a/libavcodec/bmvvideo.c
+++ b/libavcodec/bmvvideo.c
@@ -251,11 +251,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
}
memcpy(frame->data[1], c->pal, AVPALETTE_SIZE);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = type & BMV_PALETTE;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
outptr = frame->data[0];
srcptr = c->frame;
diff --git a/libavcodec/brenderpix.c b/libavcodec/brenderpix.c
index 07bb47fff9..dd48b40b37 100644
--- a/libavcodec/brenderpix.c
+++ b/libavcodec/brenderpix.c
@@ -245,12 +245,6 @@ static int pix_decode_frame(AVCodecContext *avctx, AVFrame *frame,
*pal_out++ = (0xFFU << 24) | bytestream2_get_be32u(&gb);
bytestream2_skip(&gb, 8);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
chunk_type = bytestream2_get_be32(&gb);
} else if (avctx->pix_fmt == AV_PIX_FMT_PAL8) {
/* no palette supplied, use the default one */
@@ -260,12 +254,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
av_log(avctx, AV_LOG_WARNING,
"Using default palette, colors might be off.\n");
memcpy(pal_out, std_pal_table, sizeof(uint32_t) * 256);
-
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
data_len = bytestream2_get_be32(&gb);
diff --git a/libavcodec/c93.c b/libavcodec/c93.c
index 2a4fe45958..288b1f0ea7 100644
--- a/libavcodec/c93.c
+++ b/libavcodec/c93.c
@@ -246,11 +246,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *rframe,
for (i = 0; i < 256; i++) {
palette[i] = 0xFFU << 24 | bytestream2_get_be24(&gb);
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- newpic->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
} else {
if (oldpic->data[1])
memcpy(newpic->data[1], oldpic->data[1], 256 * 4);
diff --git a/libavcodec/cdgraphics.c b/libavcodec/cdgraphics.c
index f33f7fbf00..518c75081b 100644
--- a/libavcodec/cdgraphics.c
+++ b/libavcodec/cdgraphics.c
@@ -125,11 +125,6 @@ static void cdg_load_palette(CDGraphicsContext *cc, uint8_t *data, int low)
b = ((color ) & 0x000F) * 17;
palette[i + array_offset] = (uint32_t)cc->alpha[i + array_offset] << 24 | r << 16 | g << 8 | b;
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- cc->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
static int cdg_tile_block(CDGraphicsContext *cc, uint8_t *data, int b)
diff --git a/libavcodec/cdtoons.c b/libavcodec/cdtoons.c
index 89b6d76d84..adc6cf3f44 100644
--- a/libavcodec/cdtoons.c
+++ b/libavcodec/cdtoons.c
@@ -385,11 +385,6 @@ static int cdtoons_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
}
/* first palette entry indicates transparency */
c->pal[0] = 0;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- c->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
}
diff --git a/libavcodec/cinepak.c b/libavcodec/cinepak.c
index 2ec0ce8882..9ec7ac5a8f 100644
--- a/libavcodec/cinepak.c
+++ b/libavcodec/cinepak.c
@@ -476,14 +476,7 @@ static int cinepak_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
return ret;
if (s->palette_video) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed =
-#endif
ff_copy_palette(s->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
if ((ret = cinepak_decode(s)) < 0) {
diff --git a/libavcodec/dds.c b/libavcodec/dds.c
index 2af7f5c98f..bd16b41e49 100644
--- a/libavcodec/dds.c
+++ b/libavcodec/dds.c
@@ -653,11 +653,6 @@ static int dds_decode(AVCodecContext *avctx, AVFrame *frame,
((unsigned)frame->data[1][3+i*4]<<24)
);
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (bytestream2_get_bytes_left(gbc) < frame->height * frame->width / 2) {
av_log(avctx, AV_LOG_ERROR, "Buffer is too small (%d < %d).\n",
@@ -687,12 +682,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
(frame->data[1][0+i*4]<<16)+
((unsigned)frame->data[1][3+i*4]<<24)
);
-
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
if (bytestream2_get_bytes_left(gbc) < frame->height * linesize) {
diff --git a/libavcodec/dfa.c b/libavcodec/dfa.c
index 9114feb0b3..1efaefcb69 100644
--- a/libavcodec/dfa.c
+++ b/libavcodec/dfa.c
@@ -367,11 +367,6 @@ static int dfa_decode_frame(AVCodecContext *avctx, AVFrame *frame,
s->pal[i] = bytestream2_get_be24(&gb) << 2;
s->pal[i] |= 0xFFU << 24 | (s->pal[i] >> 6) & 0x30303;
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
} else if (chunk_type <= 9) {
if (decoder[chunk_type - 2](&gb, s->frame_buf, avctx->width, avctx->height)) {
av_log(avctx, AV_LOG_ERROR, "Error decoding %s chunk\n",
diff --git a/libavcodec/dsicinvideo.c b/libavcodec/dsicinvideo.c
index 10b536d405..7001a195e2 100644
--- a/libavcodec/dsicinvideo.c
+++ b/libavcodec/dsicinvideo.c
@@ -294,11 +294,6 @@ static int cinvideo_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
return res;
memcpy(cin->frame->data[1], cin->palette, sizeof(cin->palette));
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- cin->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
for (y = 0; y < cin->avctx->height; ++y)
memcpy(cin->frame->data[0] + (cin->avctx->height - 1 - y) * cin->frame->linesize[0],
cin->bitmap_table[CIN_CUR_BMP] + y * cin->avctx->width,
diff --git a/libavcodec/dxa.c b/libavcodec/dxa.c
index 59e2411d8e..3a53d3496e 100644
--- a/libavcodec/dxa.c
+++ b/libavcodec/dxa.c
@@ -230,11 +230,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
if ((ret = ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF)) < 0)
return ret;
memcpy(frame->data[1], c->pal, AVPALETTE_SIZE);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = pc;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
outptr = frame->data[0];
srcptr = c->decomp_buf;
diff --git a/libavcodec/flicvideo.c b/libavcodec/flicvideo.c
index 43f3f83bf6..f17e61a9f2 100644
--- a/libavcodec/flicvideo.c
+++ b/libavcodec/flicvideo.c
@@ -682,11 +682,6 @@ static int flic_decode_frame_8BPP(AVCodecContext *avctx,
/* make the palette available on the way out */
memcpy(s->frame->data[1], s->palette, AVPALETTE_SIZE);
if (s->new_palette) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
s->new_palette = 0;
}
diff --git a/libavcodec/gemdec.c b/libavcodec/gemdec.c
index 5ece2e2ee3..07f01a24a1 100644
--- a/libavcodec/gemdec.c
+++ b/libavcodec/gemdec.c
@@ -182,11 +182,6 @@ static int gem_decode_frame(AVCodecContext *avctx, AVFrame *p,
p->pict_type = AV_PICTURE_TYPE_I;
p->flags |= AV_FRAME_FLAG_KEY;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- p->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
palette = (uint32_t *)p->data[1];
if (tag == AV_RB32("STTT")) {
diff --git a/libavcodec/idcinvideo.c b/libavcodec/idcinvideo.c
index d9e4633548..da17ea35b1 100644
--- a/libavcodec/idcinvideo.c
+++ b/libavcodec/idcinvideo.c
@@ -224,14 +224,7 @@ static int idcin_decode_frame(AVCodecContext *avctx, AVFrame *frame,
if (idcin_decode_vlcs(s, frame))
return AVERROR_INVALIDDATA;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed =
-#endif
ff_copy_palette(s->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
/* make the palette available on the way out */
memcpy(frame->data[1], s->pal, AVPALETTE_SIZE);
diff --git a/libavcodec/imx.c b/libavcodec/imx.c
index 0d9d9b5bb9..9f7f2aa829 100644
--- a/libavcodec/imx.c
+++ b/libavcodec/imx.c
@@ -58,19 +58,9 @@ static int imx_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
return ret;
if (ff_copy_palette(imx->pal, avpkt, avctx)) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->flags |= AV_FRAME_FLAG_KEY;
} else {
frame->flags &= ~AV_FRAME_FLAG_KEY;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
bytestream2_init(&gb, avpkt->data, avpkt->size);
diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c
index 9c13707f87..a3bd931264 100644
--- a/libavcodec/interplayvideo.c
+++ b/libavcodec/interplayvideo.c
@@ -1315,14 +1315,7 @@ static int ipvideo_decode_frame(AVCodecContext *avctx, AVFrame *frame,
return ret;
if (!s->is_16bpp) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed =
-#endif
ff_copy_palette(s->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
switch (frame_format) {
diff --git a/libavcodec/jvdec.c b/libavcodec/jvdec.c
index 2b7c9f0d29..d8c78cd18f 100644
--- a/libavcodec/jvdec.c
+++ b/libavcodec/jvdec.c
@@ -37,9 +37,6 @@ typedef struct JvContext {
BlockDSPContext bdsp;
AVFrame *frame;
uint32_t palette[AVPALETTE_COUNT];
-#if FF_API_PALETTE_HAS_CHANGED
- int palette_has_changed;
-#endif
} JvContext;
static av_cold int decode_init(AVCodecContext *avctx)
@@ -209,18 +206,9 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *rframe,
s->palette[i] = 0xFFU << 24 | pal << 2 | ((pal >> 4) & 0x30303);
buf += 3;
}
-#if FF_API_PALETTE_HAS_CHANGED
- s->palette_has_changed = 1;
-#endif
}
if (video_size) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed = s->palette_has_changed;
- s->palette_has_changed = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(s->frame->data[1], s->palette, AVPALETTE_SIZE);
if ((ret = av_frame_ref(rframe, s->frame)) < 0)
diff --git a/libavcodec/kmvc.c b/libavcodec/kmvc.c
index 83aba4b252..15a0bc59ef 100644
--- a/libavcodec/kmvc.c
+++ b/libavcodec/kmvc.c
@@ -273,14 +273,7 @@ static int decode_frame(AVCodecContext * avctx, AVFrame *frame,
if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
return ret;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed =
-#endif
ff_copy_palette(ctx->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
header = bytestream2_get_byte(&ctx->g);
@@ -303,11 +296,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
if (header & KMVC_PALETTE) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
// palette starts from index 1 and has 127 entries
for (i = 1; i <= ctx->palsize; i++) {
ctx->pal[i] = 0xFFU << 24 | bytestream2_get_be24(&ctx->g);
@@ -316,11 +304,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (ctx->setpal) {
ctx->setpal = 0;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
/* make the palette available on the way out */
diff --git a/libavcodec/mscc.c b/libavcodec/mscc.c
index 6d57f1b622..708e84a8e1 100644
--- a/libavcodec/mscc.c
+++ b/libavcodec/mscc.c
@@ -184,11 +184,6 @@ inflate_error:
const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, &size);
if (pal && size == AVPALETTE_SIZE) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
for (j = 0; j < 256; j++)
s->pal[j] = 0xFF000000 | AV_RL32(pal + j * 4);
} else if (pal) {
diff --git a/libavcodec/msrle.c b/libavcodec/msrle.c
index 51e843e4a6..288f0d768a 100644
--- a/libavcodec/msrle.c
+++ b/libavcodec/msrle.c
@@ -95,15 +95,7 @@ static int msrle_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
return ret;
if (avctx->bits_per_coded_sample > 1 && avctx->bits_per_coded_sample <= 8) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed =
-#endif
ff_copy_palette(s->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
/* make the palette available */
memcpy(s->frame->data[1], s->pal, AVPALETTE_SIZE);
}
diff --git a/libavcodec/mss1.c b/libavcodec/mss1.c
index 5460673133..ffee7469d4 100644
--- a/libavcodec/mss1.c
+++ b/libavcodec/mss1.c
@@ -178,11 +178,6 @@ static int mss1_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
if (c->corrupted)
return AVERROR_INVALIDDATA;
memcpy(ctx->pic->data[1], c->pal, AVPALETTE_SIZE);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- ctx->pic->palette_has_changed = pal_changed;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if ((ret = av_frame_ref(rframe, ctx->pic)) < 0)
return ret;
diff --git a/libavcodec/msvideo1.c b/libavcodec/msvideo1.c
index ca4583d841..27ec26f3a2 100644
--- a/libavcodec/msvideo1.c
+++ b/libavcodec/msvideo1.c
@@ -312,14 +312,7 @@ static int msvideo1_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
return ret;
if (s->mode_8bit) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed =
-#endif
ff_copy_palette(s->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
if (s->mode_8bit)
diff --git a/libavcodec/pafvideo.c b/libavcodec/pafvideo.c
index c17ae9ae4d..d8d6db5219 100644
--- a/libavcodec/pafvideo.c
+++ b/libavcodec/pafvideo.c
@@ -328,11 +328,6 @@ static int paf_video_decode(AVCodecContext *avctx, AVFrame *rframe,
b = b << 2 | b >> 4;
*out++ = (0xFFU << 24) | (r << 16) | (g << 8) | b;
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- c->pic->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
c->dirty[c->current_frame] = 1;
diff --git a/libavcodec/pictordec.c b/libavcodec/pictordec.c
index 845a882454..a6f2a1a342 100644
--- a/libavcodec/pictordec.c
+++ b/libavcodec/pictordec.c
@@ -192,11 +192,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
return ret;
memset(frame->data[0], 0, s->height * frame->linesize[0]);
frame->pict_type = AV_PICTURE_TYPE_I;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
pos_after_pal = bytestream2_tell(&s->g) + esize;
palette = (uint32_t*)frame->data[1];
diff --git a/libavcodec/psd.c b/libavcodec/psd.c
index 3e5bfcd360..9c3e4f6905 100644
--- a/libavcodec/psd.c
+++ b/libavcodec/psd.c
@@ -533,11 +533,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *picture,
}
if (s->color_mode == PSD_INDEXED) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- picture->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(picture->data[1], s->palette, AVPALETTE_SIZE);
}
diff --git a/libavcodec/qdrw.c b/libavcodec/qdrw.c
index ca38f48bd9..fd2d894477 100644
--- a/libavcodec/qdrw.c
+++ b/libavcodec/qdrw.c
@@ -384,11 +384,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *p,
ret = parse_palette(avctx, &gbc, (uint32_t *)p->data[1], colors, flags & 0x8000);
if (ret < 0)
return ret;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- p->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
/* jump to image data */
bytestream2_skip(&gbc, 18);
diff --git a/libavcodec/qpeg.c b/libavcodec/qpeg.c
index 9b4ad8e25d..08bff5c81b 100644
--- a/libavcodec/qpeg.c
+++ b/libavcodec/qpeg.c
@@ -297,14 +297,7 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *p,
}
/* make the palette available on the way out */
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- p->palette_has_changed =
-#endif
ff_copy_palette(a->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(p->data[1], a->pal, AVPALETTE_SIZE);
if ((ret = av_frame_replace(ref, p)) < 0)
diff --git a/libavcodec/qtrle.c b/libavcodec/qtrle.c
index 9b016d7e83..be105bdfb6 100644
--- a/libavcodec/qtrle.c
+++ b/libavcodec/qtrle.c
@@ -537,15 +537,7 @@ static int qtrle_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
}
if(has_palette) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed =
-#endif
ff_copy_palette(s->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
/* make the palette available on the way out */
memcpy(s->frame->data[1], s->pal, AVPALETTE_SIZE);
}
diff --git a/libavcodec/rawdec.c b/libavcodec/rawdec.c
index b02edac371..53d1fba583 100644
--- a/libavcodec/rawdec.c
+++ b/libavcodec/rawdec.c
@@ -368,24 +368,13 @@ static int raw_decode(AVCodecContext *avctx, AVFrame *frame,
return ret;
}
- if (ff_copy_palette(context->palette->data, avpkt, avctx)) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
- } else if (context->is_nut_pal8) {
+ if (!ff_copy_palette(context->palette->data, avpkt, avctx) && context->is_nut_pal8) {
int vid_size = avctx->width * avctx->height;
int pal_size = avpkt->size - vid_size;
if (avpkt->size > vid_size && pal_size <= AVPALETTE_SIZE) {
const uint8_t *pal = avpkt->data + vid_size;
memcpy(context->palette->data, pal, pal_size);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
}
}
diff --git a/libavcodec/rscc.c b/libavcodec/rscc.c
index e601ff39ed..3715e1c6d4 100644
--- a/libavcodec/rscc.c
+++ b/libavcodec/rscc.c
@@ -347,14 +347,7 @@ static int rscc_decode_frame(AVCodecContext *avctx, AVFrame *frame,
/* Palette handling */
if (avctx->pix_fmt == AV_PIX_FMT_PAL8) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed =
-#endif
ff_copy_palette(ctx->palette, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(frame->data[1], ctx->palette, AVPALETTE_SIZE);
}
// We only return a picture when enough of it is undamaged, this avoids copying nearly broken frames around
diff --git a/libavcodec/sga.c b/libavcodec/sga.c
index 5d913a28b4..b6902452d3 100644
--- a/libavcodec/sga.c
+++ b/libavcodec/sga.c
@@ -501,11 +501,6 @@ static int sga_decode_frame(AVCodecContext *avctx, AVFrame *frame,
}
memcpy(frame->data[1], s->pal, AVPALETTE_SIZE);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->pict_type = AV_PICTURE_TYPE_I;
frame->flags |= AV_FRAME_FLAG_KEY;
diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
index 8f198d6957..db464dfcf7 100644
--- a/libavcodec/smacker.c
+++ b/libavcodec/smacker.c
@@ -393,11 +393,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *rframe,
pal = (uint32_t*)smk->pic->data[1];
bytestream2_init(&gb2, avpkt->data, avpkt->size);
flags = bytestream2_get_byteu(&gb2);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- smk->pic->palette_has_changed = flags & 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (flags & 2) {
smk->pic->flags |= AV_FRAME_FLAG_KEY;
smk->pic->pict_type = AV_PICTURE_TYPE_I;
diff --git a/libavcodec/smc.c b/libavcodec/smc.c
index 3e8a89ced1..673d7a5e18 100644
--- a/libavcodec/smc.c
+++ b/libavcodec/smc.c
@@ -437,14 +437,7 @@ static int smc_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0)
return ret;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed =
-#endif
ff_copy_palette(s->pal, avpkt, avctx);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
bytestream2_init(&gb, buf, buf_size);
ret = smc_decode_stream(s, &gb);
diff --git a/libavcodec/targa.c b/libavcodec/targa.c
index 59fdc428d9..7e016ea4af 100644
--- a/libavcodec/targa.c
+++ b/libavcodec/targa.c
@@ -249,11 +249,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *p,
}
break;
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- p->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
}
diff --git a/libavcodec/tiertexseqv.c b/libavcodec/tiertexseqv.c
index cdc885558b..31acc9b438 100644
--- a/libavcodec/tiertexseqv.c
+++ b/libavcodec/tiertexseqv.c
@@ -182,11 +182,6 @@ static int seqvideo_decode(SeqVideoContext *seq, const unsigned char *data, int
c[j] = (*data << 2) | (*data >> 4);
palette[i] = 0xFFU << 24 | AV_RB24(c);
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- seq->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
if (flags & 2) {
diff --git a/libavcodec/tmv.c b/libavcodec/tmv.c
index 2ff1424bd8..ebd0e0b0bc 100644
--- a/libavcodec/tmv.c
+++ b/libavcodec/tmv.c
@@ -58,11 +58,6 @@ static int tmv_decode_frame(AVCodecContext *avctx, AVFrame *frame,
dst = frame->data[0];
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(frame->data[1], ff_cga_palette, 16 * 4);
memset(frame->data[1] + 16 * 4, 0, AVPALETTE_SIZE - 16 * 4);
diff --git a/libavcodec/tscc.c b/libavcodec/tscc.c
index 575173698c..99bb0307b0 100644
--- a/libavcodec/tscc.c
+++ b/libavcodec/tscc.c
@@ -107,11 +107,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *rframe,
/* make the palette available on the way out */
if (c->avctx->pix_fmt == AV_PIX_FMT_PAL8) {
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = palette_has_changed;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
memcpy(frame->data[1], c->pal, AVPALETTE_SIZE);
}
diff --git a/libavcodec/vb.c b/libavcodec/vb.c
index 0a9528a8d2..42d6f26f6c 100644
--- a/libavcodec/vb.c
+++ b/libavcodec/vb.c
@@ -231,11 +231,6 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
}
memcpy(frame->data[1], c->pal, AVPALETTE_SIZE);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = flags & VB_HAS_PALETTE;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
outptr = frame->data[0];
srcptr = c->frame;
diff --git a/libavcodec/vqavideo.c b/libavcodec/vqavideo.c
index 4fd1861d25..b81d13ea67 100644
--- a/libavcodec/vqavideo.c
+++ b/libavcodec/vqavideo.c
@@ -810,11 +810,6 @@ static int vqa_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
/* make the palette available on the way out */
memcpy(s->frame->data[1], s->palette, PALETTE_COUNT * 4);
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- s->frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
} else if (avctx->pix_fmt == AV_PIX_FMT_RGB555LE) {
if ((res = vqa_decode_frame_hicolor(s, s->frame)) < 0)
return res;
diff --git a/libavcodec/yop.c b/libavcodec/yop.c
index 77b8d6e055..225bc71f5d 100644
--- a/libavcodec/yop.c
+++ b/libavcodec/yop.c
@@ -232,12 +232,6 @@ static int yop_decode_frame(AVCodecContext *avctx, AVFrame *rframe,
(palette[i + firstcolor] >> 6) & 0x30303;
}
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->palette_has_changed = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
for (y = 0; y < avctx->height; y += 2) {
for (x = 0; x < avctx->width; x += 2) {
if (s->srcptr - avpkt->data >= avpkt->size) {
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 45e0df65fa..1eceab2251 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -323,11 +323,6 @@ static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy)
dst->pts = src->pts;
dst->duration = src->duration;
dst->repeat_pict = src->repeat_pict;
-#if FF_API_PALETTE_HAS_CHANGED
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->palette_has_changed = src->palette_has_changed;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
dst->sample_rate = src->sample_rate;
dst->opaque = src->opaque;
dst->pkt_dts = src->pkt_dts;
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 60edcc4787..4305fd9f4c 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -567,14 +567,6 @@ typedef struct AVFrame {
*/
int repeat_pict;
-#if FF_API_PALETTE_HAS_CHANGED
- /**
- * Tell user application that palette has changed from previous frame.
- */
- attribute_deprecated
- int palette_has_changed;
-#endif
-
/**
* Sample rate of the audio data.
*/
diff --git a/libavutil/version.h b/libavutil/version.h
index 58a25c28cd..70c2ab925b 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_H274_FILM_GRAIN_VCS (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 60)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 27/30] avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (25 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 26/30] avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 28/30] avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS James Almer
` (7 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2023-05-28.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/hwcontext_vulkan.h | 5 -----
libavutil/version.h | 1 -
2 files changed, 6 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.h b/libavutil/hwcontext_vulkan.h
index 2688a4757b..6ab74579ac 100644
--- a/libavutil/hwcontext_vulkan.h
+++ b/libavutil/hwcontext_vulkan.h
@@ -197,11 +197,6 @@ typedef enum AVVkFrameFlags {
* device and tiling during av_hwframe_ctx_init(). */
AV_VK_FRAME_FLAG_NONE = (1ULL << 0),
-#if FF_API_VULKAN_CONTIGUOUS_MEMORY
- /* DEPRECATED: does nothing. Replaced by multiplane images. */
- AV_VK_FRAME_FLAG_CONTIGUOUS_MEMORY = (1ULL << 1),
-#endif
-
/* Disables multiplane images.
* This is required to export/import images from CUDA. */
AV_VK_FRAME_FLAG_DISABLE_MULTIPLANE = (1ULL << 2),
diff --git a/libavutil/version.h b/libavutil/version.h
index 70c2ab925b..50466c34d9 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_H274_FILM_GRAIN_VCS (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 60)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 28/30] avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (26 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 27/30] avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 29/30] avutil/version_major: postpone some deprecations until the next bump James Almer
` (6 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Deprecated since 2024-03-23.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/h2645_sei.c | 11 -------
libavutil/film_grain_params.h | 58 ++++++-----------------------------
libavutil/version.h | 1 -
3 files changed, 9 insertions(+), 61 deletions(-)
diff --git a/libavcodec/h2645_sei.c b/libavcodec/h2645_sei.c
index 2494daaf3c..c7950a4a45 100644
--- a/libavcodec/h2645_sei.c
+++ b/libavcodec/h2645_sei.c
@@ -875,17 +875,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
h274->blending_mode_id = fgc->blending_mode_id;
h274->log2_scale_factor = fgc->log2_scale_factor;
-#if FF_API_H274_FILM_GRAIN_VCS
-FF_DISABLE_DEPRECATION_WARNINGS
- h274->bit_depth_luma = fgp->bit_depth_luma;
- h274->bit_depth_chroma = fgp->bit_depth_chroma;
- h274->color_range = fgp->color_range;
- h274->color_primaries = fgp->color_primaries;
- h274->color_trc = fgp->color_trc;
- h274->color_space = fgp->color_space;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
memcpy(&h274->component_model_present, &fgc->comp_model_present_flag,
sizeof(h274->component_model_present));
memcpy(&h274->num_intensity_intervals, &fgc->num_intensity_intervals,
diff --git a/libavutil/film_grain_params.h b/libavutil/film_grain_params.h
index ccacab88fe..7e8d333777 100644
--- a/libavutil/film_grain_params.h
+++ b/libavutil/film_grain_params.h
@@ -136,43 +136,6 @@ typedef struct AVFilmGrainH274Params {
*/
int model_id;
-#if FF_API_H274_FILM_GRAIN_VCS
- /**
- * TODO: On this ABI bump, please also re-order the fields in
- * AVFilmGrainParams (see below)
- */
-
- /**
- * Specifies the bit depth used for the luma component.
- *
- * @deprecated use AVFilmGrainParams.bit_depth_luma.
- */
- attribute_deprecated
- int bit_depth_luma;
-
- /**
- * Specifies the bit depth used for the chroma components.
- *
- * @deprecated use AVFilmGrainParams.bit_depth_chroma.
- */
- attribute_deprecated
- int bit_depth_chroma;
-
- /**
- * Specifies the video signal characteristics.
- *
- * @deprecated use AVFilmGrainParams.color_{range,primaries,trc,space}.
- */
- attribute_deprecated
- enum AVColorRange color_range;
- attribute_deprecated
- enum AVColorPrimaries color_primaries;
- attribute_deprecated
- enum AVColorTransferCharacteristic color_trc;
- attribute_deprecated
- enum AVColorSpace color_space;
-#endif
-
/**
* Specifies the blending mode used to blend the simulated film grain
* with the decoded images.
@@ -249,18 +212,6 @@ typedef struct AVFilmGrainParams {
*/
uint64_t seed;
- /**
- * Additional fields may be added both here and in any structure included.
- * If a codec's film grain structure differs slightly over another
- * codec's, fields within may change meaning depending on the type.
- *
- * TODO: Move this to the end of the structure, at the next ABI bump.
- */
- union {
- AVFilmGrainAOMParams aom;
- AVFilmGrainH274Params h274;
- } codec;
-
/**
* Intended display resolution. May be 0 if the codec does not specify
* any restrictions.
@@ -287,6 +238,15 @@ typedef struct AVFilmGrainParams {
int bit_depth_luma;
int bit_depth_chroma;
+ /**
+ * Additional fields may be added both here and in any structure included.
+ * If a codec's film grain structure differs slightly over another
+ * codec's, fields within may change meaning depending on the type.
+ */
+ union {
+ AVFilmGrainAOMParams aom;
+ AVFilmGrainH274Params h274;
+ } codec;
} AVFilmGrainParams;
/**
diff --git a/libavutil/version.h b/libavutil/version.h
index 50466c34d9..443b4771f6 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_H274_FILM_GRAIN_VCS (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_VULKAN_FIXED_QUEUES (LIBAVUTIL_VERSION_MAJOR < 60)
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 29/30] avutil/version_major: postpone some deprecations until the next bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (27 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 28/30] avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS James Almer
@ 2025-02-23 22:06 ` James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 30/30] libs: bump major version for all libraries James Almer
` (5 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
They are too recent.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/version.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libavutil/version.h b/libavutil/version.h
index 443b4771f6..a29aadcead 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,11 +105,11 @@
* @{
*/
-#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 60)
-#define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 60)
-#define FF_API_VULKAN_FIXED_QUEUES (LIBAVUTIL_VERSION_MAJOR < 60)
-#define FF_API_OPT_INT_LIST (LIBAVUTIL_VERSION_MAJOR < 60)
-#define FF_API_OPT_PTR (LIBAVUTIL_VERSION_MAJOR < 60)
+#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 61)
+#define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 61)
+#define FF_API_VULKAN_FIXED_QUEUES (LIBAVUTIL_VERSION_MAJOR < 61)
+#define FF_API_OPT_INT_LIST (LIBAVUTIL_VERSION_MAJOR < 61)
+#define FF_API_OPT_PTR (LIBAVUTIL_VERSION_MAJOR < 61)
/**
* @}
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH 30/30] libs: bump major version for all libraries
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (28 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 29/30] avutil/version_major: postpone some deprecations until the next bump James Almer
@ 2025-02-23 22:06 ` James Almer
2025-03-26 23:41 ` Wang Bin
2025-02-25 12:29 ` [FFmpeg-devel] [PATCH] avutil/frame: Port AVFrame.private_ref to RefStruct API Andreas Rheinhardt
` (4 subsequent siblings)
34 siblings, 1 reply; 46+ messages in thread
From: James Almer @ 2025-02-23 22:06 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/version.h | 4 ++--
libavcodec/version_major.h | 2 +-
libavdevice/version.h | 2 +-
libavdevice/version_major.h | 2 +-
libavfilter/version.h | 2 +-
libavfilter/version_major.h | 2 +-
libavformat/version.h | 4 ++--
libavformat/version_major.h | 2 +-
libavutil/version.h | 4 ++--
libpostproc/version.h | 2 +-
libpostproc/version_major.h | 2 +-
libswresample/version.h | 2 +-
libswresample/version_major.h | 2 +-
libswscale/version.h | 2 +-
libswscale/version_major.h | 2 +-
15 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 62e7eba3db..8c3d476003 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,8 +29,8 @@
#include "version_major.h"
-#define LIBAVCODEC_VERSION_MINOR 33
-#define LIBAVCODEC_VERSION_MICRO 102
+#define LIBAVCODEC_VERSION_MINOR 0
+#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index b4f4936786..75f9fce9d3 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -25,7 +25,7 @@
* Libavcodec version macros.
*/
-#define LIBAVCODEC_VERSION_MAJOR 61
+#define LIBAVCODEC_VERSION_MAJOR 62
/**
* FF_API_* defines may be placed below to indicate public API that will be
diff --git a/libavdevice/version.h b/libavdevice/version.h
index 0e4ce64598..25befdead1 100644
--- a/libavdevice/version.h
+++ b/libavdevice/version.h
@@ -29,7 +29,7 @@
#include "version_major.h"
-#define LIBAVDEVICE_VERSION_MINOR 4
+#define LIBAVDEVICE_VERSION_MINOR 0
#define LIBAVDEVICE_VERSION_MICRO 100
#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
index 470e5626be..191511cdcc 100644
--- a/libavdevice/version_major.h
+++ b/libavdevice/version_major.h
@@ -25,7 +25,7 @@
* Libavdevice version macros
*/
-#define LIBAVDEVICE_VERSION_MAJOR 61
+#define LIBAVDEVICE_VERSION_MAJOR 62
/**
* FF_API_* defines may be placed below to indicate public API that will be
diff --git a/libavfilter/version.h b/libavfilter/version.h
index 77f38cb9b4..d5a6bc143a 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -31,7 +31,7 @@
#include "version_major.h"
-#define LIBAVFILTER_VERSION_MINOR 9
+#define LIBAVFILTER_VERSION_MINOR 0
#define LIBAVFILTER_VERSION_MICRO 100
diff --git a/libavfilter/version_major.h b/libavfilter/version_major.h
index cd5c01d7c3..af6f59832f 100644
--- a/libavfilter/version_major.h
+++ b/libavfilter/version_major.h
@@ -27,7 +27,7 @@
* Libavfilter version macros
*/
-#define LIBAVFILTER_VERSION_MAJOR 10
+#define LIBAVFILTER_VERSION_MAJOR 11
/**
* FF_API_* defines may be placed below to indicate public API that will be
diff --git a/libavformat/version.h b/libavformat/version.h
index 6ffdf61b43..752aac16f7 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -31,8 +31,8 @@
#include "version_major.h"
-#define LIBAVFORMAT_VERSION_MINOR 9
-#define LIBAVFORMAT_VERSION_MICRO 107
+#define LIBAVFORMAT_VERSION_MINOR 0
+#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index be3e13c334..b5583c9e11 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -29,7 +29,7 @@
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
// Also please add any ticket numbers that you believe might be affected here
-#define LIBAVFORMAT_VERSION_MAJOR 61
+#define LIBAVFORMAT_VERSION_MAJOR 60
/**
* FF_API_* defines may be placed below to indicate public API that will be
diff --git a/libavutil/version.h b/libavutil/version.h
index a29aadcead..6d79b303c6 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -78,8 +78,8 @@
* @{
*/
-#define LIBAVUTIL_VERSION_MAJOR 59
-#define LIBAVUTIL_VERSION_MINOR 57
+#define LIBAVUTIL_VERSION_MAJOR 60
+#define LIBAVUTIL_VERSION_MINOR 0
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
diff --git a/libpostproc/version.h b/libpostproc/version.h
index 4459d251d4..bcbdd210c4 100644
--- a/libpostproc/version.h
+++ b/libpostproc/version.h
@@ -30,7 +30,7 @@
#include "version_major.h"
-#define LIBPOSTPROC_VERSION_MINOR 4
+#define LIBPOSTPROC_VERSION_MINOR 0
#define LIBPOSTPROC_VERSION_MICRO 100
#define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \
diff --git a/libpostproc/version_major.h b/libpostproc/version_major.h
index 8136ee918c..b40b251a73 100644
--- a/libpostproc/version_major.h
+++ b/libpostproc/version_major.h
@@ -26,6 +26,6 @@
* Libpostproc version macros
*/
-#define LIBPOSTPROC_VERSION_MAJOR 58
+#define LIBPOSTPROC_VERSION_MAJOR 59
#endif /* POSTPROC_VERSION_MAJOR_H */
diff --git a/libswresample/version.h b/libswresample/version.h
index 9a514e6d6f..703023094e 100644
--- a/libswresample/version.h
+++ b/libswresample/version.h
@@ -30,7 +30,7 @@
#include "version_major.h"
-#define LIBSWRESAMPLE_VERSION_MINOR 4
+#define LIBSWRESAMPLE_VERSION_MINOR 0
#define LIBSWRESAMPLE_VERSION_MICRO 100
#define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \
diff --git a/libswresample/version_major.h b/libswresample/version_major.h
index dd13f2bbe3..4e0bc0ab19 100644
--- a/libswresample/version_major.h
+++ b/libswresample/version_major.h
@@ -26,6 +26,6 @@
* Libswresample version macros
*/
-#define LIBSWRESAMPLE_VERSION_MAJOR 5
+#define LIBSWRESAMPLE_VERSION_MAJOR 6
#endif /* SWRESAMPLE_VERSION_MAJOR_H */
diff --git a/libswscale/version.h b/libswscale/version.h
index f84fcc160d..148efd83eb 100644
--- a/libswscale/version.h
+++ b/libswscale/version.h
@@ -28,7 +28,7 @@
#include "version_major.h"
-#define LIBSWSCALE_VERSION_MINOR 13
+#define LIBSWSCALE_VERSION_MINOR 0
#define LIBSWSCALE_VERSION_MICRO 100
#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
diff --git a/libswscale/version_major.h b/libswscale/version_major.h
index fd259f959d..0dc507921e 100644
--- a/libswscale/version_major.h
+++ b/libswscale/version_major.h
@@ -24,7 +24,7 @@
* swscale version macros
*/
-#define LIBSWSCALE_VERSION_MAJOR 8
+#define LIBSWSCALE_VERSION_MAJOR 9
/**
* FF_API_* defines may be placed below to indicate public API that will be
--
2.48.1
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 03/30] avcodec: remove deprecated FF_API_DROPCHANGED
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 03/30] avcodec: remove deprecated FF_API_DROPCHANGED James Almer
@ 2025-02-24 9:44 ` Gyan Doshi
2025-03-15 13:51 ` Gyan Doshi
0 siblings, 1 reply; 46+ messages in thread
From: Gyan Doshi @ 2025-02-24 9:44 UTC (permalink / raw)
To: ffmpeg-devel
On 2025-02-24 03:36 am, James Almer wrote:
> Deprecated since 2023-07-15.
Can you wait to push till I port this to ffmpeg_dec?
Regards,
Gyan
>
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> libavcodec/avcodec.c | 4 ---
> libavcodec/avcodec.h | 9 -------
> libavcodec/decode.c | 52 --------------------------------------
> libavcodec/internal.h | 9 -------
> libavcodec/options_table.h | 3 ---
> libavcodec/version_major.h | 1 -
> 6 files changed, 78 deletions(-)
>
> diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
> index e7e2c09222..3f97f5d161 100644
> --- a/libavcodec/avcodec.c
> +++ b/libavcodec/avcodec.c
> @@ -462,10 +462,6 @@ av_cold void ff_codec_close(AVCodecContext *avctx)
>
> av_bsf_free(&avci->bsf);
>
> -#if FF_API_DROPCHANGED
> - av_channel_layout_uninit(&avci->initial_ch_layout);
> -#endif
> -
> #if CONFIG_LCMS2
> ff_icc_context_uninit(&avci->icc);
> #endif
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index f6de3c6b42..c35e65868e 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -234,15 +234,6 @@ typedef struct RcOverride{
> * Use qpel MC.
> */
> #define AV_CODEC_FLAG_QPEL (1 << 4)
> -#if FF_API_DROPCHANGED
> -/**
> - * Don't output frames whose parameters differ from first
> - * decoded frame in stream.
> - *
> - * @deprecated callers should implement this functionality in their own code
> - */
> -#define AV_CODEC_FLAG_DROPCHANGED (1 << 5)
> -#endif
> /**
> * Request the encoder to output reconstructed frames, i.e.\ frames that would
> * be produced by decoding the encoded bistream. These frames may be retrieved
> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> index cac7e620d2..a28279bd36 100644
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -840,53 +840,6 @@ int ff_decode_receive_frame(AVCodecContext *avctx, AVFrame *frame)
>
> avctx->frame_num++;
>
> -#if FF_API_DROPCHANGED
> - if (avctx->flags & AV_CODEC_FLAG_DROPCHANGED) {
> -
> - if (avctx->frame_num == 1) {
> - avci->initial_format = frame->format;
> - switch(avctx->codec_type) {
> - case AVMEDIA_TYPE_VIDEO:
> - avci->initial_width = frame->width;
> - avci->initial_height = frame->height;
> - break;
> - case AVMEDIA_TYPE_AUDIO:
> - avci->initial_sample_rate = frame->sample_rate ? frame->sample_rate :
> - avctx->sample_rate;
> - ret = av_channel_layout_copy(&avci->initial_ch_layout, &frame->ch_layout);
> - if (ret < 0)
> - goto fail;
> - break;
> - }
> - }
> -
> - if (avctx->frame_num > 1) {
> - int changed = avci->initial_format != frame->format;
> -
> - switch(avctx->codec_type) {
> - case AVMEDIA_TYPE_VIDEO:
> - changed |= avci->initial_width != frame->width ||
> - avci->initial_height != frame->height;
> - break;
> - case AVMEDIA_TYPE_AUDIO:
> - changed |= avci->initial_sample_rate != frame->sample_rate ||
> - avci->initial_sample_rate != avctx->sample_rate ||
> - av_channel_layout_compare(&avci->initial_ch_layout, &frame->ch_layout);
> - break;
> - }
> -
> - if (changed) {
> - avci->changed_frames_dropped++;
> - av_log(avctx, AV_LOG_INFO, "dropped changed frame #%"PRId64" pts %"PRId64
> - " drop count: %d \n",
> - avctx->frame_num, frame->pts,
> - avci->changed_frames_dropped);
> - ret = AVERROR_INPUT_CHANGED;
> - goto fail;
> - }
> - }
> - }
> -#endif
> return 0;
> fail:
> av_frame_unref(frame);
> @@ -2065,11 +2018,6 @@ int ff_decode_preinit(AVCodecContext *avctx)
> return ret;
> }
>
> -#if FF_API_DROPCHANGED
> - if (avctx->flags & AV_CODEC_FLAG_DROPCHANGED)
> - av_log(avctx, AV_LOG_WARNING, "The dropchanged flag is deprecated.\n");
> -#endif
> -
> return 0;
> }
>
> diff --git a/libavcodec/internal.h b/libavcodec/internal.h
> index 62a37f473f..137fd52745 100644
> --- a/libavcodec/internal.h
> +++ b/libavcodec/internal.h
> @@ -145,15 +145,6 @@ typedef struct AVCodecInternal {
> AVFrame *buffer_frame;
> int draining_done;
>
> -#if FF_API_DROPCHANGED
> - /* used when avctx flag AV_CODEC_FLAG_DROPCHANGED is set */
> - int changed_frames_dropped;
> - int initial_format;
> - int initial_width, initial_height;
> - int initial_sample_rate;
> - AVChannelLayout initial_ch_layout;
> -#endif
> -
> #if CONFIG_LCMS2
> FFIccContext icc; /* used to read and write embedded ICC profiles */
> #endif
> diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
> index c115d8c18c..1711e56cd3 100644
> --- a/libavcodec/options_table.h
> +++ b/libavcodec/options_table.h
> @@ -74,9 +74,6 @@ static const AVOption avcodec_options[] = {
> {"ilme", "interlaced motion estimation", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_INTERLACED_ME }, INT_MIN, INT_MAX, V|E, .unit = "flags"},
> {"cgop", "closed GOP", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_CLOSED_GOP }, INT_MIN, INT_MAX, V|E, .unit = "flags"},
> {"output_corrupt", "Output even potentially corrupted frames", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_OUTPUT_CORRUPT }, INT_MIN, INT_MAX, V|D, .unit = "flags"},
> -#if FF_API_DROPCHANGED
> -{"drop_changed", "Drop frames whose parameters differ from first decoded frame", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_DROPCHANGED }, INT_MIN, INT_MAX, A|V|D | AV_OPT_FLAG_DEPRECATED, .unit = "flags"},
> -#endif
> {"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT}, 0, UINT_MAX, V|A|E|D|S, .unit = "flags2"},
> {"fast", "allow non-spec-compliant speedup tricks", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_FAST }, INT_MIN, INT_MAX, V|E, .unit = "flags2"},
> {"noout", "skip bitstream encoding", 0, AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_NO_OUTPUT }, INT_MIN, INT_MAX, V|E, .unit = "flags2"},
> diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
> index 3cde4cdd8b..ee3277cb76 100644
> --- a/libavcodec/version_major.h
> +++ b/libavcodec/version_major.h
> @@ -38,7 +38,6 @@
> */
>
> #define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
> -#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62)
>
> #define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
> #define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* [FFmpeg-devel] [PATCH] avutil/frame: Port AVFrame.private_ref to RefStruct API
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (29 preceding siblings ...)
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 30/30] libs: bump major version for all libraries James Almer
@ 2025-02-25 12:29 ` Andreas Rheinhardt
2025-02-25 14:31 ` James Almer
2025-03-15 21:50 ` [FFmpeg-devel] [PATCH 00/31] Major library soname bump Andreas Rheinhardt
` (3 subsequent siblings)
34 siblings, 1 reply; 46+ messages in thread
From: Andreas Rheinhardt @ 2025-02-25 12:29 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1: Type: text/plain, Size: 563 bytes --]
James Almer:
> It's been a year since the last bump, so lets get rid of old deprecated API
> in time for ffmpeg 8.0
>
I want to add the attached patch to that set. There will probably be a
minor conflict with the FF_API_FRAME_KEY patch (your github account
didn't have a branch of this, so I based it on master, not on your
patchset), but that is trivial to fix.
One more thing: Did you check whether you can now remove inclusions of
version*.h and attributes.h (for attribute_deprecated) headers? I don't
see you do this and it is often forgotten.
- Andreas
[-- Attachment #2: 0001-avutil-frame-Port-AVFrame.private_ref-to-RefStruct-A.patch --]
[-- Type: text/x-patch, Size: 13520 bytes --]
From 3a89a0be20d21688f4134cd80eae3bd71cfcd996 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Tue, 25 Feb 2025 12:59:17 +0100
Subject: [PATCH] avutil/frame: Port AVFrame.private_ref to RefStruct API
This is possible without deprecation period, because said field
is documented as only for our libav* libraries and not the general
public.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavcodec/decode.c | 28 +++++++++-------------------
libavcodec/lcevcdec.c | 2 +-
libavcodec/nvdec.c | 8 ++++----
libavcodec/nvdec_av1.c | 2 +-
libavcodec/nvdec_h264.c | 4 ++--
libavcodec/nvdec_hevc.c | 4 ++--
libavcodec/nvdec_mjpeg.c | 2 +-
libavcodec/nvdec_mpeg12.c | 2 +-
libavcodec/nvdec_mpeg4.c | 2 +-
libavcodec/nvdec_vc1.c | 2 +-
libavcodec/nvdec_vp8.c | 2 +-
libavcodec/nvdec_vp9.c | 2 +-
libavcodec/videotoolbox.c | 2 +-
libavutil/frame.c | 12 ++++--------
libavutil/frame.h | 10 +++-------
15 files changed, 33 insertions(+), 51 deletions(-)
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index cac7e620d2..c822bd55f5 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -703,11 +703,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
/* the only case where decode data is not set should be decoders
* that do not call ff_get_buffer() */
- av_assert0((frame->private_ref && frame->private_ref->size == sizeof(FrameDecodeData)) ||
+ av_assert0(frame->private_ref ||
!(avctx->codec->capabilities & AV_CODEC_CAP_DR1));
if (frame->private_ref) {
- FrameDecodeData *fdd = (FrameDecodeData*)frame->private_ref->data;
+ FrameDecodeData *fdd = frame->private_ref;
if (fdd->post_process) {
ret = fdd->post_process(avctx, frame);
@@ -720,7 +720,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
/* free the per-frame decode data */
- av_buffer_unref(&frame->private_ref);
+ av_refstruct_unref(&frame->private_ref);
return ret;
}
@@ -1623,39 +1623,29 @@ static void validate_avframe_allocation(AVCodecContext *avctx, AVFrame *frame)
}
}
-static void decode_data_free(void *opaque, uint8_t *data)
+static void decode_data_free(AVRefStructOpaque unused, void *obj)
{
- FrameDecodeData *fdd = (FrameDecodeData*)data;
+ FrameDecodeData *fdd = obj;
if (fdd->post_process_opaque_free)
fdd->post_process_opaque_free(fdd->post_process_opaque);
if (fdd->hwaccel_priv_free)
fdd->hwaccel_priv_free(fdd->hwaccel_priv);
-
- av_freep(&fdd);
}
int ff_attach_decode_data(AVFrame *frame)
{
- AVBufferRef *fdd_buf;
FrameDecodeData *fdd;
av_assert1(!frame->private_ref);
- av_buffer_unref(&frame->private_ref);
+ av_refstruct_unref(&frame->private_ref);
- fdd = av_mallocz(sizeof(*fdd));
+ fdd = av_refstruct_alloc_ext(sizeof(*fdd), 0, NULL, decode_data_free);
if (!fdd)
return AVERROR(ENOMEM);
- fdd_buf = av_buffer_create((uint8_t*)fdd, sizeof(*fdd), decode_data_free,
- NULL, AV_BUFFER_FLAG_READONLY);
- if (!fdd_buf) {
- av_freep(&fdd);
- return AVERROR(ENOMEM);
- }
-
- frame->private_ref = fdd_buf;
+ frame->private_ref = fdd;
return 0;
}
@@ -1682,7 +1672,7 @@ static void attach_post_process_data(AVCodecContext *avctx, AVFrame *frame)
DecodeContext *dc = decode_ctx(avci);
if (dc->lcevc_frame) {
- FrameDecodeData *fdd = (FrameDecodeData*)frame->private_ref->data;
+ FrameDecodeData *fdd = frame->private_ref;
fdd->post_process_opaque = av_refstruct_ref(dc->lcevc);
fdd->post_process_opaque_free = ff_lcevc_unref;
diff --git a/libavcodec/lcevcdec.c b/libavcodec/lcevcdec.c
index 4ca5dfa0a6..2fe06b8800 100644
--- a/libavcodec/lcevcdec.c
+++ b/libavcodec/lcevcdec.c
@@ -278,7 +278,7 @@ static int lcevc_init(FFLCEVCContext *lcevc, void *logctx)
int ff_lcevc_process(void *logctx, AVFrame *frame)
{
- FrameDecodeData *fdd = (FrameDecodeData*)frame->private_ref->data;
+ FrameDecodeData *fdd = frame->private_ref;
FFLCEVCContext *lcevc = fdd->post_process_opaque;
int ret;
diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
index 99351661ea..d444135fd7 100644
--- a/libavcodec/nvdec.c
+++ b/libavcodec/nvdec.c
@@ -494,7 +494,7 @@ finish:
static int nvdec_retrieve_data(void *logctx, AVFrame *frame)
{
- FrameDecodeData *fdd = (FrameDecodeData*)frame->private_ref->data;
+ FrameDecodeData *fdd = frame->private_ref;
NVDECFrame *cf = (NVDECFrame*)fdd->hwaccel_priv;
NVDECDecoder *decoder = cf->decoder;
@@ -575,7 +575,7 @@ finish:
int ff_nvdec_start_frame(AVCodecContext *avctx, AVFrame *frame)
{
NVDECContext *ctx = avctx->internal->hwaccel_priv_data;
- FrameDecodeData *fdd = (FrameDecodeData*)frame->private_ref->data;
+ FrameDecodeData *fdd = frame->private_ref;
NVDECFrame *cf = NULL;
int ret;
@@ -613,7 +613,7 @@ fail:
int ff_nvdec_start_frame_sep_ref(AVCodecContext *avctx, AVFrame *frame, int has_sep_ref)
{
NVDECContext *ctx = avctx->internal->hwaccel_priv_data;
- FrameDecodeData *fdd = (FrameDecodeData*)frame->private_ref->data;
+ FrameDecodeData *fdd = frame->private_ref;
NVDECFrame *cf;
int ret;
@@ -780,7 +780,7 @@ int ff_nvdec_get_ref_idx(AVFrame *frame)
if (!frame || !frame->private_ref)
return -1;
- fdd = (FrameDecodeData*)frame->private_ref->data;
+ fdd = frame->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
if (!cf)
return -1;
diff --git a/libavcodec/nvdec_av1.c b/libavcodec/nvdec_av1.c
index 6b408edb87..74fcdb6b11 100644
--- a/libavcodec/nvdec_av1.c
+++ b/libavcodec/nvdec_av1.c
@@ -62,7 +62,7 @@ static int nvdec_av1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)cur_frame->private_ref->data;
+ fdd = cur_frame->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/nvdec_h264.c b/libavcodec/nvdec_h264.c
index 1ae3dfd032..51813e1abe 100644
--- a/libavcodec/nvdec_h264.c
+++ b/libavcodec/nvdec_h264.c
@@ -34,7 +34,7 @@
static void dpb_add(const H264Context *h, CUVIDH264DPBENTRY *dst, const H264Picture *src,
int frame_idx)
{
- FrameDecodeData *fdd = (FrameDecodeData*)src->f->private_ref->data;
+ FrameDecodeData *fdd = src->f->private_ref;
const NVDECFrame *cf = fdd->hwaccel_priv;
dst->PicIdx = cf ? cf->idx : -1;
@@ -65,7 +65,7 @@ static int nvdec_h264_start_frame(AVCodecContext *avctx,
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)h->cur_pic_ptr->f->private_ref->data;
+ fdd = h->cur_pic_ptr->f->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/nvdec_hevc.c b/libavcodec/nvdec_hevc.c
index e01ce4c782..f071480b26 100644
--- a/libavcodec/nvdec_hevc.c
+++ b/libavcodec/nvdec_hevc.c
@@ -34,7 +34,7 @@
static void dpb_add(CUVIDHEVCPICPARAMS *pp, int idx, const HEVCFrame *src)
{
- FrameDecodeData *fdd = (FrameDecodeData*)src->f->private_ref->data;
+ FrameDecodeData *fdd = src->f->private_ref;
const NVDECFrame *cf = fdd->hwaccel_priv;
pp->RefPicIdx[idx] = cf ? cf->idx : -1;
@@ -89,7 +89,7 @@ static int nvdec_hevc_start_frame(AVCodecContext *avctx,
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)s->cur_frame->f->private_ref->data;
+ fdd = s->cur_frame->f->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/nvdec_mjpeg.c b/libavcodec/nvdec_mjpeg.c
index 850634bf1a..b48eb73cfa 100644
--- a/libavcodec/nvdec_mjpeg.c
+++ b/libavcodec/nvdec_mjpeg.c
@@ -43,7 +43,7 @@ static int nvdec_mjpeg_start_frame(AVCodecContext *avctx, const uint8_t *buffer,
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)cur_frame->private_ref->data;
+ fdd = cur_frame->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/nvdec_mpeg12.c b/libavcodec/nvdec_mpeg12.c
index 99b2b14f1f..2e9c413b1d 100644
--- a/libavcodec/nvdec_mpeg12.c
+++ b/libavcodec/nvdec_mpeg12.c
@@ -47,7 +47,7 @@ static int nvdec_mpeg12_start_frame(AVCodecContext *avctx, const uint8_t *buffer
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)cur_frame->private_ref->data;
+ fdd = cur_frame->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/nvdec_mpeg4.c b/libavcodec/nvdec_mpeg4.c
index 80da11b5b1..21ee123996 100644
--- a/libavcodec/nvdec_mpeg4.c
+++ b/libavcodec/nvdec_mpeg4.c
@@ -46,7 +46,7 @@ static int nvdec_mpeg4_start_frame(AVCodecContext *avctx, const uint8_t *buffer,
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)cur_frame->private_ref->data;
+ fdd = cur_frame->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/nvdec_vc1.c b/libavcodec/nvdec_vc1.c
index 0668863cb4..671c1ed5eb 100644
--- a/libavcodec/nvdec_vc1.c
+++ b/libavcodec/nvdec_vc1.c
@@ -46,7 +46,7 @@ static int nvdec_vc1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)cur_frame->private_ref->data;
+ fdd = cur_frame->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/nvdec_vp8.c b/libavcodec/nvdec_vp8.c
index ff3b3f259c..b052a8ad87 100644
--- a/libavcodec/nvdec_vp8.c
+++ b/libavcodec/nvdec_vp8.c
@@ -48,7 +48,7 @@ static int nvdec_vp8_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)cur_frame->private_ref->data;
+ fdd = cur_frame->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/nvdec_vp9.c b/libavcodec/nvdec_vp9.c
index e196391c6d..21455a8fa2 100644
--- a/libavcodec/nvdec_vp9.c
+++ b/libavcodec/nvdec_vp9.c
@@ -47,7 +47,7 @@ static int nvdec_vp9_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u
if (ret < 0)
return ret;
- fdd = (FrameDecodeData*)cur_frame->private_ref->data;
+ fdd = cur_frame->private_ref;
cf = (NVDECFrame*)fdd->hwaccel_priv;
*pp = (CUVIDPICPARAMS) {
diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
index a606c29ded..ec1783f7d5 100644
--- a/libavcodec/videotoolbox.c
+++ b/libavcodec/videotoolbox.c
@@ -167,7 +167,7 @@ int ff_videotoolbox_alloc_frame(AVCodecContext *avctx, AVFrame *frame)
}
frame->buf[0] = buf;
- fdd = (FrameDecodeData*)frame->private_ref->data;
+ fdd = frame->private_ref;
fdd->post_process = videotoolbox_postproc_frame;
frame->width = avctx->width;
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 492b467ebd..271dd37af2 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -19,12 +19,11 @@
#include "channel_layout.h"
#include "avassert.h"
#include "buffer.h"
-#include "common.h"
-#include "cpu.h"
#include "dict.h"
#include "frame.h"
#include "imgutils.h"
#include "mem.h"
+#include "refstruct.h"
#include "samplefmt.h"
#include "hwcontext.h"
@@ -318,8 +317,6 @@ int av_frame_get_buffer(AVFrame *frame, int align)
static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy)
{
- int ret;
-
#if FF_API_FRAME_KEY
FF_DISABLE_DEPRECATION_WARNINGS
dst->key_frame = src->key_frame;
@@ -393,9 +390,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
av_dict_copy(&sd_dst->metadata, sd_src->metadata, 0);
}
- ret = av_buffer_replace(&dst->opaque_ref, src->opaque_ref);
- ret |= av_buffer_replace(&dst->private_ref, src->private_ref);
- return ret;
+ av_refstruct_replace(&dst->private_ref, src->private_ref);
+ return av_buffer_replace(&dst->opaque_ref, src->opaque_ref);
}
int av_frame_ref(AVFrame *dst, const AVFrame *src)
@@ -637,7 +633,7 @@ void av_frame_unref(AVFrame *frame)
av_buffer_unref(&frame->hw_frames_ctx);
av_buffer_unref(&frame->opaque_ref);
- av_buffer_unref(&frame->private_ref);
+ av_refstruct_unref(&frame->private_ref);
if (frame->extended_data != frame->data)
av_freep(&frame->extended_data);
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 49260ae2dd..33a808ac9c 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -801,17 +801,13 @@ typedef struct AVFrame {
*/
/**
- * AVBufferRef for internal use by a single libav* library.
+ * RefStruct reference for internal use by a single libav* library.
* Must not be used to transfer data between libraries.
* Has to be NULL when ownership of the frame leaves the respective library.
*
- * Code outside the FFmpeg libs should never check or change the contents of the buffer ref.
- *
- * FFmpeg calls av_buffer_unref() on it when the frame is unreferenced.
- * av_frame_copy_props() calls create a new reference with av_buffer_ref()
- * for the target frame's private_ref field.
+ * Code outside the FFmpeg libs must never check or change private_ref.
*/
- AVBufferRef *private_ref;
+ void *private_ref;
/**
* Channel layout of the audio data.
--
2.45.2
[-- Attachment #3: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avutil/frame: Port AVFrame.private_ref to RefStruct API
2025-02-25 12:29 ` [FFmpeg-devel] [PATCH] avutil/frame: Port AVFrame.private_ref to RefStruct API Andreas Rheinhardt
@ 2025-02-25 14:31 ` James Almer
0 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-02-25 14:31 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 1187 bytes --]
On 2/25/2025 9:29 AM, Andreas Rheinhardt wrote:
> James Almer:
>> It's been a year since the last bump, so lets get rid of old deprecated API
>> in time for ffmpeg 8.0
>>
>
> I want to add the attached patch to that set. There will probably be a
> minor conflict with the FF_API_FRAME_KEY patch (your github account
> didn't have a branch of this, so I based it on master, not on your
> patchset), but that is trivial to fix.
I pushed the set to https://github.com/jamrial/FFmpeg/commits/bump/
And yes, forgot to ask people to submit changes possible now that ABI
can be broken (public struct field offsest, enum values, avpriv_
removal, etc).
>
> One more thing: Did you check whether you can now remove inclusions of
> version*.h and attributes.h (for attribute_deprecated) headers? I don't
> see you do this and it is often forgotten.
No, will check it.
>
> - Andreas
>
>
> _______________________________________________
> 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".
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT James Almer
@ 2025-03-01 17:29 ` Marton Balint
2025-03-02 0:48 ` James Almer
0 siblings, 1 reply; 46+ messages in thread
From: Marton Balint @ 2025-03-01 17:29 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Sun, 23 Feb 2025, James Almer wrote:
> Deprecated since 2023-03-20.
This also removes the POS variable from the filters without replacement,
not just the API.
I suggest we remove frame->pkt_size but we keep frame->pkt_pos around for
now.
Regards,
Marton
>
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> libavcodec/av1dec.c | 6 ----
> libavcodec/cuviddec.c | 6 ----
> libavcodec/decode.c | 27 ------------------
> libavcodec/libuavs3d.c | 12 --------
> libavdevice/lavfi.c | 10 -------
> libavfilter/af_volume.c | 15 ----------
> libavfilter/af_volume.h | 3 --
> libavfilter/avfilter.c | 14 ---------
> libavfilter/f_select.c | 11 -------
> libavfilter/f_sendcmd.c | 11 -------
> libavfilter/setpts.c | 11 -------
> libavfilter/vf_crop.c | 15 ----------
> libavfilter/vf_drawtext.c | 18 ------------
> libavfilter/vf_eq.c | 8 ------
> libavfilter/vf_eq.h | 6 ----
> libavfilter/vf_overlay.c | 14 ---------
> libavfilter/vf_overlay.h | 3 --
> libavfilter/vf_overlay_cuda.c | 18 ------------
> libavfilter/vf_scale.c | 41 ++------------------------
> libavfilter/vf_scale_npp.c | 54 +++--------------------------------
> libavfilter/vf_swaprect.c | 17 ++---------
> libavutil/frame.c | 12 --------
> libavutil/frame.h | 26 -----------------
> libavutil/version.h | 1 -
> 24 files changed, 8 insertions(+), 351 deletions(-)
>
> diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
> index 7c54e36220..1909b1f122 100644
> --- a/libavcodec/av1dec.c
> +++ b/libavcodec/av1dec.c
> @@ -1196,12 +1196,6 @@ static int set_output_frame(AVCodecContext *avctx, AVFrame *frame)
>
> frame->pts = pkt->pts;
> frame->pkt_dts = pkt->dts;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - frame->pkt_size = pkt->size;
> - frame->pkt_pos = pkt->pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> av_packet_unref(pkt);
>
> diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c
> index 67076a1752..b029882926 100644
> --- a/libavcodec/cuviddec.c
> +++ b/libavcodec/cuviddec.c
> @@ -695,12 +695,6 @@ static int cuvid_output_frame(AVCodecContext *avctx, AVFrame *frame)
> * So set pkt_pts and clear all the other pkt_ fields.
> */
> frame->duration = 0;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - frame->pkt_pos = -1;
> - frame->pkt_size = -1;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> if (!parsed_frame.is_deinterlacing && !parsed_frame.dispinfo.progressive_frame)
> frame->flags |= AV_FRAME_FLAG_INTERLACED;
> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> index a28279bd36..271345cff1 100644
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -172,10 +172,6 @@ static int extract_packet_props(AVCodecInternal *avci, const AVPacket *pkt)
> av_packet_unref(avci->last_pkt_props);
> if (pkt) {
> ret = av_packet_copy_props(avci->last_pkt_props, pkt);
> -#if FF_API_FRAME_PKT
> - if (!ret)
> - avci->last_pkt_props->stream_index = pkt->size; // Needed for ff_decode_frame_props().
> -#endif
> }
> return ret;
> }
> @@ -444,14 +440,6 @@ static inline int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame,
>
> if (!(codec->caps_internal & FF_CODEC_CAP_SETS_PKT_DTS))
> frame->pkt_dts = pkt->dts;
> - if (avctx->codec->type == AVMEDIA_TYPE_VIDEO) {
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - if(!avctx->has_b_frames)
> - frame->pkt_pos = pkt->pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> - }
> emms_c();
>
> if (avctx->codec->type == AVMEDIA_TYPE_VIDEO) {
> @@ -507,10 +495,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
> pkt->pts = AV_NOPTS_VALUE;
> pkt->dts = AV_NOPTS_VALUE;
> if (!(codec->caps_internal & FF_CODEC_CAP_SETS_FRAME_PROPS)) {
> -#if FF_API_FRAME_PKT
> - // See extract_packet_props() comment.
> - avci->last_pkt_props->stream_index = avci->last_pkt_props->stream_index - consumed;
> -#endif
> avci->last_pkt_props->pts = AV_NOPTS_VALUE;
> avci->last_pkt_props->dts = AV_NOPTS_VALUE;
> }
> @@ -1483,12 +1467,6 @@ int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx,
>
> frame->pts = pkt->pts;
> frame->duration = pkt->duration;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - frame->pkt_pos = pkt->pos;
> - frame->pkt_size = pkt->size;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> ret = side_data_map(frame, pkt->side_data, pkt->side_data_elems, ff_sd_global_map);
> if (ret < 0)
> @@ -1529,11 +1507,6 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame)
> ret = ff_decode_frame_props_from_pkt(avctx, frame, pkt);
> if (ret < 0)
> return ret;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - frame->pkt_size = pkt->stream_index;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> }
>
> ret = fill_frame_props(avctx, frame);
> diff --git a/libavcodec/libuavs3d.c b/libavcodec/libuavs3d.c
> index 53b5faafc5..4122f60480 100644
> --- a/libavcodec/libuavs3d.c
> +++ b/libavcodec/libuavs3d.c
> @@ -79,12 +79,6 @@ static void uavs3d_output_callback(uavs3d_io_frm_t *dec_frame) {
>
> frm->pts = dec_frame->pts;
> frm->pkt_dts = dec_frame->dts;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - frm->pkt_pos = dec_frame->pkt_pos;
> - frm->pkt_size = dec_frame->pkt_size;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> if (dec_frame->type < 0 || dec_frame->type >= FF_ARRAY_ELEMS(ff_avs3_image_type)) {
> av_log(NULL, AV_LOG_WARNING, "Error frame type in uavs3d: %d.\n", dec_frame->type);
> @@ -176,12 +170,6 @@ static int libuavs3d_decode_frame(AVCodecContext *avctx, AVFrame *frm,
> uavs3d_io_frm_t *frm_dec = &h->dec_frame;
>
> buf_end = buf + buf_size;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - frm_dec->pkt_pos = avpkt->pos;
> - frm_dec->pkt_size = avpkt->size;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> while (!finish) {
> int bs_len;
> diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c
> index 17657a0638..548183d633 100644
> --- a/libavdevice/lavfi.c
> +++ b/libavdevice/lavfi.c
> @@ -353,11 +353,6 @@ static int create_subcc_packet(AVFormatContext *avctx, AVFrame *frame,
> memcpy(lavfi->subcc_packet.data, sd->data, sd->size);
> lavfi->subcc_packet.stream_index = stream_idx;
> lavfi->subcc_packet.pts = frame->pts;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - lavfi->subcc_packet.pos = frame->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> return 0;
> }
>
> @@ -466,11 +461,6 @@ static int lavfi_read_packet(AVFormatContext *avctx, AVPacket *pkt)
>
> pkt->stream_index = stream_idx;
> pkt->pts = frame->pts;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - pkt->pos = frame->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> av_frame_free(&frame_to_free);
>
> diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c
> index 18b1616cab..471bffeceb 100644
> --- a/libavfilter/af_volume.c
> +++ b/libavfilter/af_volume.c
> @@ -48,9 +48,6 @@ static const char *const var_names[] = {
> "nb_channels", ///< number of channels
> "nb_consumed_samples", ///< number of samples consumed by the filter
> "nb_samples", ///< number of samples in the current frame
> -#if FF_API_FRAME_PKT
> - "pos", ///< position in the file of the frame
> -#endif
> "pts", ///< frame presentation timestamp
> "sample_rate", ///< sample rate
> "startpts", ///< PTS at start of stream
> @@ -289,9 +286,6 @@ static int config_output(AVFilterLink *outlink)
> vol->var_values[VAR_N] =
> vol->var_values[VAR_NB_CONSUMED_SAMPLES] =
> vol->var_values[VAR_NB_SAMPLES] =
> -#if FF_API_FRAME_PKT
> - vol->var_values[VAR_POS] =
> -#endif
> vol->var_values[VAR_PTS] =
> vol->var_values[VAR_STARTPTS] =
> vol->var_values[VAR_STARTT] =
> @@ -383,15 +377,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
> vol->var_values[VAR_T ] = TS2T(buf->pts, inlink->time_base);
> vol->var_values[VAR_N ] = inl->frame_count_out;
>
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - {
> - int64_t pos;
> - pos = buf->pkt_pos;
> - vol->var_values[VAR_POS] = pos == -1 ? NAN : pos;
> - }
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> if (vol->eval_mode == EVAL_MODE_FRAME)
> set_volume(ctx);
>
> diff --git a/libavfilter/af_volume.h b/libavfilter/af_volume.h
> index c3756ee969..e9527eea8a 100644
> --- a/libavfilter/af_volume.h
> +++ b/libavfilter/af_volume.h
> @@ -47,9 +47,6 @@ enum VolumeVarName {
> VAR_NB_CHANNELS,
> VAR_NB_CONSUMED_SAMPLES,
> VAR_NB_SAMPLES,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_PTS,
> VAR_SAMPLE_RATE,
> VAR_STARTPTS,
> diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
> index cac5cf8997..64c1075c40 100644
> --- a/libavfilter/avfilter.c
> +++ b/libavfilter/avfilter.c
> @@ -550,9 +550,6 @@ static int request_frame_to_filter(AVFilterLink *link)
> static const char *const var_names[] = {
> "t",
> "n",
> -#if FF_API_FRAME_PKT
> - "pos",
> -#endif
> "w",
> "h",
> NULL
> @@ -561,9 +558,6 @@ static const char *const var_names[] = {
> enum {
> VAR_T,
> VAR_N,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_W,
> VAR_H,
> VAR_VARS_NB
> @@ -1012,11 +1006,6 @@ static int evaluate_timeline_at_frame(AVFilterLink *link, const AVFrame *frame)
> AVFilterContext *dstctx = link->dst;
> FFFilterContext *dsti = fffilterctx(dstctx);
> int64_t pts = frame->pts;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - int64_t pos = frame->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> if (!dstctx->enable_str)
> return 1;
> @@ -1025,9 +1014,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
> dsti->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base);
> dsti->var_values[VAR_W] = link->w;
> dsti->var_values[VAR_H] = link->h;
> -#if FF_API_FRAME_PKT
> - dsti->var_values[VAR_POS] = pos == -1 ? NAN : pos;
> -#endif
>
> return fabs(av_expr_eval(dsti->enable, dsti->var_values, NULL)) >= 0.5;
> }
> diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
> index 1f2a9a59fc..aa374c6ad0 100644
> --- a/libavfilter/f_select.c
> +++ b/libavfilter/f_select.c
> @@ -82,9 +82,6 @@ static const char *const var_names[] = {
> "prev_selected_n", ///< number of the last selected frame
>
> "key", ///< tell if the frame is a key frame
> -#if FF_API_FRAME_PKT
> - "pos", ///< original position in the file of the frame
> -#endif
>
> "scene",
>
> @@ -141,9 +138,6 @@ enum var_name {
> VAR_PREV_SELECTED_N,
>
> VAR_KEY,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
>
> VAR_SCENE,
>
> @@ -358,11 +352,6 @@ static void select_frame(AVFilterContext *ctx, AVFrame *frame)
> select->var_values[VAR_N ] = inl->frame_count_out;
> select->var_values[VAR_PTS] = TS2D(frame->pts);
> select->var_values[VAR_T ] = TS2D(frame->pts) * av_q2d(inlink->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - select->var_values[VAR_POS] = frame->pkt_pos == -1 ? NAN : frame->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> select->var_values[VAR_KEY] = !!(frame->flags & AV_FRAME_FLAG_KEY);
> select->var_values[VAR_CONCATDEC_SELECT] = get_concatdec_select(frame, av_rescale_q(frame->pts, inlink->time_base, AV_TIME_BASE_Q));
>
> diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
> index d5d72e6410..9201fb5381 100644
> --- a/libavfilter/f_sendcmd.c
> +++ b/libavfilter/f_sendcmd.c
> @@ -44,9 +44,6 @@
> static const char *const var_names[] = {
> "N", /* frame number */
> "T", /* frame time in seconds */
> -#if FF_API_FRAME_PKT
> - "POS", /* original position in the file of the frame */
> -#endif
> "PTS", /* frame pts */
> "TS", /* interval start time in seconds */
> "TE", /* interval end time in seconds */
> @@ -59,9 +56,6 @@ static const char *const var_names[] = {
> enum var_name {
> VAR_N,
> VAR_T,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_PTS,
> VAR_TS,
> VAR_TE,
> @@ -537,11 +531,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *ref)
> double current = TS2T(ref->pts, inlink->time_base);
>
> var_values[VAR_N] = inl->frame_count_in;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - var_values[VAR_POS] = ref->pkt_pos == -1 ? NAN : ref->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> var_values[VAR_PTS] = TS2D(ref->pts);
> var_values[VAR_T] = current;
> var_values[VAR_TS] = start;
> diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
> index 397be5c817..0565533ed2 100644
> --- a/libavfilter/setpts.c
> +++ b/libavfilter/setpts.c
> @@ -44,9 +44,6 @@ static const char *const var_names[] = {
> "N", ///< frame / sample number (starting at zero)
> "NB_CONSUMED_SAMPLES", ///< number of samples consumed by the filter (only audio)
> "NB_SAMPLES", ///< number of samples in the current frame (only audio)
> -#if FF_API_FRAME_PKT
> - "POS", ///< original position in the file of the frame
> -#endif
> "PREV_INPTS", ///< previous input PTS
> "PREV_INT", ///< previous input time in seconds
> "PREV_OUTPTS", ///< previous output PTS
> @@ -72,9 +69,6 @@ enum var_name {
> VAR_N,
> VAR_NB_CONSUMED_SAMPLES,
> VAR_NB_SAMPLES,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_PREV_INPTS,
> VAR_PREV_INT,
> VAR_PREV_OUTPTS,
> @@ -182,11 +176,6 @@ static double eval_pts(SetPTSContext *setpts, AVFilterLink *inlink, AVFrame *fra
> }
> V(PTS ) = TS2D(pts);
> V(T ) = TS2T(pts, inlink->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - V(POS ) = !frame || frame->pkt_pos == -1 ? NAN : frame->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> V(RTCTIME ) = av_gettime();
>
> if (frame) {
> diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c
> index fd0750c755..fb3f30a758 100644
> --- a/libavfilter/vf_crop.c
> +++ b/libavfilter/vf_crop.c
> @@ -50,9 +50,6 @@ static const char *const var_names[] = {
> "x",
> "y",
> "n", ///< number of frame
> -#if FF_API_FRAME_PKT
> - "pos", ///< position in the file
> -#endif
> "t", ///< timestamp expressed in seconds
> NULL
> };
> @@ -70,9 +67,6 @@ enum var_name {
> VAR_X,
> VAR_Y,
> VAR_N,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_T,
> VAR_VARS_NB
> };
> @@ -152,9 +146,6 @@ static int config_input(AVFilterLink *link)
> s->var_values[VAR_OUT_H] = s->var_values[VAR_OH] = NAN;
> s->var_values[VAR_N] = 0;
> s->var_values[VAR_T] = NAN;
> -#if FF_API_FRAME_PKT
> - s->var_values[VAR_POS] = NAN;
> -#endif
>
> av_image_fill_max_pixsteps(s->max_step, NULL, pix_desc);
>
> @@ -267,12 +258,6 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
> s->var_values[VAR_N] = l->frame_count_out;
> s->var_values[VAR_T] = frame->pts == AV_NOPTS_VALUE ?
> NAN : frame->pts * av_q2d(link->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - s->var_values[VAR_POS] = frame->pkt_pos == -1 ?
> - NAN : frame->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, NULL);
> s->var_values[VAR_Y] = av_expr_eval(s->y_pexpr, s->var_values, NULL);
> /* It is necessary if x is expressed from y */
> diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
> index e4662f3a45..6c57652748 100644
> --- a/libavfilter/vf_drawtext.c
> +++ b/libavfilter/vf_drawtext.c
> @@ -102,12 +102,6 @@ static const char *const var_names[] = {
> "x",
> "y",
> "pict_type",
> -#if FF_API_FRAME_PKT
> - "pkt_pos",
> -#endif
> -#if FF_API_FRAME_PKT
> - "pkt_size",
> -#endif
> "duration",
> NULL
> };
> @@ -150,12 +144,6 @@ enum var_name {
> VAR_X,
> VAR_Y,
> VAR_PICT_TYPE,
> -#if FF_API_FRAME_PKT
> - VAR_PKT_POS,
> -#endif
> -#if FF_API_FRAME_PKT
> - VAR_PKT_SIZE,
> -#endif
> VAR_DURATION,
> VAR_VARS_NB
> };
> @@ -1878,12 +1866,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
> NAN : frame->pts * av_q2d(inlink->time_base);
>
> s->var_values[VAR_PICT_TYPE] = frame->pict_type;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - s->var_values[VAR_PKT_POS] = frame->pkt_pos;
> - s->var_values[VAR_PKT_SIZE] = frame->pkt_size;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> s->var_values[VAR_DURATION] = frame->duration * av_q2d(inlink->time_base);
>
> s->metadata = frame->metadata;
> diff --git a/libavfilter/vf_eq.c b/libavfilter/vf_eq.c
> index 2d6822348f..c9922c41b1 100644
> --- a/libavfilter/vf_eq.c
> +++ b/libavfilter/vf_eq.c
> @@ -238,14 +238,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
> desc = av_pix_fmt_desc_get(inlink->format);
>
> eq->var_values[VAR_N] = inl->frame_count_out;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - {
> - int64_t pos = in->pkt_pos;
> - eq->var_values[VAR_POS] = pos == -1 ? NAN : pos;
> - }
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> eq->var_values[VAR_T] = TS2T(in->pts, inlink->time_base);
>
> if (eq->eval_mode == EVAL_MODE_FRAME) {
> diff --git a/libavfilter/vf_eq.h b/libavfilter/vf_eq.h
> index 50850ea42c..cbca3bc27c 100644
> --- a/libavfilter/vf_eq.h
> +++ b/libavfilter/vf_eq.h
> @@ -30,9 +30,6 @@
>
> static const char *const var_names[] = {
> "n", // frame count
> -#if FF_API_FRAME_PKT
> - "pos", // frame position
> -#endif
> "r", // frame rate
> "t", // timestamp expressed in seconds
> NULL
> @@ -40,9 +37,6 @@ static const char *const var_names[] = {
>
> enum var_name {
> VAR_N,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_R,
> VAR_T,
> VAR_NB
> diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c
> index 528b845c6c..8560ed7c17 100644
> --- a/libavfilter/vf_overlay.c
> +++ b/libavfilter/vf_overlay.c
> @@ -55,9 +55,6 @@ static const char *const var_names[] = {
> "x",
> "y",
> "n", ///< number of frame
> -#if FF_API_FRAME_PKT
> - "pos", ///< position in the file
> -#endif
> "t", ///< timestamp expressed in seconds
> NULL
> };
> @@ -305,9 +302,6 @@ static int config_input_overlay(AVFilterLink *inlink)
> s->var_values[VAR_Y] = NAN;
> s->var_values[VAR_N] = 0;
> s->var_values[VAR_T] = NAN;
> -#if FF_API_FRAME_PKT
> - s->var_values[VAR_POS] = NAN;
> -#endif
>
> if ((ret = set_expr(&s->x_pexpr, s->x_expr, "x", ctx)) < 0 ||
> (ret = set_expr(&s->y_pexpr, s->y_expr, "y", ctx)) < 0)
> @@ -897,14 +891,6 @@ static int do_blend(FFFrameSync *fs)
> s->var_values[VAR_N] = inl->frame_count_out;
> s->var_values[VAR_T] = mainpic->pts == AV_NOPTS_VALUE ?
> NAN : mainpic->pts * av_q2d(inlink->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - {
> - int64_t pos = mainpic->pkt_pos;
> - s->var_values[VAR_POS] = pos == -1 ? NAN : pos;
> - }
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> s->var_values[VAR_OVERLAY_W] = s->var_values[VAR_OW] = second->width;
> s->var_values[VAR_OVERLAY_H] = s->var_values[VAR_OH] = second->height;
> diff --git a/libavfilter/vf_overlay.h b/libavfilter/vf_overlay.h
> index 59749648c3..3ad378ce42 100644
> --- a/libavfilter/vf_overlay.h
> +++ b/libavfilter/vf_overlay.h
> @@ -34,9 +34,6 @@ enum var_name {
> VAR_X,
> VAR_Y,
> VAR_N,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_T,
> VAR_VARS_NB
> };
> diff --git a/libavfilter/vf_overlay_cuda.c b/libavfilter/vf_overlay_cuda.c
> index 8680fc0c4a..4708b34d30 100644
> --- a/libavfilter/vf_overlay_cuda.c
> +++ b/libavfilter/vf_overlay_cuda.c
> @@ -67,9 +67,6 @@ enum var_name {
> VAR_X,
> VAR_Y,
> VAR_N,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_T,
> VAR_VARS_NB
> };
> @@ -88,9 +85,6 @@ static const char *const var_names[] = {
> "x",
> "y",
> "n", ///< number of frame
> -#if FF_API_FRAME_PKT
> - "pos", ///< position in the file
> -#endif
> "t", ///< timestamp expressed in seconds
> NULL
> };
> @@ -274,15 +268,6 @@ static int overlay_cuda_blend(FFFrameSync *fs)
> ctx->var_values[VAR_T] = input_main->pts == AV_NOPTS_VALUE ?
> NAN : input_main->pts * av_q2d(inlink->time_base);
>
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - {
> - int64_t pos = input_main->pkt_pos;
> - ctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;
> - }
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> -
> ctx->var_values[VAR_OVERLAY_W] = ctx->var_values[VAR_OW] = input_overlay->width;
> ctx->var_values[VAR_OVERLAY_H] = ctx->var_values[VAR_OH] = input_overlay->height;
> ctx->var_values[VAR_MAIN_W ] = ctx->var_values[VAR_MW] = input_main->width;
> @@ -365,9 +350,6 @@ static int config_input_overlay(AVFilterLink *inlink)
> s->var_values[VAR_Y] = NAN;
> s->var_values[VAR_N] = 0;
> s->var_values[VAR_T] = NAN;
> -#if FF_API_FRAME_PKT
> - s->var_values[VAR_POS] = NAN;
> -#endif
>
> if ((ret = set_expr(&s->x_pexpr, s->x_expr, "x", ctx)) < 0 ||
> (ret = set_expr(&s->y_pexpr, s->y_expr, "y", ctx)) < 0)
> diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
> index 8c03d7fd8d..606bf9ba10 100644
> --- a/libavfilter/vf_scale.c
> +++ b/libavfilter/vf_scale.c
> @@ -57,9 +57,6 @@ static const char *const var_names[] = {
> "ovsub",
> "n",
> "t",
> -#if FF_API_FRAME_PKT
> - "pos",
> -#endif
> "ref_w", "rw",
> "ref_h", "rh",
> "ref_a",
> @@ -98,9 +95,6 @@ enum var_name {
> VAR_OVSUB,
> VAR_N,
> VAR_T,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_REF_W, VAR_RW,
> VAR_REF_H, VAR_RH,
> VAR_REF_A,
> @@ -266,9 +260,6 @@ static int check_exprs(AVFilterContext *ctx)
> if (scale->eval_mode == EVAL_MODE_INIT &&
> (vars_w[VAR_N] || vars_h[VAR_N] ||
> vars_w[VAR_T] || vars_h[VAR_T] ||
> -#if FF_API_FRAME_PKT
> - vars_w[VAR_POS] || vars_h[VAR_POS] ||
> -#endif
> vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
> vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T] ||
> vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]) ) {
> @@ -790,16 +781,8 @@ static int scale_frame(AVFilterLink *link, AVFrame **frame_in,
> if (scale->eval_mode == EVAL_MODE_FRAME &&
> !frame_changed &&
> !IS_SCALE2REF(ctx) &&
> - !(vars_w[VAR_N] || vars_w[VAR_T]
> -#if FF_API_FRAME_PKT
> - || vars_w[VAR_POS]
> -#endif
> - ) &&
> - !(vars_h[VAR_N] || vars_h[VAR_T]
> -#if FF_API_FRAME_PKT
> - || vars_h[VAR_POS]
> -#endif
> - ) &&
> + !(vars_w[VAR_N] || vars_w[VAR_T]) &&
> + !(vars_h[VAR_N] || vars_h[VAR_T]) &&
> scale->w && scale->h)
> goto scale;
>
> @@ -821,19 +804,9 @@ static int scale_frame(AVFilterLink *link, AVFrame **frame_in,
> if (IS_SCALE2REF(ctx)) {
> scale->var_values[VAR_S2R_MAIN_N] = inl->frame_count_out;
> scale->var_values[VAR_S2R_MAIN_T] = TS2T(in->pts, link->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - scale->var_values[VAR_S2R_MAIN_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> } else {
> scale->var_values[VAR_N] = inl->frame_count_out;
> scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> }
>
> link->dst->inputs[0]->format = in->format;
> @@ -975,11 +948,6 @@ static int do_scale(FFFrameSync *fs)
> if (scale->eval_mode == EVAL_MODE_FRAME) {
> scale->var_values[VAR_REF_N] = rl->frame_count_out;
> scale->var_values[VAR_REF_T] = TS2T(ref->pts, reflink->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - scale->var_values[VAR_REF_POS] = ref->pkt_pos == -1 ? NAN : ref->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> }
> }
>
> @@ -1040,11 +1008,6 @@ static int filter_frame_ref(AVFilterLink *link, AVFrame *in)
> if (scale->eval_mode == EVAL_MODE_FRAME) {
> scale->var_values[VAR_N] = l->frame_count_out;
> scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> }
>
> return ff_filter_frame(outlink, in);
> diff --git a/libavfilter/vf_scale_npp.c b/libavfilter/vf_scale_npp.c
> index 618788bc36..1b1b7b9fc9 100644
> --- a/libavfilter/vf_scale_npp.c
> +++ b/libavfilter/vf_scale_npp.c
> @@ -85,9 +85,6 @@ static const char *const var_names[] = {
> "dar",
> "n",
> "t",
> -#if FF_API_FRAME_PKT
> - "pos",
> -#endif
> "main_w",
> "main_h",
> "main_a",
> @@ -95,9 +92,6 @@ static const char *const var_names[] = {
> "main_dar", "mdar",
> "main_n",
> "main_t",
> -#if FF_API_FRAME_PKT
> - "main_pos",
> -#endif
> NULL
> };
>
> @@ -111,9 +105,6 @@ enum var_name {
> VAR_DAR,
> VAR_N,
> VAR_T,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> VAR_S2R_MAIN_W,
> VAR_S2R_MAIN_H,
> VAR_S2R_MAIN_A,
> @@ -121,9 +112,6 @@ enum var_name {
> VAR_S2R_MAIN_DAR, VAR_S2R_MDAR,
> VAR_S2R_MAIN_N,
> VAR_S2R_MAIN_T,
> -#if FF_API_FRAME_PKT
> - VAR_S2R_MAIN_POS,
> -#endif
> VARS_NB
> };
>
> @@ -215,11 +203,7 @@ static int check_exprs(AVFilterContext* ctx)
> vars_w[VAR_S2R_MAIN_DAR] || vars_h[VAR_S2R_MAIN_DAR] ||
> vars_w[VAR_S2R_MDAR] || vars_h[VAR_S2R_MDAR] ||
> vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
> - vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T]
> -#if FF_API_FRAME_PKT
> - || vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]
> -#endif
> - )) {
> + vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T])) {
> av_log(ctx, AV_LOG_ERROR, "Expressions with scale2ref_npp variables are not valid in scale_npp filter.\n");
> return AVERROR(EINVAL);
> }
> @@ -227,15 +211,8 @@ static int check_exprs(AVFilterContext* ctx)
> if (scale->eval_mode == EVAL_MODE_INIT &&
> (vars_w[VAR_N] || vars_h[VAR_N] ||
> vars_w[VAR_T] || vars_h[VAR_T] ||
> -#if FF_API_FRAME_PKT
> - vars_w[VAR_POS] || vars_h[VAR_POS] ||
> -#endif
> vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
> - vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T]
> -#if FF_API_FRAME_PKT
> - || vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]
> -#endif
> - ) ) {
> + vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T])) {
> av_log(ctx, AV_LOG_ERROR, "Expressions with frame variables 'n', 't', are not valid in init eval_mode.\n");
> return AVERROR(EINVAL);
> }
> @@ -821,16 +798,8 @@ static int nppscale_scale(AVFilterLink *link, AVFrame *out, AVFrame *in)
> av_expr_count_vars(s->h_pexpr, vars_h, VARS_NB);
>
> if (s->eval_mode == EVAL_MODE_FRAME && !frame_changed && !IS_SCALE2REF(ctx) &&
> - !(vars_w[VAR_N] || vars_w[VAR_T]
> -#if FF_API_FRAME_PKT
> - || vars_w[VAR_POS]
> -#endif
> - ) &&
> - !(vars_h[VAR_N] || vars_h[VAR_T]
> -#if FF_API_FRAME_PKT
> - || vars_h[VAR_POS]
> -#endif
> - ) && s->w && s->h)
> + !(vars_w[VAR_N] || vars_w[VAR_T]) &&
> + !(vars_h[VAR_N] || vars_h[VAR_T]) && s->w && s->h)
> goto scale;
>
> if (s->eval_mode == EVAL_MODE_INIT) {
> @@ -851,19 +820,9 @@ static int nppscale_scale(AVFilterLink *link, AVFrame *out, AVFrame *in)
> if (IS_SCALE2REF(ctx)) {
> s->var_values[VAR_S2R_MAIN_N] = inl->frame_count_out;
> s->var_values[VAR_S2R_MAIN_T] = TS2T(in->pts, link->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - s->var_values[VAR_S2R_MAIN_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> } else {
> s->var_values[VAR_N] = inl->frame_count_out;
> s->var_values[VAR_T] = TS2T(in->pts, link->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - s->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> }
>
> link->format = in->format;
> @@ -985,11 +944,6 @@ static int nppscale_filter_frame_ref(AVFilterLink *link, AVFrame *in)
> if (scale->eval_mode == EVAL_MODE_FRAME) {
> scale->var_values[VAR_N] = inl->frame_count_out;
> scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> }
>
> return ff_filter_frame(outlink, in);
> diff --git a/libavfilter/vf_swaprect.c b/libavfilter/vf_swaprect.c
> index 83afe49ec1..5d93f51c30 100644
> --- a/libavfilter/vf_swaprect.c
> +++ b/libavfilter/vf_swaprect.c
> @@ -68,16 +68,8 @@ static int query_formats(const AVFilterContext *ctx,
> ff_formats_pixdesc_filter(0, reject_flags));
> }
>
> -static const char *const var_names[] = { "w", "h", "a", "n", "t",
> -#if FF_API_FRAME_PKT
> - "pos",
> -#endif
> - "sar", "dar", NULL };
> -enum { VAR_W, VAR_H, VAR_A, VAR_N, VAR_T,
> -#if FF_API_FRAME_PKT
> - VAR_POS,
> -#endif
> - VAR_SAR, VAR_DAR, VAR_VARS_NB };
> +static const char *const var_names[] = { "w", "h", "a", "n", "t", "sar", "dar", NULL };
> +enum { VAR_W, VAR_H, VAR_A, VAR_N, VAR_T, VAR_SAR, VAR_DAR, VAR_VARS_NB };
>
> static int filter_frame(AVFilterLink *inlink, AVFrame *in)
> {
> @@ -103,11 +95,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
> var_values[VAR_DAR] = var_values[VAR_A] * var_values[VAR_SAR];
> var_values[VAR_N] = inl->frame_count_out;
> var_values[VAR_T] = in->pts == AV_NOPTS_VALUE ? NAN : in->pts * av_q2d(inlink->time_base);
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
>
> ret = av_expr_parse_and_eval(&dw, s->w,
> var_names, &var_values[0],
> diff --git a/libavutil/frame.c b/libavutil/frame.c
> index 492b467ebd..5434021f44 100644
> --- a/libavutil/frame.c
> +++ b/libavutil/frame.c
> @@ -69,12 +69,6 @@ static void get_frame_defaults(AVFrame *frame)
> frame->pkt_dts = AV_NOPTS_VALUE;
> frame->best_effort_timestamp = AV_NOPTS_VALUE;
> frame->duration = 0;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - frame->pkt_pos = -1;
> - frame->pkt_size = -1;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> frame->time_base = (AVRational){ 0, 1 };
> frame->sample_aspect_ratio = (AVRational){ 0, 1 };
> frame->format = -1; /* unknown */
> @@ -348,12 +342,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
> dst->sample_rate = src->sample_rate;
> dst->opaque = src->opaque;
> dst->pkt_dts = src->pkt_dts;
> -#if FF_API_FRAME_PKT
> -FF_DISABLE_DEPRECATION_WARNINGS
> - dst->pkt_pos = src->pkt_pos;
> - dst->pkt_size = src->pkt_size;
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> dst->time_base = src->time_base;
> dst->quality = src->quality;
> dst->best_effort_timestamp = src->best_effort_timestamp;
> diff --git a/libavutil/frame.h b/libavutil/frame.h
> index 49260ae2dd..5f89acbe2f 100644
> --- a/libavutil/frame.h
> +++ b/libavutil/frame.h
> @@ -716,18 +716,6 @@ typedef struct AVFrame {
> */
> int64_t best_effort_timestamp;
>
> -#if FF_API_FRAME_PKT
> - /**
> - * reordered pos from the last AVPacket that has been input into the decoder
> - * - encoding: unused
> - * - decoding: Read by user.
> - * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user
> - * data from packets to frames
> - */
> - attribute_deprecated
> - int64_t pkt_pos;
> -#endif
> -
> /**
> * metadata.
> * - encoding: Set by user.
> @@ -748,20 +736,6 @@ typedef struct AVFrame {
> #define FF_DECODE_ERROR_CONCEALMENT_ACTIVE 4
> #define FF_DECODE_ERROR_DECODE_SLICES 8
>
> -#if FF_API_FRAME_PKT
> - /**
> - * size of the corresponding packet containing the compressed
> - * frame.
> - * It is set to a negative value if unknown.
> - * - encoding: unused
> - * - decoding: set by libavcodec, read by user.
> - * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user
> - * data from packets to frames
> - */
> - attribute_deprecated
> - int pkt_size;
> -#endif
> -
> /**
> * For hwaccel-format frames, this should be a reference to the
> * AVHWFramesContext describing the frame.
> diff --git a/libavutil/version.h b/libavutil/version.h
> index 4c8282a35c..879444718a 100644
> --- a/libavutil/version.h
> +++ b/libavutil/version.h
> @@ -105,7 +105,6 @@
> * @{
> */
>
> -#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 60)
> #define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 60)
> #define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 60)
> #define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 60)
> --
> 2.48.1
>
> _______________________________________________
> 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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT
2025-03-01 17:29 ` Marton Balint
@ 2025-03-02 0:48 ` James Almer
2025-03-02 18:27 ` Marton Balint
0 siblings, 1 reply; 46+ messages in thread
From: James Almer @ 2025-03-02 0:48 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 391 bytes --]
On 3/1/2025 2:29 PM, Marton Balint wrote:
>
>
> On Sun, 23 Feb 2025, James Almer wrote:
>
>> Deprecated since 2023-03-20.
>
> This also removes the POS variable from the filters without replacement,
> not just the API.
>
> I suggest we remove frame->pkt_size but we keep frame->pkt_pos around
> for now.
The @deprecated notice for the field mentions the replacement.
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT
2025-03-02 0:48 ` James Almer
@ 2025-03-02 18:27 ` Marton Balint
0 siblings, 0 replies; 46+ messages in thread
From: Marton Balint @ 2025-03-02 18:27 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Sat, 1 Mar 2025, James Almer wrote:
> On 3/1/2025 2:29 PM, Marton Balint wrote:
>>
>>
>> On Sun, 23 Feb 2025, James Almer wrote:
>>
>>> Deprecated since 2023-03-20.
>>
>> This also removes the POS variable from the filters without replacement,
>> not just the API.
>>
>> I suggest we remove frame->pkt_size but we keep frame->pkt_pos around for
>> now.
>
> The @deprecated notice for the field mentions the replacement.
The filters using the "POS" variable were not converted to use the
replacement API. To be honest, I don't see a trivial way to do that.
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 03/30] avcodec: remove deprecated FF_API_DROPCHANGED
2025-02-24 9:44 ` Gyan Doshi
@ 2025-03-15 13:51 ` Gyan Doshi
0 siblings, 0 replies; 46+ messages in thread
From: Gyan Doshi @ 2025-03-15 13:51 UTC (permalink / raw)
To: ffmpeg-devel
On 2025-02-24 03:14 pm, Gyan Doshi wrote:
>
>
> On 2025-02-24 03:36 am, James Almer wrote:
>> Deprecated since 2023-07-15.
>
> Can you wait to push till I port this to ffmpeg_dec?
Patch for replacement posted at
https://ffmpeg.org/pipermail/ffmpeg-devel/2025-March/341210.html
Regards,
Gyan
>
> Regards,
> Gyan
>
>
>>
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> libavcodec/avcodec.c | 4 ---
>> libavcodec/avcodec.h | 9 -------
>> libavcodec/decode.c | 52 --------------------------------------
>> libavcodec/internal.h | 9 -------
>> libavcodec/options_table.h | 3 ---
>> libavcodec/version_major.h | 1 -
>> 6 files changed, 78 deletions(-)
>>
>> diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
>> index e7e2c09222..3f97f5d161 100644
>> --- a/libavcodec/avcodec.c
>> +++ b/libavcodec/avcodec.c
>> @@ -462,10 +462,6 @@ av_cold void ff_codec_close(AVCodecContext *avctx)
>> av_bsf_free(&avci->bsf);
>> -#if FF_API_DROPCHANGED
>> - av_channel_layout_uninit(&avci->initial_ch_layout);
>> -#endif
>> -
>> #if CONFIG_LCMS2
>> ff_icc_context_uninit(&avci->icc);
>> #endif
>> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
>> index f6de3c6b42..c35e65868e 100644
>> --- a/libavcodec/avcodec.h
>> +++ b/libavcodec/avcodec.h
>> @@ -234,15 +234,6 @@ typedef struct RcOverride{
>> * Use qpel MC.
>> */
>> #define AV_CODEC_FLAG_QPEL (1 << 4)
>> -#if FF_API_DROPCHANGED
>> -/**
>> - * Don't output frames whose parameters differ from first
>> - * decoded frame in stream.
>> - *
>> - * @deprecated callers should implement this functionality in their
>> own code
>> - */
>> -#define AV_CODEC_FLAG_DROPCHANGED (1 << 5)
>> -#endif
>> /**
>> * Request the encoder to output reconstructed frames, i.e.\ frames
>> that would
>> * be produced by decoding the encoded bistream. These frames may
>> be retrieved
>> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
>> index cac7e620d2..a28279bd36 100644
>> --- a/libavcodec/decode.c
>> +++ b/libavcodec/decode.c
>> @@ -840,53 +840,6 @@ int ff_decode_receive_frame(AVCodecContext
>> *avctx, AVFrame *frame)
>> avctx->frame_num++;
>> -#if FF_API_DROPCHANGED
>> - if (avctx->flags & AV_CODEC_FLAG_DROPCHANGED) {
>> -
>> - if (avctx->frame_num == 1) {
>> - avci->initial_format = frame->format;
>> - switch(avctx->codec_type) {
>> - case AVMEDIA_TYPE_VIDEO:
>> - avci->initial_width = frame->width;
>> - avci->initial_height = frame->height;
>> - break;
>> - case AVMEDIA_TYPE_AUDIO:
>> - avci->initial_sample_rate = frame->sample_rate ?
>> frame->sample_rate :
>> - avctx->sample_rate;
>> - ret =
>> av_channel_layout_copy(&avci->initial_ch_layout, &frame->ch_layout);
>> - if (ret < 0)
>> - goto fail;
>> - break;
>> - }
>> - }
>> -
>> - if (avctx->frame_num > 1) {
>> - int changed = avci->initial_format != frame->format;
>> -
>> - switch(avctx->codec_type) {
>> - case AVMEDIA_TYPE_VIDEO:
>> - changed |= avci->initial_width != frame->width ||
>> - avci->initial_height != frame->height;
>> - break;
>> - case AVMEDIA_TYPE_AUDIO:
>> - changed |= avci->initial_sample_rate !=
>> frame->sample_rate ||
>> - avci->initial_sample_rate !=
>> avctx->sample_rate ||
>> - av_channel_layout_compare(&avci->initial_ch_layout,
>> &frame->ch_layout);
>> - break;
>> - }
>> -
>> - if (changed) {
>> - avci->changed_frames_dropped++;
>> - av_log(avctx, AV_LOG_INFO, "dropped changed frame
>> #%"PRId64" pts %"PRId64
>> - " drop count: %d \n",
>> - avctx->frame_num, frame->pts,
>> - avci->changed_frames_dropped);
>> - ret = AVERROR_INPUT_CHANGED;
>> - goto fail;
>> - }
>> - }
>> - }
>> -#endif
>> return 0;
>> fail:
>> av_frame_unref(frame);
>> @@ -2065,11 +2018,6 @@ int ff_decode_preinit(AVCodecContext *avctx)
>> return ret;
>> }
>> -#if FF_API_DROPCHANGED
>> - if (avctx->flags & AV_CODEC_FLAG_DROPCHANGED)
>> - av_log(avctx, AV_LOG_WARNING, "The dropchanged flag is
>> deprecated.\n");
>> -#endif
>> -
>> return 0;
>> }
>> diff --git a/libavcodec/internal.h b/libavcodec/internal.h
>> index 62a37f473f..137fd52745 100644
>> --- a/libavcodec/internal.h
>> +++ b/libavcodec/internal.h
>> @@ -145,15 +145,6 @@ typedef struct AVCodecInternal {
>> AVFrame *buffer_frame;
>> int draining_done;
>> -#if FF_API_DROPCHANGED
>> - /* used when avctx flag AV_CODEC_FLAG_DROPCHANGED is set */
>> - int changed_frames_dropped;
>> - int initial_format;
>> - int initial_width, initial_height;
>> - int initial_sample_rate;
>> - AVChannelLayout initial_ch_layout;
>> -#endif
>> -
>> #if CONFIG_LCMS2
>> FFIccContext icc; /* used to read and write embedded ICC
>> profiles */
>> #endif
>> diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
>> index c115d8c18c..1711e56cd3 100644
>> --- a/libavcodec/options_table.h
>> +++ b/libavcodec/options_table.h
>> @@ -74,9 +74,6 @@ static const AVOption avcodec_options[] = {
>> {"ilme", "interlaced motion estimation", 0, AV_OPT_TYPE_CONST,
>> {.i64 = AV_CODEC_FLAG_INTERLACED_ME }, INT_MIN, INT_MAX, V|E, .unit =
>> "flags"},
>> {"cgop", "closed GOP", 0, AV_OPT_TYPE_CONST, {.i64 =
>> AV_CODEC_FLAG_CLOSED_GOP }, INT_MIN, INT_MAX, V|E, .unit = "flags"},
>> {"output_corrupt", "Output even potentially corrupted frames", 0,
>> AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG_OUTPUT_CORRUPT }, INT_MIN,
>> INT_MAX, V|D, .unit = "flags"},
>> -#if FF_API_DROPCHANGED
>> -{"drop_changed", "Drop frames whose parameters differ from first
>> decoded frame", 0, AV_OPT_TYPE_CONST, {.i64 =
>> AV_CODEC_FLAG_DROPCHANGED }, INT_MIN, INT_MAX, A|V|D |
>> AV_OPT_FLAG_DEPRECATED, .unit = "flags"},
>> -#endif
>> {"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.i64 =
>> DEFAULT}, 0, UINT_MAX, V|A|E|D|S, .unit = "flags2"},
>> {"fast", "allow non-spec-compliant speedup tricks", 0,
>> AV_OPT_TYPE_CONST, {.i64 = AV_CODEC_FLAG2_FAST }, INT_MIN, INT_MAX,
>> V|E, .unit = "flags2"},
>> {"noout", "skip bitstream encoding", 0, AV_OPT_TYPE_CONST, {.i64 =
>> AV_CODEC_FLAG2_NO_OUTPUT }, INT_MIN, INT_MAX, V|E, .unit = "flags2"},
>> diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
>> index 3cde4cdd8b..ee3277cb76 100644
>> --- a/libavcodec/version_major.h
>> +++ b/libavcodec/version_major.h
>> @@ -38,7 +38,6 @@
>> */
>> #define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
>> -#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62)
>> #define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
>> #define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
>
> _______________________________________________
> 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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/31] Major library soname bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (30 preceding siblings ...)
2025-02-25 12:29 ` [FFmpeg-devel] [PATCH] avutil/frame: Port AVFrame.private_ref to RefStruct API Andreas Rheinhardt
@ 2025-03-15 21:50 ` Andreas Rheinhardt
2025-03-26 22:50 ` James Almer
` (2 subsequent siblings)
34 siblings, 0 replies; 46+ messages in thread
From: Andreas Rheinhardt @ 2025-03-15 21:50 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1: Type: text/plain, Size: 148 bytes --]
James Almer:
> It's been a year since the last bump, so lets get rid of old deprecated API
> in time for ffmpeg 8.0
>
Two more patches.
- Andreas
[-- Attachment #2: 0001-avutil-dict-Unavpriv-avpriv_dict_set_timestamp.patch --]
[-- Type: text/x-patch, Size: 10115 bytes --]
From 1c0532d20ce6f56902c94913dc6d8b5d7a714de9 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Sat, 15 Mar 2025 22:10:44 +0100
Subject: [PATCH 1/2] avutil/dict: Unavpriv avpriv_dict_set_timestamp()
And move it to lavf, its only user.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavformat/flvdec.c | 3 +--
libavformat/ifv.c | 3 +--
libavformat/internal.h | 11 +++++++++++
libavformat/matroskadec.c | 3 +--
libavformat/mov.c | 3 +--
libavformat/mux_utils.c | 3 +--
libavformat/mxfdec.c | 3 +--
libavformat/utils.c | 19 +++++++++++++++++++
libavutil/dict.c | 18 ------------------
libavutil/dict_internal.h | 37 -------------------------------------
10 files changed, 36 insertions(+), 67 deletions(-)
delete mode 100644 libavutil/dict_internal.h
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index c51f64a588..b90ed34b1c 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -28,7 +28,6 @@
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/dict.h"
-#include "libavutil/dict_internal.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/internal.h"
@@ -826,7 +825,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream,
) {
// timezone is ignored, since there is no easy way to offset the UTC
// timestamp into the specified timezone
- avpriv_dict_set_timestamp(&s->metadata, key, 1000 * (int64_t)date.milliseconds);
+ ff_dict_set_timestamp(&s->metadata, key, 1000 * (int64_t)date.milliseconds);
}
}
diff --git a/libavformat/ifv.c b/libavformat/ifv.c
index 0cfd2763a9..f0263ed3b4 100644
--- a/libavformat/ifv.c
+++ b/libavformat/ifv.c
@@ -21,7 +21,6 @@
*/
#include "libavutil/channel_layout.h"
-#include "libavutil/dict_internal.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
@@ -96,7 +95,7 @@ static int parse_header(AVFormatContext *s)
uint32_t vid_magic;
avio_skip(s->pb, 0x34);
- avpriv_dict_set_timestamp(&s->metadata, "creation_time", avio_rl32(s->pb) * 1000000LL);
+ ff_dict_set_timestamp(&s->metadata, "creation_time", avio_rl32(s->pb) * 1000000LL);
avio_skip(s->pb, 0x24);
ifv->width = avio_rl16(s->pb);
diff --git a/libavformat/internal.h b/libavformat/internal.h
index b909adf209..1cf162c2bd 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -651,4 +651,15 @@ int ff_match_url_ext(const char *url, const char *extensions);
int ff_get_frame_filename(char *buf, int buf_size, const char *path,
int64_t number, int flags);
+/**
+ * Set a dictionary value to an ISO-8601 compliant timestamp string.
+ *
+ * @param dict pointer to a pointer to a dictionary struct. If *dict is NULL
+ * a dictionary struct is allocated and put in *dict.
+ * @param key metadata key
+ * @param timestamp unix timestamp in microseconds
+ * @return <0 on error
+ */
+int ff_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp);
+
#endif /* AVFORMAT_INTERNAL_H */
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index efa3e44c85..d4b7ae112c 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -38,7 +38,6 @@
#include "libavutil/base64.h"
#include "libavutil/bprint.h"
#include "libavutil/dict.h"
-#include "libavutil/dict_internal.h"
#include "libavutil/display.h"
#include "libavutil/hdr_dynamic_metadata.h"
#include "libavutil/intfloat.h"
@@ -2137,7 +2136,7 @@ static int matroska_aac_sri(int samplerate)
static void matroska_metadata_creation_time(AVDictionary **metadata, int64_t date_utc)
{
/* Convert to seconds and adjust by number of seconds between 2001-01-01 and Epoch */
- avpriv_dict_set_timestamp(metadata, "creation_time", date_utc / 1000 + 978307200000000LL);
+ ff_dict_set_timestamp(metadata, "creation_time", date_utc / 1000 + 978307200000000LL);
}
static int matroska_parse_flac(AVFormatContext *s,
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 57d9364ea2..cb96521e81 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -32,7 +32,6 @@
#include "libavutil/attributes.h"
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
-#include "libavutil/dict_internal.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/intfloat.h"
@@ -1858,7 +1857,7 @@ static void mov_metadata_creation_time(MOVContext *c, AVIOContext *pb, AVDiction
return;
}
- avpriv_dict_set_timestamp(metadata, "creation_time", time * 1000000);
+ ff_dict_set_timestamp(metadata, "creation_time", time * 1000000);
}
}
diff --git a/libavformat/mux_utils.c b/libavformat/mux_utils.c
index ed1242a6a2..86d333dbe7 100644
--- a/libavformat/mux_utils.c
+++ b/libavformat/mux_utils.c
@@ -20,7 +20,6 @@
*/
#include "libavutil/dict.h"
-#include "libavutil/dict_internal.h"
#include "libavutil/internal.h"
#include "libavutil/log.h"
#include "libavutil/mem.h"
@@ -157,6 +156,6 @@ int ff_standardize_creation_time(AVFormatContext *s)
int64_t timestamp;
int ret = ff_parse_creation_time_metadata(s, ×tamp, 0);
if (ret == 1)
- return avpriv_dict_set_timestamp(&s->metadata, "creation_time", timestamp);
+ return ff_dict_set_timestamp(&s->metadata, "creation_time", timestamp);
return ret;
}
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 3b87063c3f..1978b2cec5 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -56,7 +56,6 @@
#include "libavcodec/defs.h"
#include "libavcodec/internal.h"
#include "libavutil/channel_layout.h"
-#include "libavutil/dict_internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/parseutils.h"
#include "libavutil/timecode.h"
@@ -3207,7 +3206,7 @@ static int64_t mxf_timestamp_to_int64(uint64_t timestamp)
#define SET_TS_METADATA(pb, name, var, str) do { \
var = avio_rb64(pb); \
- if (var && (ret = avpriv_dict_set_timestamp(&s->metadata, name, mxf_timestamp_to_int64(var))) < 0) \
+ if (var && (ret = ff_dict_set_timestamp(&s->metadata, name, mxf_timestamp_to_int64(var))) < 0) \
return ret; \
} while (0)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index e892e8bde7..eee7b9e0e3 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -20,14 +20,17 @@
*/
#include <stdint.h>
+#include <time.h>
#include "config.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
+#include "libavutil/dict.h"
#include "libavutil/internal.h"
#include "libavutil/mem.h"
#include "libavutil/time.h"
+#include "libavutil/time_internal.h"
#include "libavcodec/internal.h"
@@ -596,3 +599,19 @@ int ff_bprint_to_codecpar_extradata(AVCodecParameters *par, struct AVBPrint *buf
par->extradata_size = buf->len;
return 0;
}
+
+int ff_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp)
+{
+ time_t seconds = timestamp / 1000000;
+ struct tm *ptm, tmbuf;
+ ptm = gmtime_r(&seconds, &tmbuf);
+ if (ptm) {
+ char buf[32];
+ if (!strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S", ptm))
+ return AVERROR_EXTERNAL;
+ av_strlcatf(buf, sizeof(buf), ".%06dZ", (int)(timestamp % 1000000));
+ return av_dict_set(dict, key, buf, 0);
+ } else {
+ return AVERROR_EXTERNAL;
+ }
+}
diff --git a/libavutil/dict.c b/libavutil/dict.c
index 6fb09399ba..a5fa2d3bfa 100644
--- a/libavutil/dict.c
+++ b/libavutil/dict.c
@@ -25,10 +25,8 @@
#include "avassert.h"
#include "avstring.h"
#include "dict.h"
-#include "dict_internal.h"
#include "error.h"
#include "mem.h"
-#include "time_internal.h"
#include "bprint.h"
struct AVDictionary {
@@ -274,19 +272,3 @@ int av_dict_get_string(const AVDictionary *m, char **buffer,
}
return av_bprint_finalize(&bprint, buffer);
}
-
-int avpriv_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp)
-{
- time_t seconds = timestamp / 1000000;
- struct tm *ptm, tmbuf;
- ptm = gmtime_r(&seconds, &tmbuf);
- if (ptm) {
- char buf[32];
- if (!strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S", ptm))
- return AVERROR_EXTERNAL;
- av_strlcatf(buf, sizeof(buf), ".%06dZ", (int)(timestamp % 1000000));
- return av_dict_set(dict, key, buf, 0);
- } else {
- return AVERROR_EXTERNAL;
- }
-}
diff --git a/libavutil/dict_internal.h b/libavutil/dict_internal.h
deleted file mode 100644
index 6d5b0dc2b0..0000000000
--- a/libavutil/dict_internal.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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_DICT_INTERNAL_H
-#define AVUTIL_DICT_INTERNAL_H
-
-#include <stdint.h>
-
-#include "dict.h"
-
-/**
- * Set a dictionary value to an ISO-8601 compliant timestamp string.
- *
- * @param dict pointer to a pointer to a dictionary struct. If *dict is NULL
- * a dictionary struct is allocated and put in *dict.
- * @param key metadata key
- * @param timestamp unix timestamp in microseconds
- * @return <0 on error
- */
-int avpriv_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp);
-
-#endif /* AVUTIL_DICT_INTERNAL_H */
--
2.45.2
[-- Attachment #3: 0002-avutil-float_dsp-Unavpriv-avpriv_scalarproduct_float.patch --]
[-- Type: text/x-patch, Size: 15438 bytes --]
From 09ebb5dbefcfa588f4021269438674fab631a60b Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Sat, 15 Mar 2025 22:26:26 +0100
Subject: [PATCH 2/2] avutil/float_dsp: Unavpriv avpriv_scalarproduct_float_c()
Not worth the overhead of exporting it.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavcodec/Makefile | 3 ++-
libavcodec/acelp_pitch_delay.c | 2 +-
libavcodec/acelp_vectors.c | 4 ++--
libavcodec/float_scalarproduct.c | 19 ++++++++++++++++++
libavcodec/qcelpdec.c | 8 ++++----
libavcodec/ra288.c | 4 ++--
libavcodec/sipr.c | 12 ++++++------
libavcodec/sipr16k.c | 6 +++---
libavcodec/wmavoice.c | 16 ++++++++--------
libavutil/Makefile | 1 +
libavutil/float_dsp.c | 13 +------------
libavutil/float_dsp.h | 2 +-
libavutil/float_scalarproduct.c | 33 ++++++++++++++++++++++++++++++++
13 files changed, 83 insertions(+), 40 deletions(-)
create mode 100644 libavcodec/float_scalarproduct.c
create mode 100644 libavutil/float_scalarproduct.c
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 3c7043a617..3c2c614f1a 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -64,7 +64,8 @@ OBJS = ac3_parser.o \
vorbis_parser.o \
xiph.o \
-SHLIBOBJS = timecode_internal.o \
+SHLIBOBJS = float_scalarproduct.o \
+ timecode_internal.o \
# subsystems
include $(SRC_PATH)/libavcodec/aac/Makefile
diff --git a/libavcodec/acelp_pitch_delay.c b/libavcodec/acelp_pitch_delay.c
index 6cf880e4ac..65f659cb2e 100644
--- a/libavcodec/acelp_pitch_delay.c
+++ b/libavcodec/acelp_pitch_delay.c
@@ -90,7 +90,7 @@ float ff_amr_set_fixed_gain(float fixed_gain_factor, float fixed_mean_energy,
// Note 10^(0.05 * -10log(average x2)) = 1/sqrt((average x2)).
float val = fixed_gain_factor *
ff_exp10(0.05 *
- (avpriv_scalarproduct_float_c(pred_table, prediction_error, 4) +
+ (ff_scalarproduct_float_c(pred_table, prediction_error, 4) +
energy_mean)) /
sqrtf(fixed_mean_energy ? fixed_mean_energy : 1.0);
diff --git a/libavcodec/acelp_vectors.c b/libavcodec/acelp_vectors.c
index 04cbffd79f..f47da40008 100644
--- a/libavcodec/acelp_vectors.c
+++ b/libavcodec/acelp_vectors.c
@@ -193,7 +193,7 @@ void ff_adaptive_gain_control(float *out, const float *in, float speech_energ,
int size, float alpha, float *gain_mem)
{
int i;
- float postfilter_energ = avpriv_scalarproduct_float_c(in, in, size);
+ float postfilter_energ = ff_scalarproduct_float_c(in, in, size);
float gain_scale_factor = 1.0;
float mem = *gain_mem;
@@ -214,7 +214,7 @@ void ff_scale_vector_to_given_sum_of_squares(float *out, const float *in,
float sum_of_squares, const int n)
{
int i;
- float scalefactor = avpriv_scalarproduct_float_c(in, in, n);
+ float scalefactor = ff_scalarproduct_float_c(in, in, n);
if (scalefactor)
scalefactor = sqrt(sum_of_squares / scalefactor);
for (i = 0; i < n; i++)
diff --git a/libavcodec/float_scalarproduct.c b/libavcodec/float_scalarproduct.c
new file mode 100644
index 0000000000..647f0ec72d
--- /dev/null
+++ b/libavcodec/float_scalarproduct.c
@@ -0,0 +1,19 @@
+/*
+ * 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
+ */
+
+#include "libavutil/float_scalarproduct.c"
diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c
index 1435fecc2e..7d23a11102 100644
--- a/libavcodec/qcelpdec.c
+++ b/libavcodec/qcelpdec.c
@@ -397,7 +397,7 @@ static void apply_gain_ctrl(float *v_out, const float *v_ref, const float *v_in)
int i;
for (i = 0; i < 160; i += 40) {
- float res = avpriv_scalarproduct_float_c(v_ref + i, v_ref + i, 40);
+ float res = ff_scalarproduct_float_c(v_ref + i, v_ref + i, 40);
ff_scale_vector_to_given_sum_of_squares(v_out + i, v_in + i, res, 40);
}
}
@@ -676,9 +676,9 @@ static void postfilter(QCELPContext *q, float *samples, float *lpc)
ff_tilt_compensation(&q->postfilter_tilt_mem, 0.3, pole_out + 10, 160);
ff_adaptive_gain_control(samples, pole_out + 10,
- avpriv_scalarproduct_float_c(q->formant_mem + 10,
- q->formant_mem + 10,
- 160),
+ ff_scalarproduct_float_c(q->formant_mem + 10,
+ q->formant_mem + 10,
+ 160),
160, 0.9375, &q->postfilter_agc_mem);
}
diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c
index 5b186a7a3d..aa499506b7 100644
--- a/libavcodec/ra288.c
+++ b/libavcodec/ra288.c
@@ -90,7 +90,7 @@ static av_cold int ra288_decode_init(AVCodecContext *avctx)
static void convolve(float *tgt, const float *src, int len, int n)
{
for (; n >= 0; n--)
- tgt[n] = avpriv_scalarproduct_float_c(src, src - n, len);
+ tgt[n] = ff_scalarproduct_float_c(src, src - n, len);
}
@@ -119,7 +119,7 @@ static void decode(RA288Context *ractx, float gain, int cb_coef)
for (i=0; i < 5; i++)
buffer[i] = codetable[cb_coef][i] * sumsum;
- sum = avpriv_scalarproduct_float_c(buffer, buffer, 5);
+ sum = ff_scalarproduct_float_c(buffer, buffer, 5);
sum = FFMAX(sum, 5.0 / (1<<24));
diff --git a/libavcodec/sipr.c b/libavcodec/sipr.c
index 3ddc579f09..ebd7dab03c 100644
--- a/libavcodec/sipr.c
+++ b/libavcodec/sipr.c
@@ -412,9 +412,9 @@ static void decode_frame(SiprContext *ctx, SiprParameters *params,
convolute_with_sparse(fixed_vector, &fixed_cb, impulse_response,
SUBFR_SIZE);
- avg_energy = (0.01 + avpriv_scalarproduct_float_c(fixed_vector,
- fixed_vector,
- SUBFR_SIZE)) /
+ avg_energy = (0.01 + ff_scalarproduct_float_c(fixed_vector,
+ fixed_vector,
+ SUBFR_SIZE)) /
SUBFR_SIZE;
ctx->past_pitch_gain = pitch_gain = gain_cb[params->gc_index[i]][0];
@@ -456,9 +456,9 @@ static void decode_frame(SiprContext *ctx, SiprParameters *params,
if (ctx->mode == MODE_5k0) {
for (i = 0; i < subframe_count; i++) {
- float energy = avpriv_scalarproduct_float_c(ctx->postfilter_syn5k0 + LP_FILTER_ORDER + i * SUBFR_SIZE,
- ctx->postfilter_syn5k0 + LP_FILTER_ORDER + i * SUBFR_SIZE,
- SUBFR_SIZE);
+ float energy = ff_scalarproduct_float_c(ctx->postfilter_syn5k0 + LP_FILTER_ORDER + i * SUBFR_SIZE,
+ ctx->postfilter_syn5k0 + LP_FILTER_ORDER + i * SUBFR_SIZE,
+ SUBFR_SIZE);
ff_adaptive_gain_control(&synth[i * SUBFR_SIZE],
&synth[i * SUBFR_SIZE], energy,
SUBFR_SIZE, 0.9, &ctx->postfilter_agc);
diff --git a/libavcodec/sipr16k.c b/libavcodec/sipr16k.c
index 9c8f684003..ab892d0547 100644
--- a/libavcodec/sipr16k.c
+++ b/libavcodec/sipr16k.c
@@ -163,11 +163,11 @@ static float acelp_decode_gain_codef(float gain_corr_factor, const float *fc_v,
const float *ma_prediction_coeff,
int subframe_size, int ma_pred_order)
{
- mr_energy += avpriv_scalarproduct_float_c(quant_energy, ma_prediction_coeff,
- ma_pred_order);
+ mr_energy += ff_scalarproduct_float_c(quant_energy, ma_prediction_coeff,
+ ma_pred_order);
mr_energy = gain_corr_factor * exp(M_LN10 / 20. * mr_energy) /
- sqrt((0.01 + avpriv_scalarproduct_float_c(fc_v, fc_v, subframe_size)));
+ sqrt((0.01 + ff_scalarproduct_float_c(fc_v, fc_v, subframe_size)));
return mr_energy;
}
diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c
index a1f89aeb76..e89a5c2bfb 100644
--- a/libavcodec/wmavoice.c
+++ b/libavcodec/wmavoice.c
@@ -559,7 +559,7 @@ static int kalman_smoothen(WMAVoiceContext *s, int pitch,
/* find best fitting point in history */
do {
- dot = avpriv_scalarproduct_float_c(in, ptr, size);
+ dot = ff_scalarproduct_float_c(in, ptr, size);
if (dot > optimal_gain) {
optimal_gain = dot;
best_hist_ptr = ptr;
@@ -568,7 +568,7 @@ static int kalman_smoothen(WMAVoiceContext *s, int pitch,
if (optimal_gain <= 0)
return -1;
- dot = avpriv_scalarproduct_float_c(best_hist_ptr, best_hist_ptr, size);
+ dot = ff_scalarproduct_float_c(best_hist_ptr, best_hist_ptr, size);
if (dot <= 0) // would be 1.0
return -1;
@@ -598,8 +598,8 @@ static float tilt_factor(const float *lpcs, int n_lpcs)
{
float rh0, rh1;
- rh0 = 1.0 + avpriv_scalarproduct_float_c(lpcs, lpcs, n_lpcs);
- rh1 = lpcs[0] + avpriv_scalarproduct_float_c(lpcs, &lpcs[1], n_lpcs - 1);
+ rh0 = 1.0 + ff_scalarproduct_float_c(lpcs, lpcs, n_lpcs);
+ rh1 = lpcs[0] + ff_scalarproduct_float_c(lpcs, &lpcs[1], n_lpcs - 1);
return rh1 / rh0;
}
@@ -699,8 +699,8 @@ static void calc_input_response(WMAVoiceContext *s, float *lpcs_src,
-1.8 * tilt_factor(coeffs_dst, remainder - 1),
coeffs_dst, remainder);
}
- sq = (1.0 / 64.0) * sqrtf(1 / avpriv_scalarproduct_float_c(coeffs_dst, coeffs_dst,
- remainder));
+ sq = (1.0 / 64.0) * sqrtf(1 / ff_scalarproduct_float_c(coeffs_dst, coeffs_dst,
+ remainder));
for (n = 0; n < remainder; n++)
coeffs_dst[n] *= sq;
}
@@ -1378,8 +1378,8 @@ static void synth_block_fcb_acb(WMAVoiceContext *s, GetBitContext *gb,
/* Calculate gain for adaptive & fixed codebook signal.
* see ff_amr_set_fixed_gain(). */
idx = get_bits(gb, 7);
- fcb_gain = expf(avpriv_scalarproduct_float_c(s->gain_pred_err,
- gain_coeff, 6) -
+ fcb_gain = expf(ff_scalarproduct_float_c(s->gain_pred_err,
+ gain_coeff, 6) -
5.2409161640 + wmavoice_gain_codebook_fcb[idx]);
acb_gain = wmavoice_gain_codebook_acb[idx];
pred_err = av_clipf(wmavoice_gain_codebook_fcb[idx],
diff --git a/libavutil/Makefile b/libavutil/Makefile
index b7ed339ab3..a5a92ea5f7 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -139,6 +139,7 @@ OBJS = adler32.o \
file.o \
file_open.o \
float_dsp.o \
+ float_scalarproduct.o \
film_grain_params.o \
fixed_dsp.o \
frame.o \
diff --git a/libavutil/float_dsp.c b/libavutil/float_dsp.c
index 08bbc85e3e..f38ad565cf 100644
--- a/libavutil/float_dsp.c
+++ b/libavutil/float_dsp.c
@@ -121,17 +121,6 @@ static void butterflies_float_c(float *restrict v1, float *restrict v2,
}
}
-float avpriv_scalarproduct_float_c(const float *v1, const float *v2, int len)
-{
- float p = 0.0;
- int i;
-
- for (i = 0; i < len; i++)
- p += v1[i] * v2[i];
-
- return p;
-}
-
double ff_scalarproduct_double_c(const double *v1, const double *v2,
size_t len)
{
@@ -159,7 +148,7 @@ av_cold AVFloatDSPContext *avpriv_float_dsp_alloc(int bit_exact)
fdsp->vector_fmul_add = vector_fmul_add_c;
fdsp->vector_fmul_reverse = vector_fmul_reverse_c;
fdsp->butterflies_float = butterflies_float_c;
- fdsp->scalarproduct_float = avpriv_scalarproduct_float_c;
+ fdsp->scalarproduct_float = ff_scalarproduct_float_c;
fdsp->scalarproduct_double = ff_scalarproduct_double_c;
#if ARCH_AARCH64
diff --git a/libavutil/float_dsp.h b/libavutil/float_dsp.h
index a99edc39bb..ab34277c20 100644
--- a/libavutil/float_dsp.h
+++ b/libavutil/float_dsp.h
@@ -215,7 +215,7 @@ typedef struct AVFloatDSPContext {
*
* @return sum of elementwise products
*/
-float avpriv_scalarproduct_float_c(const float *v1, const float *v2, int len);
+float ff_scalarproduct_float_c(const float *v1, const float *v2, int len);
/**
* Return the scalar product of two vectors of doubles.
diff --git a/libavutil/float_scalarproduct.c b/libavutil/float_scalarproduct.c
new file mode 100644
index 0000000000..c7b3b72852
--- /dev/null
+++ b/libavutil/float_scalarproduct.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2005 Balatoni Denes
+ * Copyright 2006 Loren Merritt
+ *
+ * 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
+ */
+
+#include "float_dsp.h"
+
+float ff_scalarproduct_float_c(const float *v1, const float *v2, int len)
+{
+ float p = 0.0;
+
+ for (int i = 0; i < len; i++)
+ p += v1[i] * v2[i];
+
+ return p;
+}
+
--
2.45.2
[-- Attachment #4: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/31] Major library soname bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (31 preceding siblings ...)
2025-03-15 21:50 ` [FFmpeg-devel] [PATCH 00/31] Major library soname bump Andreas Rheinhardt
@ 2025-03-26 22:50 ` James Almer
2025-03-26 23:01 ` Sean McGovern
2025-03-28 5:07 ` Andreas Rheinhardt
2025-03-28 16:58 ` Andreas Rheinhardt
34 siblings, 1 reply; 46+ messages in thread
From: James Almer @ 2025-03-26 22:50 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 1988 bytes --]
On 2/23/2025 7:06 PM, James Almer wrote:
> It's been a year since the last bump, so lets get rid of old deprecated API
> in time for ffmpeg 8.0
>
> James Almer (30):
> avcodec: remove deprecated FF_API_SUBFRAMES
> avcodec: remove deprecated FF_API_TICKS_PER_FRAME
> avcodec: remove deprecated FF_API_DROPCHANGED
> avcodec: remove deprecated FF_API_AVFFT
> avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL
> avcodec: remove deprecated FF_API_AVCODEC_CLOSE
> avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE
> avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET
> avcodec: remove deprecated FF_API_QUALITY_FACTOR
> avcodec/version_major: postpone some deprecations until the next bump
> avdevice: remove deprecated FF_API_BKTR_DEVICE
> avdevice: remove deprecated FF_API_OPENGL_DEVICE
> avdevice: remove deprecated FF_API_SDL2_DEVICE
> avdevice/version_major: postpone some deprecations until the next bump
> avformat: remove deprecated FF_API_LAVF_SHORTEST
> avformat: remove deprecated FF_API_ALLOW_FLUSH
> avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA
> avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD
> avformat/version_major: postpone some deprecations until the next bump
> avfilter: remove deprecated FF_API_LINK_PUBLIC
> avfilter/version_major: postpone some deprecations until the next bump
> avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE
> avutil: remove deprecated FF_API_FRAME_PKT
> avutil: remove deprecated FF_API_INTERLACED_FRAME
> avutil: remove deprecated FF_API_FRAME_KEY
> avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED
> avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY
> avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS
> avutil/version_major: postpone some deprecations until the next bump
> libs: bump major version for all libraries
I'll apply this set (And Andreas' patches) soon.
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/31] Major library soname bump
2025-03-26 22:50 ` James Almer
@ 2025-03-26 23:01 ` Sean McGovern
2025-03-26 23:28 ` James Almer
0 siblings, 1 reply; 46+ messages in thread
From: Sean McGovern @ 2025-03-26 23:01 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Wed, Mar 26, 2025, 18:50 James Almer <jamrial@gmail.com> wrote:
> On 2/23/2025 7:06 PM, James Almer wrote:
> > It's been a year since the last bump, so lets get rid of old deprecated
> API
> > in time for ffmpeg 8.0
> >
> > James Almer (30):
> > avcodec: remove deprecated FF_API_SUBFRAMES
> > avcodec: remove deprecated FF_API_TICKS_PER_FRAME
> > avcodec: remove deprecated FF_API_DROPCHANGED
> > avcodec: remove deprecated FF_API_AVFFT
> > avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL
> > avcodec: remove deprecated FF_API_AVCODEC_CLOSE
> > avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE
> > avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET
> > avcodec: remove deprecated FF_API_QUALITY_FACTOR
> > avcodec/version_major: postpone some deprecations until the next bump
> > avdevice: remove deprecated FF_API_BKTR_DEVICE
> > avdevice: remove deprecated FF_API_OPENGL_DEVICE
> > avdevice: remove deprecated FF_API_SDL2_DEVICE
> > avdevice/version_major: postpone some deprecations until the next bump
> > avformat: remove deprecated FF_API_LAVF_SHORTEST
> > avformat: remove deprecated FF_API_ALLOW_FLUSH
> > avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA
> > avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD
> > avformat/version_major: postpone some deprecations until the next bump
> > avfilter: remove deprecated FF_API_LINK_PUBLIC
> > avfilter/version_major: postpone some deprecations until the next bump
> > avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE
> > avutil: remove deprecated FF_API_FRAME_PKT
> > avutil: remove deprecated FF_API_INTERLACED_FRAME
> > avutil: remove deprecated FF_API_FRAME_KEY
> > avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED
> > avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY
> > avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS
> > avutil/version_major: postpone some deprecations until the next bump
> > libs: bump major version for all libraries
>
> I'll apply this set (And Andreas' patches) soon.
>
> _______________________________________________
> 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".
>
There wasn't a lot of mailing list noise around this patch set which kind
of surprises me.
Will we get backlash from any of our downstreams on this?
Or is it just par for the course since the next release will likely be 8.0?
-- Sean McGovern
>
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/31] Major library soname bump
2025-03-26 23:01 ` Sean McGovern
@ 2025-03-26 23:28 ` James Almer
0 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-03-26 23:28 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 2857 bytes --]
On 3/26/2025 8:01 PM, Sean McGovern wrote:
> On Wed, Mar 26, 2025, 18:50 James Almer <jamrial@gmail.com> wrote:
>
>> On 2/23/2025 7:06 PM, James Almer wrote:
>>> It's been a year since the last bump, so lets get rid of old deprecated
>> API
>>> in time for ffmpeg 8.0
>>>
>>> James Almer (30):
>>> avcodec: remove deprecated FF_API_SUBFRAMES
>>> avcodec: remove deprecated FF_API_TICKS_PER_FRAME
>>> avcodec: remove deprecated FF_API_DROPCHANGED
>>> avcodec: remove deprecated FF_API_AVFFT
>>> avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL
>>> avcodec: remove deprecated FF_API_AVCODEC_CLOSE
>>> avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE
>>> avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET
>>> avcodec: remove deprecated FF_API_QUALITY_FACTOR
>>> avcodec/version_major: postpone some deprecations until the next bump
>>> avdevice: remove deprecated FF_API_BKTR_DEVICE
>>> avdevice: remove deprecated FF_API_OPENGL_DEVICE
>>> avdevice: remove deprecated FF_API_SDL2_DEVICE
>>> avdevice/version_major: postpone some deprecations until the next bump
>>> avformat: remove deprecated FF_API_LAVF_SHORTEST
>>> avformat: remove deprecated FF_API_ALLOW_FLUSH
>>> avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA
>>> avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD
>>> avformat/version_major: postpone some deprecations until the next bump
>>> avfilter: remove deprecated FF_API_LINK_PUBLIC
>>> avfilter/version_major: postpone some deprecations until the next bump
>>> avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE
>>> avutil: remove deprecated FF_API_FRAME_PKT
>>> avutil: remove deprecated FF_API_INTERLACED_FRAME
>>> avutil: remove deprecated FF_API_FRAME_KEY
>>> avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED
>>> avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY
>>> avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS
>>> avutil/version_major: postpone some deprecations until the next bump
>>> libs: bump major version for all libraries
>>
>> I'll apply this set (And Andreas' patches) soon.
>>
>> _______________________________________________
>> 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".
>>
>
> There wasn't a lot of mailing list noise around this patch set which kind
> of surprises me.
>
> Will we get backlash from any of our downstreams on this?
> Or is it just par for the course since the next release will likely be 8.0?
Yes, next release will be 8.0, and we always do a bump once a year at
the most, to remove deprecated API.
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 30/30] libs: bump major version for all libraries
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 30/30] libs: bump major version for all libraries James Almer
@ 2025-03-26 23:41 ` Wang Bin
0 siblings, 0 replies; 46+ messages in thread
From: Wang Bin @ 2025-03-26 23:41 UTC (permalink / raw)
To: FFmpeg development discussions and patches
James Almer <jamrial@gmail.com> 于2025年2月24日周一 06:21写道:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> libavcodec/version.h | 4 ++--
> libavcodec/version_major.h | 2 +-
> libavdevice/version.h | 2 +-
> libavdevice/version_major.h | 2 +-
> libavfilter/version.h | 2 +-
> libavfilter/version_major.h | 2 +-
> libavformat/version.h | 4 ++--
> libavformat/version_major.h | 2 +-
> libavutil/version.h | 4 ++--
> libpostproc/version.h | 2 +-
> libpostproc/version_major.h | 2 +-
> libswresample/version.h | 2 +-
> libswresample/version_major.h | 2 +-
> libswscale/version.h | 2 +-
> libswscale/version_major.h | 2 +-
> 15 files changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index 62e7eba3db..8c3d476003 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -29,8 +29,8 @@
>
> #include "version_major.h"
>
> -#define LIBAVCODEC_VERSION_MINOR 33
> -#define LIBAVCODEC_VERSION_MICRO 102
> +#define LIBAVCODEC_VERSION_MINOR 0
> +#define LIBAVCODEC_VERSION_MICRO 100
>
> #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
> LIBAVCODEC_VERSION_MINOR, \
> diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
> index b4f4936786..75f9fce9d3 100644
> --- a/libavcodec/version_major.h
> +++ b/libavcodec/version_major.h
> @@ -25,7 +25,7 @@
> * Libavcodec version macros.
> */
>
> -#define LIBAVCODEC_VERSION_MAJOR 61
> +#define LIBAVCODEC_VERSION_MAJOR 62
>
> /**
> * FF_API_* defines may be placed below to indicate public API that will
> be
> diff --git a/libavdevice/version.h b/libavdevice/version.h
> index 0e4ce64598..25befdead1 100644
> --- a/libavdevice/version.h
> +++ b/libavdevice/version.h
> @@ -29,7 +29,7 @@
>
> #include "version_major.h"
>
> -#define LIBAVDEVICE_VERSION_MINOR 4
> +#define LIBAVDEVICE_VERSION_MINOR 0
> #define LIBAVDEVICE_VERSION_MICRO 100
>
> #define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR,
> \
> diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
> index 470e5626be..191511cdcc 100644
> --- a/libavdevice/version_major.h
> +++ b/libavdevice/version_major.h
> @@ -25,7 +25,7 @@
> * Libavdevice version macros
> */
>
> -#define LIBAVDEVICE_VERSION_MAJOR 61
> +#define LIBAVDEVICE_VERSION_MAJOR 62
>
> /**
> * FF_API_* defines may be placed below to indicate public API that will
> be
> diff --git a/libavfilter/version.h b/libavfilter/version.h
> index 77f38cb9b4..d5a6bc143a 100644
> --- a/libavfilter/version.h
> +++ b/libavfilter/version.h
> @@ -31,7 +31,7 @@
>
> #include "version_major.h"
>
> -#define LIBAVFILTER_VERSION_MINOR 9
> +#define LIBAVFILTER_VERSION_MINOR 0
> #define LIBAVFILTER_VERSION_MICRO 100
>
>
> diff --git a/libavfilter/version_major.h b/libavfilter/version_major.h
> index cd5c01d7c3..af6f59832f 100644
> --- a/libavfilter/version_major.h
> +++ b/libavfilter/version_major.h
> @@ -27,7 +27,7 @@
> * Libavfilter version macros
> */
>
> -#define LIBAVFILTER_VERSION_MAJOR 10
> +#define LIBAVFILTER_VERSION_MAJOR 11
>
> /**
> * FF_API_* defines may be placed below to indicate public API that will
> be
> diff --git a/libavformat/version.h b/libavformat/version.h
> index 6ffdf61b43..752aac16f7 100644
> --- a/libavformat/version.h
> +++ b/libavformat/version.h
> @@ -31,8 +31,8 @@
>
> #include "version_major.h"
>
> -#define LIBAVFORMAT_VERSION_MINOR 9
> -#define LIBAVFORMAT_VERSION_MICRO 107
> +#define LIBAVFORMAT_VERSION_MINOR 0
> +#define LIBAVFORMAT_VERSION_MICRO 100
>
> #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR,
> \
> LIBAVFORMAT_VERSION_MINOR,
> \
> diff --git a/libavformat/version_major.h b/libavformat/version_major.h
> index be3e13c334..b5583c9e11 100644
> --- a/libavformat/version_major.h
> +++ b/libavformat/version_major.h
> @@ -29,7 +29,7 @@
>
> // Major bumping may affect Ticket5467, 5421, 5451(compatibility with
> Chromium)
> // Also please add any ticket numbers that you believe might be affected
> here
> -#define LIBAVFORMAT_VERSION_MAJOR 61
> +#define LIBAVFORMAT_VERSION_MAJOR 60
>
LIBAVFORMAT_VERSION_MAJOR should be 62
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/31] Major library soname bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (32 preceding siblings ...)
2025-03-26 22:50 ` James Almer
@ 2025-03-28 5:07 ` Andreas Rheinhardt
2025-03-28 12:11 ` James Almer
2025-03-28 16:58 ` Andreas Rheinhardt
34 siblings, 1 reply; 46+ messages in thread
From: Andreas Rheinhardt @ 2025-03-28 5:07 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
> It's been a year since the last bump, so lets get rid of old deprecated API
> in time for ffmpeg 8.0
>
Can we actually remove AVCodecParser.split now? It is unused for years,
but I never removed it because AVCodecParser does not have the typical
public-private demarcation ("All fields below this line are not part of
the public API"). For the same reason, I never made the private fields
of AVCodecParser actually private.
- Andreas
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/31] Major library soname bump
2025-03-28 5:07 ` Andreas Rheinhardt
@ 2025-03-28 12:11 ` James Almer
0 siblings, 0 replies; 46+ messages in thread
From: James Almer @ 2025-03-28 12:11 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 644 bytes --]
On 3/28/2025 2:07 AM, Andreas Rheinhardt wrote:
> James Almer:
>> It's been a year since the last bump, so lets get rid of old deprecated API
>> in time for ffmpeg 8.0
>>
> Can we actually remove AVCodecParser.split now? It is unused for years,
> but I never removed it because AVCodecParser does not have the typical
> public-private demarcation ("All fields below this line are not part of
> the public API"). For the same reason, I never made the private fields
> of AVCodecParser actually private.
We can deprecate it and remove it in a year or so, but we can't remove
it now without warning since users may be "using" it.
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/31] Major library soname bump
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
` (33 preceding siblings ...)
2025-03-28 5:07 ` Andreas Rheinhardt
@ 2025-03-28 16:58 ` Andreas Rheinhardt
34 siblings, 0 replies; 46+ messages in thread
From: Andreas Rheinhardt @ 2025-03-28 16:58 UTC (permalink / raw)
To: ffmpeg-devel
[-- Attachment #1: Type: text/plain, Size: 155 bytes --]
James Almer:
> It's been a year since the last bump, so lets get rid of old deprecated API
> in time for ffmpeg 8.0
>
And another unavpriving.
- Andreas
[-- Attachment #2: 0001-avcodec-raw-Duplicate-raw_pix_fmt_tags-into-fourcc2p.patch --]
[-- Type: text/x-patch, Size: 38319 bytes --]
From b07fa1e5794c4823d793c37d9353e3628b3f8615 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Fri, 28 Mar 2025 17:15:22 +0100
Subject: [PATCH] avcodec/raw: Duplicate raw_pix_fmt_tags into fourcc2pixfmt
tool
Do this instead of exporting raw_pix_fmt_tags
via avpriv_get_raw_pix_fmt_tags().
For shared builds this will lead to an increase in the
combined size of the lavc and fourcc2pixfmt binaries
(because the overhead of exporting avpriv_get_raw_pix_fmt_tags()
is dwarfed by the size of the array), but given that
fourcc2pixfmt is a test tool that is not widely distributed
it does not really matter. For static builds the opposite
is true (the rest of lavc/raw.o is no longer pulled into
the test tool and the getter can be removed, too).
This patch has the additional benefit of removing
struct PixelFormatTag from the ABI.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavcodec/raw.c | 295 +------------------------------
libavcodec/raw.h | 2 -
libavcodec/raw_pix_fmt_tags.h | 316 ++++++++++++++++++++++++++++++++++
tools/fourcc2pixfmt.c | 7 +-
4 files changed, 321 insertions(+), 299 deletions(-)
create mode 100644 libavcodec/raw_pix_fmt_tags.h
diff --git a/libavcodec/raw.c b/libavcodec/raw.c
index 7a332c0fb7..095bd4310b 100644
--- a/libavcodec/raw.c
+++ b/libavcodec/raw.c
@@ -24,302 +24,9 @@
* Raw Video Codec
*/
-#include "libavutil/macros.h"
#include "avcodec.h"
#include "raw.h"
-
-static const PixelFormatTag raw_pix_fmt_tags[] = {
- { AV_PIX_FMT_YUV420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */
- { AV_PIX_FMT_YUV420P, MKTAG('I', 'Y', 'U', 'V') },
- { AV_PIX_FMT_YUV420P, MKTAG('y', 'v', '1', '2') },
- { AV_PIX_FMT_YUV420P, MKTAG('Y', 'V', '1', '2') },
- { AV_PIX_FMT_YUV410P, MKTAG('Y', 'U', 'V', '9') },
- { AV_PIX_FMT_YUV410P, MKTAG('Y', 'V', 'U', '9') },
- { AV_PIX_FMT_YUV411P, MKTAG('Y', '4', '1', 'B') },
- { AV_PIX_FMT_YUV422P, MKTAG('Y', '4', '2', 'B') },
- { AV_PIX_FMT_YUV422P, MKTAG('P', '4', '2', '2') },
- { AV_PIX_FMT_YUV422P, MKTAG('Y', 'V', '1', '6') },
- /* yuvjXXX formats are deprecated hacks specific to libav*,
- they are identical to yuvXXX */
- { AV_PIX_FMT_YUVJ420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */
- { AV_PIX_FMT_YUVJ420P, MKTAG('I', 'Y', 'U', 'V') },
- { AV_PIX_FMT_YUVJ420P, MKTAG('Y', 'V', '1', '2') },
- { AV_PIX_FMT_YUVJ422P, MKTAG('Y', '4', '2', 'B') },
- { AV_PIX_FMT_YUVJ422P, MKTAG('P', '4', '2', '2') },
- { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', '0', '0') },
- { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', ' ', ' ') },
-
- { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', '2') }, /* Packed formats */
- { AV_PIX_FMT_YUYV422, MKTAG('Y', '4', '2', '2') },
- { AV_PIX_FMT_YUYV422, MKTAG('V', '4', '2', '2') },
- { AV_PIX_FMT_YUYV422, MKTAG('V', 'Y', 'U', 'Y') },
- { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'N', 'V') },
- { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', 'V') },
- { AV_PIX_FMT_YVYU422, MKTAG('Y', 'V', 'Y', 'U') }, /* Philips */
- { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'V', 'Y') },
- { AV_PIX_FMT_UYVY422, MKTAG('H', 'D', 'Y', 'C') },
- { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'V') },
- { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'Y') },
- { AV_PIX_FMT_UYVY422, MKTAG('u', 'y', 'v', '1') },
- { AV_PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', '1') },
- { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'R', 'n') }, /* Avid AVI Codec 1:1 */
- { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', '1', 'x') }, /* Avid 1:1x */
- { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'u', 'p') },
- { AV_PIX_FMT_UYVY422, MKTAG('V', 'D', 'T', 'Z') }, /* SoftLab-NSK VideoTizer */
- { AV_PIX_FMT_UYVY422, MKTAG('a', 'u', 'v', '2') },
- { AV_PIX_FMT_UYVY422, MKTAG('c', 'y', 'u', 'v') }, /* CYUV is also Creative YUV */
- { AV_PIX_FMT_UYYVYY411, MKTAG('Y', '4', '1', '1') },
- { AV_PIX_FMT_GRAY8, MKTAG('G', 'R', 'E', 'Y') },
- { AV_PIX_FMT_NV12, MKTAG('N', 'V', '1', '2') },
- { AV_PIX_FMT_NV21, MKTAG('N', 'V', '2', '1') },
- { AV_PIX_FMT_VUYA, MKTAG('A', 'Y', 'U', 'V') }, /* MS 4:4:4:4 */
- { AV_PIX_FMT_XV30LE, MKTAG('Y', '4', '1', '0') },
- { AV_PIX_FMT_XV48LE, MKTAG('Y', '4', '1', '6') },
- { AV_PIX_FMT_Y210LE, MKTAG('Y', '2', '1', '0') },
- { AV_PIX_FMT_Y216LE, MKTAG('Y', '2', '1', '6') },
-
- /* nut */
- { AV_PIX_FMT_RGB555LE, MKTAG('R', 'G', 'B', 15) },
- { AV_PIX_FMT_BGR555LE, MKTAG('B', 'G', 'R', 15) },
- { AV_PIX_FMT_RGB565LE, MKTAG('R', 'G', 'B', 16) },
- { AV_PIX_FMT_BGR565LE, MKTAG('B', 'G', 'R', 16) },
- { AV_PIX_FMT_RGB555BE, MKTAG(15 , 'B', 'G', 'R') },
- { AV_PIX_FMT_BGR555BE, MKTAG(15 , 'R', 'G', 'B') },
- { AV_PIX_FMT_RGB565BE, MKTAG(16 , 'B', 'G', 'R') },
- { AV_PIX_FMT_BGR565BE, MKTAG(16 , 'R', 'G', 'B') },
- { AV_PIX_FMT_RGB444LE, MKTAG('R', 'G', 'B', 12) },
- { AV_PIX_FMT_BGR444LE, MKTAG('B', 'G', 'R', 12) },
- { AV_PIX_FMT_RGB444BE, MKTAG(12 , 'B', 'G', 'R') },
- { AV_PIX_FMT_BGR444BE, MKTAG(12 , 'R', 'G', 'B') },
- { AV_PIX_FMT_RGBA64LE, MKTAG('R', 'B', 'A', 64 ) },
- { AV_PIX_FMT_BGRA64LE, MKTAG('B', 'R', 'A', 64 ) },
- { AV_PIX_FMT_RGBA64BE, MKTAG(64 , 'R', 'B', 'A') },
- { AV_PIX_FMT_BGRA64BE, MKTAG(64 , 'B', 'R', 'A') },
- { AV_PIX_FMT_RGBA, MKTAG('R', 'G', 'B', 'A') },
- { AV_PIX_FMT_RGB0, MKTAG('R', 'G', 'B', 0 ) },
- { AV_PIX_FMT_BGRA, MKTAG('B', 'G', 'R', 'A') },
- { AV_PIX_FMT_BGR0, MKTAG('B', 'G', 'R', 0 ) },
- { AV_PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') },
- { AV_PIX_FMT_0BGR, MKTAG( 0 , 'B', 'G', 'R') },
- { AV_PIX_FMT_ARGB, MKTAG('A', 'R', 'G', 'B') },
- { AV_PIX_FMT_0RGB, MKTAG( 0 , 'R', 'G', 'B') },
- { AV_PIX_FMT_RGB24, MKTAG('R', 'G', 'B', 24 ) },
- { AV_PIX_FMT_BGR24, MKTAG('B', 'G', 'R', 24 ) },
- { AV_PIX_FMT_YUV411P, MKTAG('4', '1', '1', 'P') },
- { AV_PIX_FMT_YUV422P, MKTAG('4', '2', '2', 'P') },
- { AV_PIX_FMT_YUVJ422P, MKTAG('4', '2', '2', 'P') },
- { AV_PIX_FMT_YUV440P, MKTAG('4', '4', '0', 'P') },
- { AV_PIX_FMT_YUVJ440P, MKTAG('4', '4', '0', 'P') },
- { AV_PIX_FMT_YUV444P, MKTAG('4', '4', '4', 'P') },
- { AV_PIX_FMT_YUVJ444P, MKTAG('4', '4', '4', 'P') },
- { AV_PIX_FMT_MONOWHITE,MKTAG('B', '1', 'W', '0') },
- { AV_PIX_FMT_MONOBLACK,MKTAG('B', '0', 'W', '1') },
- { AV_PIX_FMT_BGR8, MKTAG('B', 'G', 'R', 8 ) },
- { AV_PIX_FMT_RGB8, MKTAG('R', 'G', 'B', 8 ) },
- { AV_PIX_FMT_BGR4, MKTAG('B', 'G', 'R', 4 ) },
- { AV_PIX_FMT_RGB4, MKTAG('R', 'G', 'B', 4 ) },
- { AV_PIX_FMT_RGB4_BYTE,MKTAG('B', '4', 'B', 'Y') },
- { AV_PIX_FMT_BGR4_BYTE,MKTAG('R', '4', 'B', 'Y') },
- { AV_PIX_FMT_RGB48LE, MKTAG('R', 'G', 'B', 48 ) },
- { AV_PIX_FMT_RGB48BE, MKTAG( 48, 'R', 'G', 'B') },
- { AV_PIX_FMT_BGR48LE, MKTAG('B', 'G', 'R', 48 ) },
- { AV_PIX_FMT_BGR48BE, MKTAG( 48, 'B', 'G', 'R') },
- { AV_PIX_FMT_GRAY9LE, MKTAG('Y', '1', 0 , 9 ) },
- { AV_PIX_FMT_GRAY9BE, MKTAG( 9 , 0 , '1', 'Y') },
- { AV_PIX_FMT_GRAY10LE, MKTAG('Y', '1', 0 , 10 ) },
- { AV_PIX_FMT_GRAY10BE, MKTAG(10 , 0 , '1', 'Y') },
- { AV_PIX_FMT_GRAY12LE, MKTAG('Y', '1', 0 , 12 ) },
- { AV_PIX_FMT_GRAY12BE, MKTAG(12 , 0 , '1', 'Y') },
- { AV_PIX_FMT_GRAY14LE, MKTAG('Y', '1', 0 , 14 ) },
- { AV_PIX_FMT_GRAY14BE, MKTAG(14 , 0 , '1', 'Y') },
- { AV_PIX_FMT_GRAY16LE, MKTAG('Y', '1', 0 , 16 ) },
- { AV_PIX_FMT_GRAY16BE, MKTAG(16 , 0 , '1', 'Y') },
- { AV_PIX_FMT_YUV420P9LE, MKTAG('Y', '3', 11 , 9 ) },
- { AV_PIX_FMT_YUV420P9BE, MKTAG( 9 , 11 , '3', 'Y') },
- { AV_PIX_FMT_YUV422P9LE, MKTAG('Y', '3', 10 , 9 ) },
- { AV_PIX_FMT_YUV422P9BE, MKTAG( 9 , 10 , '3', 'Y') },
- { AV_PIX_FMT_YUV444P9LE, MKTAG('Y', '3', 0 , 9 ) },
- { AV_PIX_FMT_YUV444P9BE, MKTAG( 9 , 0 , '3', 'Y') },
- { AV_PIX_FMT_YUV420P10LE, MKTAG('Y', '3', 11 , 10 ) },
- { AV_PIX_FMT_YUV420P10BE, MKTAG(10 , 11 , '3', 'Y') },
- { AV_PIX_FMT_YUV422P10LE, MKTAG('Y', '3', 10 , 10 ) },
- { AV_PIX_FMT_YUV422P10BE, MKTAG(10 , 10 , '3', 'Y') },
- { AV_PIX_FMT_YUV444P10LE, MKTAG('Y', '3', 0 , 10 ) },
- { AV_PIX_FMT_YUV444P10BE, MKTAG(10 , 0 , '3', 'Y') },
- { AV_PIX_FMT_YUV420P12LE, MKTAG('Y', '3', 11 , 12 ) },
- { AV_PIX_FMT_YUV420P12BE, MKTAG(12 , 11 , '3', 'Y') },
- { AV_PIX_FMT_YUV422P12LE, MKTAG('Y', '3', 10 , 12 ) },
- { AV_PIX_FMT_YUV422P12BE, MKTAG(12 , 10 , '3', 'Y') },
- { AV_PIX_FMT_YUV444P12LE, MKTAG('Y', '3', 0 , 12 ) },
- { AV_PIX_FMT_YUV444P12BE, MKTAG(12 , 0 , '3', 'Y') },
- { AV_PIX_FMT_YUV420P14LE, MKTAG('Y', '3', 11 , 14 ) },
- { AV_PIX_FMT_YUV420P14BE, MKTAG(14 , 11 , '3', 'Y') },
- { AV_PIX_FMT_YUV422P14LE, MKTAG('Y', '3', 10 , 14 ) },
- { AV_PIX_FMT_YUV422P14BE, MKTAG(14 , 10 , '3', 'Y') },
- { AV_PIX_FMT_YUV444P14LE, MKTAG('Y', '3', 0 , 14 ) },
- { AV_PIX_FMT_YUV444P14BE, MKTAG(14 , 0 , '3', 'Y') },
- { AV_PIX_FMT_YUV420P16LE, MKTAG('Y', '3', 11 , 16 ) },
- { AV_PIX_FMT_YUV420P16BE, MKTAG(16 , 11 , '3', 'Y') },
- { AV_PIX_FMT_YUV422P16LE, MKTAG('Y', '3', 10 , 16 ) },
- { AV_PIX_FMT_YUV422P16BE, MKTAG(16 , 10 , '3', 'Y') },
- { AV_PIX_FMT_YUV444P16LE, MKTAG('Y', '3', 0 , 16 ) },
- { AV_PIX_FMT_YUV444P16BE, MKTAG(16 , 0 , '3', 'Y') },
- { AV_PIX_FMT_YUVA420P, MKTAG('Y', '4', 11 , 8 ) },
- { AV_PIX_FMT_YUVA422P, MKTAG('Y', '4', 10 , 8 ) },
- { AV_PIX_FMT_YUVA444P, MKTAG('Y', '4', 0 , 8 ) },
- { AV_PIX_FMT_YA8, MKTAG('Y', '2', 0 , 8 ) },
- { AV_PIX_FMT_PAL8, MKTAG('P', 'A', 'L', 8 ) },
-
- { AV_PIX_FMT_YUVA420P9LE, MKTAG('Y', '4', 11 , 9 ) },
- { AV_PIX_FMT_YUVA420P9BE, MKTAG( 9 , 11 , '4', 'Y') },
- { AV_PIX_FMT_YUVA422P9LE, MKTAG('Y', '4', 10 , 9 ) },
- { AV_PIX_FMT_YUVA422P9BE, MKTAG( 9 , 10 , '4', 'Y') },
- { AV_PIX_FMT_YUVA444P9LE, MKTAG('Y', '4', 0 , 9 ) },
- { AV_PIX_FMT_YUVA444P9BE, MKTAG( 9 , 0 , '4', 'Y') },
- { AV_PIX_FMT_YUVA420P10LE, MKTAG('Y', '4', 11 , 10 ) },
- { AV_PIX_FMT_YUVA420P10BE, MKTAG(10 , 11 , '4', 'Y') },
- { AV_PIX_FMT_YUVA422P10LE, MKTAG('Y', '4', 10 , 10 ) },
- { AV_PIX_FMT_YUVA422P10BE, MKTAG(10 , 10 , '4', 'Y') },
- { AV_PIX_FMT_YUVA444P10LE, MKTAG('Y', '4', 0 , 10 ) },
- { AV_PIX_FMT_YUVA444P10BE, MKTAG(10 , 0 , '4', 'Y') },
- { AV_PIX_FMT_YUVA422P12LE, MKTAG('Y', '4', 10 , 12 ) },
- { AV_PIX_FMT_YUVA422P12BE, MKTAG(12 , 10 , '4', 'Y') },
- { AV_PIX_FMT_YUVA444P12LE, MKTAG('Y', '4', 0 , 12 ) },
- { AV_PIX_FMT_YUVA444P12BE, MKTAG(12 , 0 , '4', 'Y') },
- { AV_PIX_FMT_YUVA420P16LE, MKTAG('Y', '4', 11 , 16 ) },
- { AV_PIX_FMT_YUVA420P16BE, MKTAG(16 , 11 , '4', 'Y') },
- { AV_PIX_FMT_YUVA422P16LE, MKTAG('Y', '4', 10 , 16 ) },
- { AV_PIX_FMT_YUVA422P16BE, MKTAG(16 , 10 , '4', 'Y') },
- { AV_PIX_FMT_YUVA444P16LE, MKTAG('Y', '4', 0 , 16 ) },
- { AV_PIX_FMT_YUVA444P16BE, MKTAG(16 , 0 , '4', 'Y') },
-
- { AV_PIX_FMT_GBRP, MKTAG('G', '3', 00 , 8 ) },
- { AV_PIX_FMT_GBRP9LE, MKTAG('G', '3', 00 , 9 ) },
- { AV_PIX_FMT_GBRP9BE, MKTAG( 9 , 00 , '3', 'G') },
- { AV_PIX_FMT_GBRP10LE, MKTAG('G', '3', 00 , 10 ) },
- { AV_PIX_FMT_GBRP10BE, MKTAG(10 , 00 , '3', 'G') },
- { AV_PIX_FMT_GBRP12LE, MKTAG('G', '3', 00 , 12 ) },
- { AV_PIX_FMT_GBRP12BE, MKTAG(12 , 00 , '3', 'G') },
- { AV_PIX_FMT_GBRP14LE, MKTAG('G', '3', 00 , 14 ) },
- { AV_PIX_FMT_GBRP14BE, MKTAG(14 , 00 , '3', 'G') },
- { AV_PIX_FMT_GBRP16LE, MKTAG('G', '3', 00 , 16 ) },
- { AV_PIX_FMT_GBRP16BE, MKTAG(16 , 00 , '3', 'G') },
- { AV_PIX_FMT_GBRPF16LE, MKTAG('G', '3', 00 , 17 ) },
- { AV_PIX_FMT_GBRPF16BE, MKTAG(17 , 00 , '3', 'G') },
- { AV_PIX_FMT_GBRPF32LE, MKTAG('G', '3', 00 , 33 ) },
- { AV_PIX_FMT_GBRPF32BE, MKTAG(33 , 00 , '3', 'G') },
-
- { AV_PIX_FMT_GBRAP, MKTAG('G', '4', 00 , 8 ) },
- { AV_PIX_FMT_GBRAP10LE, MKTAG('G', '4', 00 , 10 ) },
- { AV_PIX_FMT_GBRAP10BE, MKTAG(10 , 00 , '4', 'G') },
- { AV_PIX_FMT_GBRAP12LE, MKTAG('G', '4', 00 , 12 ) },
- { AV_PIX_FMT_GBRAP12BE, MKTAG(12 , 00 , '4', 'G') },
- { AV_PIX_FMT_GBRAP14LE, MKTAG('G', '4', 00 , 14 ) },
- { AV_PIX_FMT_GBRAP14BE, MKTAG(14 , 00 , '4', 'G') },
- { AV_PIX_FMT_GBRAP16LE, MKTAG('G', '4', 00 , 16 ) },
- { AV_PIX_FMT_GBRAP16BE, MKTAG(16 , 00 , '4', 'G') },
- { AV_PIX_FMT_GBRAPF16LE, MKTAG('G', '4', 00 , 17 ) },
- { AV_PIX_FMT_GBRAPF16BE, MKTAG(17 , 00 , '4', 'G') },
- { AV_PIX_FMT_GBRAPF32LE, MKTAG('G', '4', 00 , 33 ) },
- { AV_PIX_FMT_GBRAPF32BE, MKTAG(33 , 00 , '4', 'G') },
-
- { AV_PIX_FMT_XYZ12LE, MKTAG('X', 'Y', 'Z' , 36 ) },
- { AV_PIX_FMT_XYZ12BE, MKTAG(36 , 'Z' , 'Y', 'X') },
-
- { AV_PIX_FMT_BAYER_BGGR8, MKTAG(0xBA, 'B', 'G', 8 ) },
- { AV_PIX_FMT_BAYER_BGGR16LE, MKTAG(0xBA, 'B', 'G', 16 ) },
- { AV_PIX_FMT_BAYER_BGGR16BE, MKTAG(16 , 'G', 'B', 0xBA) },
- { AV_PIX_FMT_BAYER_RGGB8, MKTAG(0xBA, 'R', 'G', 8 ) },
- { AV_PIX_FMT_BAYER_RGGB16LE, MKTAG(0xBA, 'R', 'G', 16 ) },
- { AV_PIX_FMT_BAYER_RGGB16BE, MKTAG(16 , 'G', 'R', 0xBA) },
- { AV_PIX_FMT_BAYER_GBRG8, MKTAG(0xBA, 'G', 'B', 8 ) },
- { AV_PIX_FMT_BAYER_GBRG16LE, MKTAG(0xBA, 'G', 'B', 16 ) },
- { AV_PIX_FMT_BAYER_GBRG16BE, MKTAG(16, 'B', 'G', 0xBA) },
- { AV_PIX_FMT_BAYER_GRBG8, MKTAG(0xBA, 'G', 'R', 8 ) },
- { AV_PIX_FMT_BAYER_GRBG16LE, MKTAG(0xBA, 'G', 'R', 16 ) },
- { AV_PIX_FMT_BAYER_GRBG16BE, MKTAG(16, 'R', 'G', 0xBA) },
-
- /* quicktime */
- { AV_PIX_FMT_YUV420P, MKTAG('R', '4', '2', '0') }, /* Radius DV YUV PAL */
- { AV_PIX_FMT_YUV411P, MKTAG('R', '4', '1', '1') }, /* Radius DV YUV NTSC */
- { AV_PIX_FMT_UYVY422, MKTAG('2', 'v', 'u', 'y') },
- { AV_PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', 'y') },
- { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'U', 'I') }, /* FIXME merge both fields */
- { AV_PIX_FMT_UYVY422, MKTAG('b', 'x', 'y', 'v') },
- { AV_PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', '2') },
- { AV_PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', 's') },
- { AV_PIX_FMT_YUYV422, MKTAG('D', 'V', 'O', 'O') }, /* Digital Voodoo SD 8 Bit */
- { AV_PIX_FMT_VYU444, MKTAG('v', '3', '0', '8') },
- { AV_PIX_FMT_UYVA, MKTAG('v', '4', '0', '8') },
- { AV_PIX_FMT_V30XLE, MKTAG('v', '4', '1', '0') },
- { AV_PIX_FMT_AYUV, MKTAG('y', '4', '0', '8') },
- { AV_PIX_FMT_RGB555LE,MKTAG('L', '5', '5', '5') },
- { AV_PIX_FMT_RGB565LE,MKTAG('L', '5', '6', '5') },
- { AV_PIX_FMT_RGB565BE,MKTAG('B', '5', '6', '5') },
- { AV_PIX_FMT_BGR24, MKTAG('2', '4', 'B', 'G') },
- { AV_PIX_FMT_BGR24, MKTAG('b', 'x', 'b', 'g') },
- { AV_PIX_FMT_BGRA, MKTAG('B', 'G', 'R', 'A') },
- { AV_PIX_FMT_RGBA, MKTAG('R', 'G', 'B', 'A') },
- { AV_PIX_FMT_RGB24, MKTAG('b', 'x', 'r', 'g') },
- { AV_PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') },
- { AV_PIX_FMT_GRAY16BE,MKTAG('b', '1', '6', 'g') },
- { AV_PIX_FMT_RGB48BE, MKTAG('b', '4', '8', 'r') },
- { AV_PIX_FMT_RGBA64BE,MKTAG('b', '6', '4', 'a') },
- { AV_PIX_FMT_BAYER_RGGB16BE, MKTAG('B', 'G', 'G', 'R') },
-
- /* vlc */
- { AV_PIX_FMT_YUV410P, MKTAG('I', '4', '1', '0') },
- { AV_PIX_FMT_YUV411P, MKTAG('I', '4', '1', '1') },
- { AV_PIX_FMT_YUV422P, MKTAG('I', '4', '2', '2') },
- { AV_PIX_FMT_YUV440P, MKTAG('I', '4', '4', '0') },
- { AV_PIX_FMT_YUV444P, MKTAG('I', '4', '4', '4') },
- { AV_PIX_FMT_YUVJ420P, MKTAG('J', '4', '2', '0') },
- { AV_PIX_FMT_YUVJ422P, MKTAG('J', '4', '2', '2') },
- { AV_PIX_FMT_YUVJ440P, MKTAG('J', '4', '4', '0') },
- { AV_PIX_FMT_YUVJ444P, MKTAG('J', '4', '4', '4') },
- { AV_PIX_FMT_YUVA444P, MKTAG('Y', 'U', 'V', 'A') },
- { AV_PIX_FMT_YUVA420P, MKTAG('I', '4', '0', 'A') },
- { AV_PIX_FMT_YUVA422P, MKTAG('I', '4', '2', 'A') },
- { AV_PIX_FMT_RGB8, MKTAG('R', 'G', 'B', '2') },
- { AV_PIX_FMT_RGB555LE, MKTAG('R', 'V', '1', '5') },
- { AV_PIX_FMT_RGB565LE, MKTAG('R', 'V', '1', '6') },
- { AV_PIX_FMT_BGR24, MKTAG('R', 'V', '2', '4') },
- { AV_PIX_FMT_BGR0, MKTAG('R', 'V', '3', '2') },
- { AV_PIX_FMT_RGBA, MKTAG('A', 'V', '3', '2') },
- { AV_PIX_FMT_YUV420P9LE, MKTAG('I', '0', '9', 'L') },
- { AV_PIX_FMT_YUV420P9BE, MKTAG('I', '0', '9', 'B') },
- { AV_PIX_FMT_YUV422P9LE, MKTAG('I', '2', '9', 'L') },
- { AV_PIX_FMT_YUV422P9BE, MKTAG('I', '2', '9', 'B') },
- { AV_PIX_FMT_YUV444P9LE, MKTAG('I', '4', '9', 'L') },
- { AV_PIX_FMT_YUV444P9BE, MKTAG('I', '4', '9', 'B') },
- { AV_PIX_FMT_YUV420P10LE, MKTAG('I', '0', 'A', 'L') },
- { AV_PIX_FMT_YUV420P10BE, MKTAG('I', '0', 'A', 'B') },
- { AV_PIX_FMT_YUV422P10LE, MKTAG('I', '2', 'A', 'L') },
- { AV_PIX_FMT_YUV422P10BE, MKTAG('I', '2', 'A', 'B') },
- { AV_PIX_FMT_YUV444P10LE, MKTAG('I', '4', 'A', 'L') },
- { AV_PIX_FMT_YUV444P10BE, MKTAG('I', '4', 'A', 'B') },
- { AV_PIX_FMT_YUV420P12LE, MKTAG('I', '0', 'C', 'L') },
- { AV_PIX_FMT_YUV420P12BE, MKTAG('I', '0', 'C', 'B') },
- { AV_PIX_FMT_YUV422P12LE, MKTAG('I', '2', 'C', 'L') },
- { AV_PIX_FMT_YUV422P12BE, MKTAG('I', '2', 'C', 'B') },
- { AV_PIX_FMT_YUV444P12LE, MKTAG('I', '4', 'C', 'L') },
- { AV_PIX_FMT_YUV444P12BE, MKTAG('I', '4', 'C', 'B') },
- { AV_PIX_FMT_YUV420P16LE, MKTAG('I', '0', 'F', 'L') },
- { AV_PIX_FMT_YUV420P16BE, MKTAG('I', '0', 'F', 'B') },
- { AV_PIX_FMT_YUV444P16LE, MKTAG('I', '4', 'F', 'L') },
- { AV_PIX_FMT_YUV444P16BE, MKTAG('I', '4', 'F', 'B') },
-
- /* special */
- { AV_PIX_FMT_RGB565LE,MKTAG( 3 , 0 , 0 , 0 ) }, /* flipped RGB565LE */
- { AV_PIX_FMT_YUV444P, MKTAG('Y', 'V', '2', '4') }, /* YUV444P, swapped UV */
-
- { AV_PIX_FMT_NONE, 0 },
-};
-
-const struct PixelFormatTag *avpriv_get_raw_pix_fmt_tags(void)
-{
- return raw_pix_fmt_tags;
-}
+#include "raw_pix_fmt_tags.h"
unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat fmt)
{
diff --git a/libavcodec/raw.h b/libavcodec/raw.h
index 9a4ddef8fc..69f7f530ad 100644
--- a/libavcodec/raw.h
+++ b/libavcodec/raw.h
@@ -34,8 +34,6 @@ typedef struct PixelFormatTag {
unsigned int fourcc;
} PixelFormatTag;
-const struct PixelFormatTag *avpriv_get_raw_pix_fmt_tags(void);
-
enum PixelFormatTagLists {
PIX_FMT_LIST_RAW,
PIX_FMT_LIST_AVI,
diff --git a/libavcodec/raw_pix_fmt_tags.h b/libavcodec/raw_pix_fmt_tags.h
new file mode 100644
index 0000000000..bdde060cf7
--- /dev/null
+++ b/libavcodec/raw_pix_fmt_tags.h
@@ -0,0 +1,316 @@
+/*
+ * Raw Video Codec
+ * Copyright (c) 2001 Fabrice Bellard
+ *
+ * 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 AVCODEC_RAW_PIX_FMT_TAGS_H
+#define AVCODEC_RAW_PIX_FMT_TAGS_H
+
+#include "raw.h"
+#include "libavutil/macros.h"
+
+static const PixelFormatTag raw_pix_fmt_tags[] = {
+ { AV_PIX_FMT_YUV420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */
+ { AV_PIX_FMT_YUV420P, MKTAG('I', 'Y', 'U', 'V') },
+ { AV_PIX_FMT_YUV420P, MKTAG('y', 'v', '1', '2') },
+ { AV_PIX_FMT_YUV420P, MKTAG('Y', 'V', '1', '2') },
+ { AV_PIX_FMT_YUV410P, MKTAG('Y', 'U', 'V', '9') },
+ { AV_PIX_FMT_YUV410P, MKTAG('Y', 'V', 'U', '9') },
+ { AV_PIX_FMT_YUV411P, MKTAG('Y', '4', '1', 'B') },
+ { AV_PIX_FMT_YUV422P, MKTAG('Y', '4', '2', 'B') },
+ { AV_PIX_FMT_YUV422P, MKTAG('P', '4', '2', '2') },
+ { AV_PIX_FMT_YUV422P, MKTAG('Y', 'V', '1', '6') },
+ /* yuvjXXX formats are deprecated hacks specific to libav*,
+ they are identical to yuvXXX */
+ { AV_PIX_FMT_YUVJ420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */
+ { AV_PIX_FMT_YUVJ420P, MKTAG('I', 'Y', 'U', 'V') },
+ { AV_PIX_FMT_YUVJ420P, MKTAG('Y', 'V', '1', '2') },
+ { AV_PIX_FMT_YUVJ422P, MKTAG('Y', '4', '2', 'B') },
+ { AV_PIX_FMT_YUVJ422P, MKTAG('P', '4', '2', '2') },
+ { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', '0', '0') },
+ { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', ' ', ' ') },
+
+ { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', '2') }, /* Packed formats */
+ { AV_PIX_FMT_YUYV422, MKTAG('Y', '4', '2', '2') },
+ { AV_PIX_FMT_YUYV422, MKTAG('V', '4', '2', '2') },
+ { AV_PIX_FMT_YUYV422, MKTAG('V', 'Y', 'U', 'Y') },
+ { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'N', 'V') },
+ { AV_PIX_FMT_YUYV422, MKTAG('Y', 'U', 'Y', 'V') },
+ { AV_PIX_FMT_YVYU422, MKTAG('Y', 'V', 'Y', 'U') }, /* Philips */
+ { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'V', 'Y') },
+ { AV_PIX_FMT_UYVY422, MKTAG('H', 'D', 'Y', 'C') },
+ { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'V') },
+ { AV_PIX_FMT_UYVY422, MKTAG('U', 'Y', 'N', 'Y') },
+ { AV_PIX_FMT_UYVY422, MKTAG('u', 'y', 'v', '1') },
+ { AV_PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', '1') },
+ { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'R', 'n') }, /* Avid AVI Codec 1:1 */
+ { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', '1', 'x') }, /* Avid 1:1x */
+ { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'u', 'p') },
+ { AV_PIX_FMT_UYVY422, MKTAG('V', 'D', 'T', 'Z') }, /* SoftLab-NSK VideoTizer */
+ { AV_PIX_FMT_UYVY422, MKTAG('a', 'u', 'v', '2') },
+ { AV_PIX_FMT_UYVY422, MKTAG('c', 'y', 'u', 'v') }, /* CYUV is also Creative YUV */
+ { AV_PIX_FMT_UYYVYY411, MKTAG('Y', '4', '1', '1') },
+ { AV_PIX_FMT_GRAY8, MKTAG('G', 'R', 'E', 'Y') },
+ { AV_PIX_FMT_NV12, MKTAG('N', 'V', '1', '2') },
+ { AV_PIX_FMT_NV21, MKTAG('N', 'V', '2', '1') },
+ { AV_PIX_FMT_VUYA, MKTAG('A', 'Y', 'U', 'V') }, /* MS 4:4:4:4 */
+ { AV_PIX_FMT_XV30LE, MKTAG('Y', '4', '1', '0') },
+ { AV_PIX_FMT_XV48LE, MKTAG('Y', '4', '1', '6') },
+ { AV_PIX_FMT_Y210LE, MKTAG('Y', '2', '1', '0') },
+ { AV_PIX_FMT_Y216LE, MKTAG('Y', '2', '1', '6') },
+
+ /* nut */
+ { AV_PIX_FMT_RGB555LE, MKTAG('R', 'G', 'B', 15) },
+ { AV_PIX_FMT_BGR555LE, MKTAG('B', 'G', 'R', 15) },
+ { AV_PIX_FMT_RGB565LE, MKTAG('R', 'G', 'B', 16) },
+ { AV_PIX_FMT_BGR565LE, MKTAG('B', 'G', 'R', 16) },
+ { AV_PIX_FMT_RGB555BE, MKTAG(15 , 'B', 'G', 'R') },
+ { AV_PIX_FMT_BGR555BE, MKTAG(15 , 'R', 'G', 'B') },
+ { AV_PIX_FMT_RGB565BE, MKTAG(16 , 'B', 'G', 'R') },
+ { AV_PIX_FMT_BGR565BE, MKTAG(16 , 'R', 'G', 'B') },
+ { AV_PIX_FMT_RGB444LE, MKTAG('R', 'G', 'B', 12) },
+ { AV_PIX_FMT_BGR444LE, MKTAG('B', 'G', 'R', 12) },
+ { AV_PIX_FMT_RGB444BE, MKTAG(12 , 'B', 'G', 'R') },
+ { AV_PIX_FMT_BGR444BE, MKTAG(12 , 'R', 'G', 'B') },
+ { AV_PIX_FMT_RGBA64LE, MKTAG('R', 'B', 'A', 64 ) },
+ { AV_PIX_FMT_BGRA64LE, MKTAG('B', 'R', 'A', 64 ) },
+ { AV_PIX_FMT_RGBA64BE, MKTAG(64 , 'R', 'B', 'A') },
+ { AV_PIX_FMT_BGRA64BE, MKTAG(64 , 'B', 'R', 'A') },
+ { AV_PIX_FMT_RGBA, MKTAG('R', 'G', 'B', 'A') },
+ { AV_PIX_FMT_RGB0, MKTAG('R', 'G', 'B', 0 ) },
+ { AV_PIX_FMT_BGRA, MKTAG('B', 'G', 'R', 'A') },
+ { AV_PIX_FMT_BGR0, MKTAG('B', 'G', 'R', 0 ) },
+ { AV_PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') },
+ { AV_PIX_FMT_0BGR, MKTAG( 0 , 'B', 'G', 'R') },
+ { AV_PIX_FMT_ARGB, MKTAG('A', 'R', 'G', 'B') },
+ { AV_PIX_FMT_0RGB, MKTAG( 0 , 'R', 'G', 'B') },
+ { AV_PIX_FMT_RGB24, MKTAG('R', 'G', 'B', 24 ) },
+ { AV_PIX_FMT_BGR24, MKTAG('B', 'G', 'R', 24 ) },
+ { AV_PIX_FMT_YUV411P, MKTAG('4', '1', '1', 'P') },
+ { AV_PIX_FMT_YUV422P, MKTAG('4', '2', '2', 'P') },
+ { AV_PIX_FMT_YUVJ422P, MKTAG('4', '2', '2', 'P') },
+ { AV_PIX_FMT_YUV440P, MKTAG('4', '4', '0', 'P') },
+ { AV_PIX_FMT_YUVJ440P, MKTAG('4', '4', '0', 'P') },
+ { AV_PIX_FMT_YUV444P, MKTAG('4', '4', '4', 'P') },
+ { AV_PIX_FMT_YUVJ444P, MKTAG('4', '4', '4', 'P') },
+ { AV_PIX_FMT_MONOWHITE, MKTAG('B', '1', 'W', '0') },
+ { AV_PIX_FMT_MONOBLACK, MKTAG('B', '0', 'W', '1') },
+ { AV_PIX_FMT_BGR8, MKTAG('B', 'G', 'R', 8 ) },
+ { AV_PIX_FMT_RGB8, MKTAG('R', 'G', 'B', 8 ) },
+ { AV_PIX_FMT_BGR4, MKTAG('B', 'G', 'R', 4 ) },
+ { AV_PIX_FMT_RGB4, MKTAG('R', 'G', 'B', 4 ) },
+ { AV_PIX_FMT_RGB4_BYTE, MKTAG('B', '4', 'B', 'Y') },
+ { AV_PIX_FMT_BGR4_BYTE, MKTAG('R', '4', 'B', 'Y') },
+ { AV_PIX_FMT_RGB48LE, MKTAG('R', 'G', 'B', 48 ) },
+ { AV_PIX_FMT_RGB48BE, MKTAG( 48, 'R', 'G', 'B') },
+ { AV_PIX_FMT_BGR48LE, MKTAG('B', 'G', 'R', 48 ) },
+ { AV_PIX_FMT_BGR48BE, MKTAG( 48, 'B', 'G', 'R') },
+ { AV_PIX_FMT_GRAY9LE, MKTAG('Y', '1', 0 , 9 ) },
+ { AV_PIX_FMT_GRAY9BE, MKTAG( 9 , 0 , '1', 'Y') },
+ { AV_PIX_FMT_GRAY10LE, MKTAG('Y', '1', 0 , 10 ) },
+ { AV_PIX_FMT_GRAY10BE, MKTAG(10 , 0 , '1', 'Y') },
+ { AV_PIX_FMT_GRAY12LE, MKTAG('Y', '1', 0 , 12 ) },
+ { AV_PIX_FMT_GRAY12BE, MKTAG(12 , 0 , '1', 'Y') },
+ { AV_PIX_FMT_GRAY14LE, MKTAG('Y', '1', 0 , 14 ) },
+ { AV_PIX_FMT_GRAY14BE, MKTAG(14 , 0 , '1', 'Y') },
+ { AV_PIX_FMT_GRAY16LE, MKTAG('Y', '1', 0 , 16 ) },
+ { AV_PIX_FMT_GRAY16BE, MKTAG(16 , 0 , '1', 'Y') },
+ { AV_PIX_FMT_YUV420P9LE, MKTAG('Y', '3', 11 , 9 ) },
+ { AV_PIX_FMT_YUV420P9BE, MKTAG( 9 , 11 , '3', 'Y') },
+ { AV_PIX_FMT_YUV422P9LE, MKTAG('Y', '3', 10 , 9 ) },
+ { AV_PIX_FMT_YUV422P9BE, MKTAG( 9 , 10 , '3', 'Y') },
+ { AV_PIX_FMT_YUV444P9LE, MKTAG('Y', '3', 0 , 9 ) },
+ { AV_PIX_FMT_YUV444P9BE, MKTAG( 9 , 0 , '3', 'Y') },
+ { AV_PIX_FMT_YUV420P10LE, MKTAG('Y', '3', 11 , 10 ) },
+ { AV_PIX_FMT_YUV420P10BE, MKTAG(10 , 11 , '3', 'Y') },
+ { AV_PIX_FMT_YUV422P10LE, MKTAG('Y', '3', 10 , 10 ) },
+ { AV_PIX_FMT_YUV422P10BE, MKTAG(10 , 10 , '3', 'Y') },
+ { AV_PIX_FMT_YUV444P10LE, MKTAG('Y', '3', 0 , 10 ) },
+ { AV_PIX_FMT_YUV444P10BE, MKTAG(10 , 0 , '3', 'Y') },
+ { AV_PIX_FMT_YUV420P12LE, MKTAG('Y', '3', 11 , 12 ) },
+ { AV_PIX_FMT_YUV420P12BE, MKTAG(12 , 11 , '3', 'Y') },
+ { AV_PIX_FMT_YUV422P12LE, MKTAG('Y', '3', 10 , 12 ) },
+ { AV_PIX_FMT_YUV422P12BE, MKTAG(12 , 10 , '3', 'Y') },
+ { AV_PIX_FMT_YUV444P12LE, MKTAG('Y', '3', 0 , 12 ) },
+ { AV_PIX_FMT_YUV444P12BE, MKTAG(12 , 0 , '3', 'Y') },
+ { AV_PIX_FMT_YUV420P14LE, MKTAG('Y', '3', 11 , 14 ) },
+ { AV_PIX_FMT_YUV420P14BE, MKTAG(14 , 11 , '3', 'Y') },
+ { AV_PIX_FMT_YUV422P14LE, MKTAG('Y', '3', 10 , 14 ) },
+ { AV_PIX_FMT_YUV422P14BE, MKTAG(14 , 10 , '3', 'Y') },
+ { AV_PIX_FMT_YUV444P14LE, MKTAG('Y', '3', 0 , 14 ) },
+ { AV_PIX_FMT_YUV444P14BE, MKTAG(14 , 0 , '3', 'Y') },
+ { AV_PIX_FMT_YUV420P16LE, MKTAG('Y', '3', 11 , 16 ) },
+ { AV_PIX_FMT_YUV420P16BE, MKTAG(16 , 11 , '3', 'Y') },
+ { AV_PIX_FMT_YUV422P16LE, MKTAG('Y', '3', 10 , 16 ) },
+ { AV_PIX_FMT_YUV422P16BE, MKTAG(16 , 10 , '3', 'Y') },
+ { AV_PIX_FMT_YUV444P16LE, MKTAG('Y', '3', 0 , 16 ) },
+ { AV_PIX_FMT_YUV444P16BE, MKTAG(16 , 0 , '3', 'Y') },
+ { AV_PIX_FMT_YUVA420P, MKTAG('Y', '4', 11 , 8 ) },
+ { AV_PIX_FMT_YUVA422P, MKTAG('Y', '4', 10 , 8 ) },
+ { AV_PIX_FMT_YUVA444P, MKTAG('Y', '4', 0 , 8 ) },
+ { AV_PIX_FMT_YA8, MKTAG('Y', '2', 0 , 8 ) },
+ { AV_PIX_FMT_PAL8, MKTAG('P', 'A', 'L', 8 ) },
+
+ { AV_PIX_FMT_YUVA420P9LE, MKTAG('Y', '4', 11 , 9 ) },
+ { AV_PIX_FMT_YUVA420P9BE, MKTAG( 9 , 11 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA422P9LE, MKTAG('Y', '4', 10 , 9 ) },
+ { AV_PIX_FMT_YUVA422P9BE, MKTAG( 9 , 10 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA444P9LE, MKTAG('Y', '4', 0 , 9 ) },
+ { AV_PIX_FMT_YUVA444P9BE, MKTAG( 9 , 0 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA420P10LE, MKTAG('Y', '4', 11 , 10 ) },
+ { AV_PIX_FMT_YUVA420P10BE, MKTAG(10 , 11 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA422P10LE, MKTAG('Y', '4', 10 , 10 ) },
+ { AV_PIX_FMT_YUVA422P10BE, MKTAG(10 , 10 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA444P10LE, MKTAG('Y', '4', 0 , 10 ) },
+ { AV_PIX_FMT_YUVA444P10BE, MKTAG(10 , 0 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA422P12LE, MKTAG('Y', '4', 10 , 12 ) },
+ { AV_PIX_FMT_YUVA422P12BE, MKTAG(12 , 10 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA444P12LE, MKTAG('Y', '4', 0 , 12 ) },
+ { AV_PIX_FMT_YUVA444P12BE, MKTAG(12 , 0 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA420P16LE, MKTAG('Y', '4', 11 , 16 ) },
+ { AV_PIX_FMT_YUVA420P16BE, MKTAG(16 , 11 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA422P16LE, MKTAG('Y', '4', 10 , 16 ) },
+ { AV_PIX_FMT_YUVA422P16BE, MKTAG(16 , 10 , '4', 'Y') },
+ { AV_PIX_FMT_YUVA444P16LE, MKTAG('Y', '4', 0 , 16 ) },
+ { AV_PIX_FMT_YUVA444P16BE, MKTAG(16 , 0 , '4', 'Y') },
+
+ { AV_PIX_FMT_GBRP, MKTAG('G', '3', 00 , 8 ) },
+ { AV_PIX_FMT_GBRP9LE, MKTAG('G', '3', 00 , 9 ) },
+ { AV_PIX_FMT_GBRP9BE, MKTAG( 9 , 00 , '3', 'G') },
+ { AV_PIX_FMT_GBRP10LE, MKTAG('G', '3', 00 , 10 ) },
+ { AV_PIX_FMT_GBRP10BE, MKTAG(10 , 00 , '3', 'G') },
+ { AV_PIX_FMT_GBRP12LE, MKTAG('G', '3', 00 , 12 ) },
+ { AV_PIX_FMT_GBRP12BE, MKTAG(12 , 00 , '3', 'G') },
+ { AV_PIX_FMT_GBRP14LE, MKTAG('G', '3', 00 , 14 ) },
+ { AV_PIX_FMT_GBRP14BE, MKTAG(14 , 00 , '3', 'G') },
+ { AV_PIX_FMT_GBRP16LE, MKTAG('G', '3', 00 , 16 ) },
+ { AV_PIX_FMT_GBRP16BE, MKTAG(16 , 00 , '3', 'G') },
+ { AV_PIX_FMT_GBRPF16LE, MKTAG('G', '3', 00 , 17 ) },
+ { AV_PIX_FMT_GBRPF16BE, MKTAG(17 , 00 , '3', 'G') },
+ { AV_PIX_FMT_GBRPF32LE, MKTAG('G', '3', 00 , 33 ) },
+ { AV_PIX_FMT_GBRPF32BE, MKTAG(33 , 00 , '3', 'G') },
+
+ { AV_PIX_FMT_GBRAP, MKTAG('G', '4', 00 , 8 ) },
+ { AV_PIX_FMT_GBRAP10LE, MKTAG('G', '4', 00 , 10 ) },
+ { AV_PIX_FMT_GBRAP10BE, MKTAG(10 , 00 , '4', 'G') },
+ { AV_PIX_FMT_GBRAP12LE, MKTAG('G', '4', 00 , 12 ) },
+ { AV_PIX_FMT_GBRAP12BE, MKTAG(12 , 00 , '4', 'G') },
+ { AV_PIX_FMT_GBRAP14LE, MKTAG('G', '4', 00 , 14 ) },
+ { AV_PIX_FMT_GBRAP14BE, MKTAG(14 , 00 , '4', 'G') },
+ { AV_PIX_FMT_GBRAP16LE, MKTAG('G', '4', 00 , 16 ) },
+ { AV_PIX_FMT_GBRAP16BE, MKTAG(16 , 00 , '4', 'G') },
+ { AV_PIX_FMT_GBRAPF16LE, MKTAG('G', '4', 00 , 17 ) },
+ { AV_PIX_FMT_GBRAPF16BE, MKTAG(17 , 00 , '4', 'G') },
+ { AV_PIX_FMT_GBRAPF32LE, MKTAG('G', '4', 00 , 33 ) },
+ { AV_PIX_FMT_GBRAPF32BE, MKTAG(33 , 00 , '4', 'G') },
+
+ { AV_PIX_FMT_XYZ12LE, MKTAG('X', 'Y', 'Z' , 36 ) },
+ { AV_PIX_FMT_XYZ12BE, MKTAG(36 , 'Z' , 'Y', 'X') },
+
+ { AV_PIX_FMT_BAYER_BGGR8, MKTAG(0xBA, 'B', 'G', 8 ) },
+ { AV_PIX_FMT_BAYER_BGGR16LE, MKTAG(0xBA, 'B', 'G', 16 ) },
+ { AV_PIX_FMT_BAYER_BGGR16BE, MKTAG(16 , 'G', 'B', 0xBA) },
+ { AV_PIX_FMT_BAYER_RGGB8, MKTAG(0xBA, 'R', 'G', 8 ) },
+ { AV_PIX_FMT_BAYER_RGGB16LE, MKTAG(0xBA, 'R', 'G', 16 ) },
+ { AV_PIX_FMT_BAYER_RGGB16BE, MKTAG(16 , 'G', 'R', 0xBA) },
+ { AV_PIX_FMT_BAYER_GBRG8, MKTAG(0xBA, 'G', 'B', 8 ) },
+ { AV_PIX_FMT_BAYER_GBRG16LE, MKTAG(0xBA, 'G', 'B', 16 ) },
+ { AV_PIX_FMT_BAYER_GBRG16BE, MKTAG(16, 'B', 'G', 0xBA) },
+ { AV_PIX_FMT_BAYER_GRBG8, MKTAG(0xBA, 'G', 'R', 8 ) },
+ { AV_PIX_FMT_BAYER_GRBG16LE, MKTAG(0xBA, 'G', 'R', 16 ) },
+ { AV_PIX_FMT_BAYER_GRBG16BE, MKTAG(16, 'R', 'G', 0xBA) },
+
+ /* quicktime */
+ { AV_PIX_FMT_YUV420P, MKTAG('R', '4', '2', '0') }, /* Radius DV YUV PAL */
+ { AV_PIX_FMT_YUV411P, MKTAG('R', '4', '1', '1') }, /* Radius DV YUV NTSC */
+ { AV_PIX_FMT_UYVY422, MKTAG('2', 'v', 'u', 'y') },
+ { AV_PIX_FMT_UYVY422, MKTAG('2', 'V', 'u', 'y') },
+ { AV_PIX_FMT_UYVY422, MKTAG('A', 'V', 'U', 'I') }, /* FIXME merge both fields */
+ { AV_PIX_FMT_UYVY422, MKTAG('b', 'x', 'y', 'v') },
+ { AV_PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', '2') },
+ { AV_PIX_FMT_YUYV422, MKTAG('y', 'u', 'v', 's') },
+ { AV_PIX_FMT_YUYV422, MKTAG('D', 'V', 'O', 'O') }, /* Digital Voodoo SD 8 Bit */
+ { AV_PIX_FMT_VYU444, MKTAG('v', '3', '0', '8') },
+ { AV_PIX_FMT_UYVA, MKTAG('v', '4', '0', '8') },
+ { AV_PIX_FMT_V30XLE, MKTAG('v', '4', '1', '0') },
+ { AV_PIX_FMT_AYUV, MKTAG('y', '4', '0', '8') },
+ { AV_PIX_FMT_RGB555LE, MKTAG('L', '5', '5', '5') },
+ { AV_PIX_FMT_RGB565LE, MKTAG('L', '5', '6', '5') },
+ { AV_PIX_FMT_RGB565BE, MKTAG('B', '5', '6', '5') },
+ { AV_PIX_FMT_BGR24, MKTAG('2', '4', 'B', 'G') },
+ { AV_PIX_FMT_BGR24, MKTAG('b', 'x', 'b', 'g') },
+ { AV_PIX_FMT_BGRA, MKTAG('B', 'G', 'R', 'A') },
+ { AV_PIX_FMT_RGBA, MKTAG('R', 'G', 'B', 'A') },
+ { AV_PIX_FMT_RGB24, MKTAG('b', 'x', 'r', 'g') },
+ { AV_PIX_FMT_ABGR, MKTAG('A', 'B', 'G', 'R') },
+ { AV_PIX_FMT_GRAY16BE, MKTAG('b', '1', '6', 'g') },
+ { AV_PIX_FMT_RGB48BE, MKTAG('b', '4', '8', 'r') },
+ { AV_PIX_FMT_RGBA64BE, MKTAG('b', '6', '4', 'a') },
+ { AV_PIX_FMT_BAYER_RGGB16BE, MKTAG('B', 'G', 'G', 'R') },
+
+ /* vlc */
+ { AV_PIX_FMT_YUV410P, MKTAG('I', '4', '1', '0') },
+ { AV_PIX_FMT_YUV411P, MKTAG('I', '4', '1', '1') },
+ { AV_PIX_FMT_YUV422P, MKTAG('I', '4', '2', '2') },
+ { AV_PIX_FMT_YUV440P, MKTAG('I', '4', '4', '0') },
+ { AV_PIX_FMT_YUV444P, MKTAG('I', '4', '4', '4') },
+ { AV_PIX_FMT_YUVJ420P, MKTAG('J', '4', '2', '0') },
+ { AV_PIX_FMT_YUVJ422P, MKTAG('J', '4', '2', '2') },
+ { AV_PIX_FMT_YUVJ440P, MKTAG('J', '4', '4', '0') },
+ { AV_PIX_FMT_YUVJ444P, MKTAG('J', '4', '4', '4') },
+ { AV_PIX_FMT_YUVA444P, MKTAG('Y', 'U', 'V', 'A') },
+ { AV_PIX_FMT_YUVA420P, MKTAG('I', '4', '0', 'A') },
+ { AV_PIX_FMT_YUVA422P, MKTAG('I', '4', '2', 'A') },
+ { AV_PIX_FMT_RGB8, MKTAG('R', 'G', 'B', '2') },
+ { AV_PIX_FMT_RGB555LE, MKTAG('R', 'V', '1', '5') },
+ { AV_PIX_FMT_RGB565LE, MKTAG('R', 'V', '1', '6') },
+ { AV_PIX_FMT_BGR24, MKTAG('R', 'V', '2', '4') },
+ { AV_PIX_FMT_BGR0, MKTAG('R', 'V', '3', '2') },
+ { AV_PIX_FMT_RGBA, MKTAG('A', 'V', '3', '2') },
+ { AV_PIX_FMT_YUV420P9LE, MKTAG('I', '0', '9', 'L') },
+ { AV_PIX_FMT_YUV420P9BE, MKTAG('I', '0', '9', 'B') },
+ { AV_PIX_FMT_YUV422P9LE, MKTAG('I', '2', '9', 'L') },
+ { AV_PIX_FMT_YUV422P9BE, MKTAG('I', '2', '9', 'B') },
+ { AV_PIX_FMT_YUV444P9LE, MKTAG('I', '4', '9', 'L') },
+ { AV_PIX_FMT_YUV444P9BE, MKTAG('I', '4', '9', 'B') },
+ { AV_PIX_FMT_YUV420P10LE, MKTAG('I', '0', 'A', 'L') },
+ { AV_PIX_FMT_YUV420P10BE, MKTAG('I', '0', 'A', 'B') },
+ { AV_PIX_FMT_YUV422P10LE, MKTAG('I', '2', 'A', 'L') },
+ { AV_PIX_FMT_YUV422P10BE, MKTAG('I', '2', 'A', 'B') },
+ { AV_PIX_FMT_YUV444P10LE, MKTAG('I', '4', 'A', 'L') },
+ { AV_PIX_FMT_YUV444P10BE, MKTAG('I', '4', 'A', 'B') },
+ { AV_PIX_FMT_YUV420P12LE, MKTAG('I', '0', 'C', 'L') },
+ { AV_PIX_FMT_YUV420P12BE, MKTAG('I', '0', 'C', 'B') },
+ { AV_PIX_FMT_YUV422P12LE, MKTAG('I', '2', 'C', 'L') },
+ { AV_PIX_FMT_YUV422P12BE, MKTAG('I', '2', 'C', 'B') },
+ { AV_PIX_FMT_YUV444P12LE, MKTAG('I', '4', 'C', 'L') },
+ { AV_PIX_FMT_YUV444P12BE, MKTAG('I', '4', 'C', 'B') },
+ { AV_PIX_FMT_YUV420P16LE, MKTAG('I', '0', 'F', 'L') },
+ { AV_PIX_FMT_YUV420P16BE, MKTAG('I', '0', 'F', 'B') },
+ { AV_PIX_FMT_YUV444P16LE, MKTAG('I', '4', 'F', 'L') },
+ { AV_PIX_FMT_YUV444P16BE, MKTAG('I', '4', 'F', 'B') },
+
+ /* special */
+ { AV_PIX_FMT_RGB565LE, MKTAG( 3 , 0 , 0 , 0 ) }, /* flipped RGB565LE */
+ { AV_PIX_FMT_YUV444P, MKTAG('Y', 'V', '2', '4') }, /* YUV444P, swapped UV */
+
+ { AV_PIX_FMT_NONE, 0 },
+};
+
+#endif /* AVCODEC_RAW_PIX_FMT_TAGS_H */
diff --git a/tools/fourcc2pixfmt.c b/tools/fourcc2pixfmt.c
index 75bb6077b5..abea0c8d84 100644
--- a/tools/fourcc2pixfmt.c
+++ b/tools/fourcc2pixfmt.c
@@ -19,14 +19,15 @@
*/
#include "config.h"
+#include <stdio.h>
#if HAVE_UNISTD_H
#include <unistd.h> /* getopt */
#endif
+#include "libavutil/avutil.h"
#include "libavutil/pixdesc.h"
-#include "libavcodec/avcodec.h"
-#include "libavutil/common.h"
#include "libavcodec/raw.h"
+#include "libavcodec/raw_pix_fmt_tags.h"
#undef printf
#undef fprintf
@@ -59,7 +60,7 @@ static void print_pix_fmt_fourccs(enum AVPixelFormat pix_fmt, const PixelFormatT
int main(int argc, char **argv)
{
int i, list_fourcc_pix_fmt = 0, list_pix_fmt_fourccs = 0;
- const PixelFormatTag *pix_fmt_tags = avpriv_get_raw_pix_fmt_tags();
+ const PixelFormatTag *pix_fmt_tags = raw_pix_fmt_tags;
const char *pix_fmt_name = NULL;
char c;
--
2.45.2
[-- Attachment #3: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 46+ messages in thread
end of thread, other threads:[~2025-03-28 16:58 UTC | newest]
Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 01/30] avcodec: remove deprecated FF_API_SUBFRAMES James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 02/30] avcodec: remove deprecated FF_API_TICKS_PER_FRAME James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 03/30] avcodec: remove deprecated FF_API_DROPCHANGED James Almer
2025-02-24 9:44 ` Gyan Doshi
2025-03-15 13:51 ` Gyan Doshi
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 04/30] avcodec: remove deprecated FF_API_AVFFT James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 05/30] avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 06/30] avcodec: remove deprecated FF_API_AVCODEC_CLOSE James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 07/30] avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 08/30] avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 09/30] avcodec: remove deprecated FF_API_QUALITY_FACTOR James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 10/30] avcodec/version_major: postpone some deprecations until the next bump James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 11/30] avdevice: remove deprecated FF_API_BKTR_DEVICE James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 12/30] avdevice: remove deprecated FF_API_OPENGL_DEVICE James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 13/30] avdevice: remove deprecated FF_API_SDL2_DEVICE James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 14/30] avdevice/version_major: postpone some deprecations until the next bump James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 15/30] avformat: remove deprecated FF_API_LAVF_SHORTEST James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 16/30] avformat: remove deprecated FF_API_ALLOW_FLUSH James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 17/30] avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 18/30] avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 19/30] avformat/version_major: postpone some deprecations until the next bump James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 20/30] avfilter: remove deprecated FF_API_LINK_PUBLIC James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 21/30] avfilter/version_major: postpone some deprecations until the next bump James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 22/30] avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT James Almer
2025-03-01 17:29 ` Marton Balint
2025-03-02 0:48 ` James Almer
2025-03-02 18:27 ` Marton Balint
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 24/30] avutil: remove deprecated FF_API_INTERLACED_FRAME James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 25/30] avutil: remove deprecated FF_API_FRAME_KEY James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 26/30] avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 27/30] avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 28/30] avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 29/30] avutil/version_major: postpone some deprecations until the next bump James Almer
2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 30/30] libs: bump major version for all libraries James Almer
2025-03-26 23:41 ` Wang Bin
2025-02-25 12:29 ` [FFmpeg-devel] [PATCH] avutil/frame: Port AVFrame.private_ref to RefStruct API Andreas Rheinhardt
2025-02-25 14:31 ` James Almer
2025-03-15 21:50 ` [FFmpeg-devel] [PATCH 00/31] Major library soname bump Andreas Rheinhardt
2025-03-26 22:50 ` James Almer
2025-03-26 23:01 ` Sean McGovern
2025-03-26 23:28 ` James Almer
2025-03-28 5:07 ` Andreas Rheinhardt
2025-03-28 12:11 ` James Almer
2025-03-28 16:58 ` Andreas Rheinhardt
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