This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 0438966d84deb34394df1929a53ab79fee5cc8d4
Author:     Andreas Rheinhardt <[email protected]>
AuthorDate: Mon Mar 9 06:03:12 2026 +0100
Commit:     Andreas Rheinhardt <[email protected]>
CommitDate: Tue Jun 23 19:13:06 2026 +0200

    avcodec: Remove FF_API_V408_CODECID
    
    Deprecated on 2024-10-12.
    The output of the v410enc test changes because padding bits
    are now filled with 1s instead of zeroes and because
    bits_per_coded_sample changes to 30 (from 32), see
    https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22455#issuecomment-46213.
    
    Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/allcodecs.c     |   8 ---
 libavcodec/codec_desc.c    |  25 ---------
 libavcodec/codec_id.h      |   9 ----
 libavcodec/v308dec.c       |  82 -----------------------------
 libavcodec/v308enc.c       |  84 ------------------------------
 libavcodec/v408dec.c       |  82 -----------------------------
 libavcodec/v408enc.c       |  83 ------------------------------
 libavcodec/v410dec.c       | 125 ---------------------------------------------
 libavcodec/v410enc.c       |  88 -------------------------------
 libavcodec/version.c       |   2 +-
 libavcodec/version_major.h |   1 -
 libavformat/isom_tags.c    |   5 --
 libavformat/movenc.c       |   8 +--
 libavformat/riff.c         |   5 --
 tests/fate/video.mak       |   6 +--
 tests/ref/fate/v410enc     |   2 +-
 16 files changed, 6 insertions(+), 609 deletions(-)

diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 7a0224c7d6..b165a5925d 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -354,14 +354,6 @@ extern const FFCodec ff_utvideo_decoder;
 extern const FFCodec ff_v210_encoder;
 extern const FFCodec ff_v210_decoder;
 extern const FFCodec ff_v210x_decoder;
-#if FF_API_V408_CODECID
-extern const FFCodec ff_v308_encoder;
-extern const FFCodec ff_v308_decoder;
-extern const FFCodec ff_v408_encoder;
-extern const FFCodec ff_v408_decoder;
-extern const FFCodec ff_v410_encoder;
-extern const FFCodec ff_v410_decoder;
-#endif
 extern const FFCodec ff_vb_decoder;
 extern const FFCodec ff_vbn_encoder;
 extern const FFCodec ff_vbn_decoder;
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index 7a16d002b9..81c095bea7 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -1146,15 +1146,6 @@ static const AVCodecDescriptor codec_descriptors[] = {
         .long_name = NULL_IF_CONFIG_SMALL("Dxtory"),
         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
     },
-#if FF_API_V408_CODECID
-    {
-        .id        = AV_CODEC_ID_V410,
-        .type      = AVMEDIA_TYPE_VIDEO,
-        .name      = "v410",
-        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:4:4 10-bit"),
-        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
-    },
-#endif
     {
         .id        = AV_CODEC_ID_XWD,
         .type      = AVMEDIA_TYPE_VIDEO,
@@ -1479,22 +1470,6 @@ static const AVCodecDescriptor codec_descriptors[] = {
         .long_name = NULL_IF_CONFIG_SMALL("Pinnacle TARGA CineWave YUV16"),
         .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
     },
-#if FF_API_V408_CODECID
-    {
-        .id        = AV_CODEC_ID_V308,
-        .type      = AVMEDIA_TYPE_VIDEO,
-        .name      = "v308",
-        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed 4:4:4"),
-        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
-    },
-    {
-        .id        = AV_CODEC_ID_V408,
-        .type      = AVMEDIA_TYPE_VIDEO,
-        .name      = "v408",
-        .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed QT 4:4:4:4"),
-        .props     = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
-    },
-#endif
     {
         .id        = AV_CODEC_ID_YUV4,
         .type      = AVMEDIA_TYPE_VIDEO,
diff --git a/libavcodec/codec_id.h b/libavcodec/codec_id.h
index 1aad9ba0e9..668a068efe 100644
--- a/libavcodec/codec_id.h
+++ b/libavcodec/codec_id.h
@@ -24,8 +24,6 @@
 #include "libavutil/avutil.h"
 #include "libavutil/samplefmt.h"
 
-#include "version_major.h"
-
 /**
  * @addtogroup lavc_core
  * @{
@@ -206,9 +204,6 @@ enum AVCodecID {
     AV_CODEC_ID_BMV_VIDEO,
     AV_CODEC_ID_VBLE,
     AV_CODEC_ID_DXTORY,
-#if FF_API_V408_CODECID
-    AV_CODEC_ID_V410,
-#endif
     AV_CODEC_ID_XWD,
     AV_CODEC_ID_CDXL,
     AV_CODEC_ID_XBM,
@@ -256,10 +251,6 @@ enum AVCodecID {
     AV_CODEC_ID_012V,
     AV_CODEC_ID_AVUI,
     AV_CODEC_ID_TARGA_Y216,
-#if FF_API_V408_CODECID
-    AV_CODEC_ID_V308,
-    AV_CODEC_ID_V408,
-#endif
     AV_CODEC_ID_YUV4,
     AV_CODEC_ID_AVRN,
     AV_CODEC_ID_CPIA,
diff --git a/libavcodec/v308dec.c b/libavcodec/v308dec.c
deleted file mode 100644
index 64876b7e5a..0000000000
--- a/libavcodec/v308dec.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * v308 decoder
- * Copyright (c) 2011 Carl Eugen Hoyos
- *
- * 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 "avcodec.h"
-#include "codec_internal.h"
-#include "decode.h"
-
-static av_cold int v308_decode_init(AVCodecContext *avctx)
-{
-    avctx->pix_fmt = AV_PIX_FMT_YUV444P;
-
-    if (avctx->width & 1)
-        av_log(avctx, AV_LOG_WARNING, "v308 requires width to be even.\n");
-
-    av_log(avctx, AV_LOG_WARNING, "This decoder is deprecated and will be 
removed.\n");
-
-    return 0;
-}
-
-static int v308_decode_frame(AVCodecContext *avctx, AVFrame *pic,
-                             int *got_frame, AVPacket *avpkt)
-{
-    const uint8_t *src = avpkt->data;
-    uint8_t *y, *u, *v;
-    int i, j, ret;
-
-    if (avpkt->size < 3 * avctx->height * avctx->width) {
-        av_log(avctx, AV_LOG_ERROR, "Insufficient input data.\n");
-        return AVERROR(EINVAL);
-    }
-
-    if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)
-        return ret;
-
-    y = pic->data[0];
-    u = pic->data[1];
-    v = pic->data[2];
-
-    for (i = 0; i < avctx->height; i++) {
-        for (j = 0; j < avctx->width; j++) {
-            v[j] = *src++;
-            y[j] = *src++;
-            u[j] = *src++;
-        }
-
-        y += pic->linesize[0];
-        u += pic->linesize[1];
-        v += pic->linesize[2];
-    }
-
-    *got_frame = 1;
-
-    return avpkt->size;
-}
-
-const FFCodec ff_v308_decoder = {
-    .p.name       = "v308",
-    CODEC_LONG_NAME("Uncompressed packed 4:4:4"),
-    .p.type       = AVMEDIA_TYPE_VIDEO,
-    .p.id         = AV_CODEC_ID_V308,
-    .init         = v308_decode_init,
-    FF_CODEC_DECODE_CB(v308_decode_frame),
-    .p.capabilities = AV_CODEC_CAP_DR1,
-};
diff --git a/libavcodec/v308enc.c b/libavcodec/v308enc.c
deleted file mode 100644
index 884932da44..0000000000
--- a/libavcodec/v308enc.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * v308 encoder
- *
- * Copyright (c) 2011 Carl Eugen Hoyos
- *
- * 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/intreadwrite.h"
-#include "avcodec.h"
-#include "codec_internal.h"
-#include "encode.h"
-#include "internal.h"
-
-static av_cold int v308_encode_init(AVCodecContext *avctx)
-{
-    if (avctx->width & 1) {
-        av_log(avctx, AV_LOG_ERROR, "v308 requires width to be even.\n");
-        return AVERROR_INVALIDDATA;
-    }
-
-    av_log(avctx, AV_LOG_WARNING, "This encoder is deprecated and will be 
removed.\n");
-
-    avctx->bits_per_coded_sample = 24;
-    avctx->bit_rate = ff_guess_coded_bitrate(avctx);
-
-    return 0;
-}
-
-static int v308_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
-                             const AVFrame *pic, int *got_packet)
-{
-    uint8_t *dst;
-    const uint8_t *y, *u, *v;
-    int i, j, ret;
-
-    ret = ff_get_encode_buffer(avctx, pkt, avctx->width * avctx->height * 3, 
0);
-    if (ret < 0)
-        return ret;
-    dst = pkt->data;
-
-    y = pic->data[0];
-    u = pic->data[1];
-    v = pic->data[2];
-
-    for (i = 0; i < avctx->height; i++) {
-        for (j = 0; j < avctx->width; j++) {
-            *dst++ = v[j];
-            *dst++ = y[j];
-            *dst++ = u[j];
-        }
-        y += pic->linesize[0];
-        u += pic->linesize[1];
-        v += pic->linesize[2];
-    }
-
-    *got_packet = 1;
-    return 0;
-}
-
-const FFCodec ff_v308_encoder = {
-    .p.name       = "v308",
-    CODEC_LONG_NAME("Uncompressed packed 4:4:4"),
-    .p.type       = AVMEDIA_TYPE_VIDEO,
-    .p.id         = AV_CODEC_ID_V308,
-    .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
-    .init         = v308_encode_init,
-    FF_CODEC_ENCODE_CB(v308_encode_frame),
-    CODEC_PIXFMTS(AV_PIX_FMT_YUV444P),
-};
diff --git a/libavcodec/v408dec.c b/libavcodec/v408dec.c
deleted file mode 100644
index 4bce5c7b67..0000000000
--- a/libavcodec/v408dec.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * v408 decoder
- * Copyright (c) 2012 Carl Eugen Hoyos
- *
- * 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 "avcodec.h"
-#include "codec_internal.h"
-#include "decode.h"
-
-static av_cold int v408_decode_init(AVCodecContext *avctx)
-{
-    avctx->pix_fmt = AV_PIX_FMT_YUVA444P;
-
-    av_log(avctx, AV_LOG_WARNING, "This decoder is deprecated and will be 
removed.\n");
-
-    return 0;
-}
-
-static int v408_decode_frame(AVCodecContext *avctx, AVFrame *pic,
-                             int *got_frame, AVPacket *avpkt)
-{
-    const uint8_t *src = avpkt->data;
-    uint8_t *y, *u, *v, *a;
-    int i, j, ret;
-
-    if (avpkt->size < 4 * avctx->height * avctx->width) {
-        av_log(avctx, AV_LOG_ERROR, "Insufficient input data.\n");
-        return AVERROR(EINVAL);
-    }
-
-    if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)
-        return ret;
-
-    y = pic->data[0];
-    u = pic->data[1];
-    v = pic->data[2];
-    a = pic->data[3];
-
-    for (i = 0; i < avctx->height; i++) {
-        for (j = 0; j < avctx->width; j++) {
-            u[j] = *src++;
-            y[j] = *src++;
-            v[j] = *src++;
-            a[j] = *src++;
-        }
-
-        y += pic->linesize[0];
-        u += pic->linesize[1];
-        v += pic->linesize[2];
-        a += pic->linesize[3];
-    }
-
-    *got_frame = 1;
-
-    return avpkt->size;
-}
-
-const FFCodec ff_v408_decoder = {
-    .p.name       = "v408",
-    CODEC_LONG_NAME("Uncompressed packed QT 4:4:4:4"),
-    .p.type       = AVMEDIA_TYPE_VIDEO,
-    .p.id         = AV_CODEC_ID_V408,
-    .init         = v408_decode_init,
-    FF_CODEC_DECODE_CB(v408_decode_frame),
-    .p.capabilities = AV_CODEC_CAP_DR1,
-};
diff --git a/libavcodec/v408enc.c b/libavcodec/v408enc.c
deleted file mode 100644
index 4b6717a1fb..0000000000
--- a/libavcodec/v408enc.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * v408 encoder
- *
- * Copyright (c) 2012 Carl Eugen Hoyos
- *
- * 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 "avcodec.h"
-#include "codec_internal.h"
-#include "encode.h"
-#include "internal.h"
-
-static av_cold int v408_encode_init(AVCodecContext *avctx)
-{
-    avctx->bits_per_coded_sample = 32;
-    avctx->bit_rate = ff_guess_coded_bitrate(avctx);
-
-    av_log(avctx, AV_LOG_WARNING, "This encoder is deprecated and will be 
removed.\n");
-
-    return 0;
-}
-
-static int v408_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
-                             const AVFrame *pic, int *got_packet)
-{
-    uint8_t *dst;
-    const uint8_t *y, *u, *v, *a;
-    int i, j, ret;
-
-    ret = ff_get_encode_buffer(avctx, pkt, avctx->width * avctx->height * 4, 
0);
-    if (ret < 0)
-        return ret;
-    dst = pkt->data;
-
-    y = pic->data[0];
-    u = pic->data[1];
-    v = pic->data[2];
-    a = pic->data[3];
-
-    for (i = 0; i < avctx->height; i++) {
-        for (j = 0; j < avctx->width; j++) {
-            *dst++ = u[j];
-            *dst++ = y[j];
-            *dst++ = v[j];
-            *dst++ = a[j];
-        }
-        y += pic->linesize[0];
-        u += pic->linesize[1];
-        v += pic->linesize[2];
-        a += pic->linesize[3];
-    }
-
-    *got_packet = 1;
-    return 0;
-}
-
-static const enum AVPixelFormat pix_fmt[] = { AV_PIX_FMT_YUVA444P, 
AV_PIX_FMT_NONE };
-
-const FFCodec ff_v408_encoder = {
-    .p.name       = "v408",
-    CODEC_LONG_NAME("Uncompressed packed QT 4:4:4:4"),
-    .p.type       = AVMEDIA_TYPE_VIDEO,
-    .p.id         = AV_CODEC_ID_V408,
-    .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
-    .init         = v408_encode_init,
-    FF_CODEC_ENCODE_CB(v408_encode_frame),
-    CODEC_PIXFMTS_ARRAY(pix_fmt),
-};
diff --git a/libavcodec/v410dec.c b/libavcodec/v410dec.c
deleted file mode 100644
index d3747c18e0..0000000000
--- a/libavcodec/v410dec.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * v410 decoder
- *
- * Copyright (c) 2011 Derek Buitenhuis
- *
- * 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/common.h"
-#include "libavutil/intreadwrite.h"
-#include "avcodec.h"
-#include "codec_internal.h"
-#include "thread.h"
-
-typedef struct ThreadData {
-    AVFrame *frame;
-    const uint8_t *buf;
-    int stride;
-} ThreadData;
-
-static av_cold int v410_decode_init(AVCodecContext *avctx)
-{
-    avctx->pix_fmt             = AV_PIX_FMT_YUV444P10;
-    avctx->bits_per_raw_sample = 10;
-
-    if (avctx->width & 1) {
-        if (avctx->err_recognition & AV_EF_EXPLODE) {
-            av_log(avctx, AV_LOG_ERROR, "v410 requires width to be even.\n");
-            return AVERROR_INVALIDDATA;
-        } else {
-            av_log(avctx, AV_LOG_WARNING, "v410 requires width to be even, 
continuing anyway.\n");
-        }
-    }
-
-    av_log(avctx, AV_LOG_WARNING, "This decoder is deprecated and will be 
removed.\n");
-
-    return 0;
-}
-
-static int v410_decode_slice(AVCodecContext *avctx, void *arg, int jobnr, int 
threadnr)
-{
-    ThreadData *td = arg;
-    AVFrame *pic = td->frame;
-    int stride = td->stride;
-    int thread_count = av_clip(avctx->thread_count, 1, avctx->height/4);
-    int slice_start = (avctx->height *  jobnr) / thread_count;
-    int slice_end = (avctx->height * (jobnr+1)) / thread_count;
-    const uint8_t *src = td->buf + stride * slice_start;
-    uint16_t *y, *u, *v;
-    uint32_t val;
-    int i, j;
-
-    y = (uint16_t*)pic->data[0] + slice_start * (pic->linesize[0] >> 1);
-    u = (uint16_t*)pic->data[1] + slice_start * (pic->linesize[1] >> 1);
-    v = (uint16_t*)pic->data[2] + slice_start * (pic->linesize[2] >> 1);
-
-    for (i = slice_start; i < slice_end; i++) {
-        for (j = 0; j < avctx->width; j++) {
-            val = AV_RL32(src);
-
-            u[j] = (val >>  2) & 0x3FF;
-            y[j] = (val >> 12) & 0x3FF;
-            v[j] = (val >> 22);
-
-            src += 4;
-        }
-
-        y += pic->linesize[0] >> 1;
-        u += pic->linesize[1] >> 1;
-        v += pic->linesize[2] >> 1;
-    }
-
-    return 0;
-}
-
-static int v410_decode_frame(AVCodecContext *avctx, AVFrame *pic,
-                             int *got_frame, AVPacket *avpkt)
-{
-    ThreadData td;
-    const uint8_t *src = avpkt->data;
-    int ret;
-    int thread_count = av_clip(avctx->thread_count, 1, avctx->height/4);
-
-    td.stride = avctx->width * 4;
-    if (avpkt->size < 4 * avctx->height * avctx->width) {
-        av_log(avctx, AV_LOG_ERROR, "Insufficient input data.\n");
-        return AVERROR(EINVAL);
-    }
-
-    if ((ret = ff_thread_get_buffer(avctx, pic, 0)) < 0)
-        return ret;
-
-    td.buf = src;
-    td.frame = pic;
-    avctx->execute2(avctx, v410_decode_slice, &td, NULL, thread_count);
-
-    *got_frame = 1;
-
-    return avpkt->size;
-}
-
-const FFCodec ff_v410_decoder = {
-    .p.name       = "v410",
-    CODEC_LONG_NAME("Uncompressed 4:4:4 10-bit"),
-    .p.type       = AVMEDIA_TYPE_VIDEO,
-    .p.id         = AV_CODEC_ID_V410,
-    .init         = v410_decode_init,
-    FF_CODEC_DECODE_CB(v410_decode_frame),
-    .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_SLICE_THREADS |
-                    AV_CODEC_CAP_FRAME_THREADS,
-};
diff --git a/libavcodec/v410enc.c b/libavcodec/v410enc.c
deleted file mode 100644
index 1350acebba..0000000000
--- a/libavcodec/v410enc.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * v410 encoder
- *
- * Copyright (c) 2011 Derek Buitenhuis
- *
- * 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/common.h"
-#include "libavutil/intreadwrite.h"
-#include "avcodec.h"
-#include "codec_internal.h"
-#include "encode.h"
-#include "internal.h"
-
-static av_cold int v410_encode_init(AVCodecContext *avctx)
-{
-    if (avctx->width & 1) {
-        av_log(avctx, AV_LOG_ERROR, "v410 requires width to be even.\n");
-        return AVERROR_INVALIDDATA;
-    }
-
-    avctx->bits_per_coded_sample = 32;
-    avctx->bit_rate = ff_guess_coded_bitrate(avctx);
-
-    av_log(avctx, AV_LOG_WARNING, "This encoder is deprecated and will be 
removed.\n");
-
-    return 0;
-}
-
-static int v410_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
-                             const AVFrame *pic, int *got_packet)
-{
-    uint8_t *dst;
-    const uint16_t *y, *u, *v;
-    uint32_t val;
-    int i, j, ret;
-
-    ret = ff_get_encode_buffer(avctx, pkt, avctx->width * avctx->height * 4, 
0);
-    if (ret < 0)
-        return ret;
-    dst = pkt->data;
-
-    y = (uint16_t *)pic->data[0];
-    u = (uint16_t *)pic->data[1];
-    v = (uint16_t *)pic->data[2];
-
-    for (i = 0; i < avctx->height; i++) {
-        for (j = 0; j < avctx->width; j++) {
-            val  = u[j] << 2;
-            val |= y[j] << 12;
-            val |= (uint32_t) v[j] << 22;
-            AV_WL32(dst, val);
-            dst += 4;
-        }
-        y += pic->linesize[0] >> 1;
-        u += pic->linesize[1] >> 1;
-        v += pic->linesize[2] >> 1;
-    }
-
-    *got_packet = 1;
-    return 0;
-}
-
-const FFCodec ff_v410_encoder = {
-    .p.name       = "v410",
-    CODEC_LONG_NAME("Uncompressed 4:4:4 10-bit"),
-    .p.type       = AVMEDIA_TYPE_VIDEO,
-    .p.id         = AV_CODEC_ID_V410,
-    .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
-    .init         = v410_encode_init,
-    FF_CODEC_ENCODE_CB(v410_encode_frame),
-    CODEC_PIXFMTS(AV_PIX_FMT_YUV444P10),
-};
diff --git a/libavcodec/version.c b/libavcodec/version.c
index 07e8e47e44..3243ca2df7 100644
--- a/libavcodec/version.c
+++ b/libavcodec/version.c
@@ -31,7 +31,7 @@ const char av_codec_ffversion[] = "FFmpeg version " 
FFMPEG_VERSION;
 
 unsigned avcodec_version(void)
 {
-    static_assert(AV_CODEC_ID_PRORES_RAW   ==   274 &&
+    static_assert(AV_CODEC_ID_JPEGXS       ==   272 &&
                   AV_CODEC_ID_PCM_SGA      == 65572 &&
                   AV_CODEC_ID_ADPCM_SANYO  == 69685 &&
                   AV_CODEC_ID_CBD2_DPCM    == 81928 &&
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index f3d5880d55..e928e5bb2e 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -39,7 +39,6 @@
 
 #define FF_API_INIT_PACKET         (LIBAVCODEC_VERSION_MAJOR < 63)
 
-#define FF_API_V408_CODECID        (LIBAVCODEC_VERSION_MAJOR < 63)
 #define FF_API_CODEC_PROPS         (LIBAVCODEC_VERSION_MAJOR < 63)
 #define FF_API_EXR_GAMMA           (LIBAVCODEC_VERSION_MAJOR < 63)
 #define FF_API_INTRA_DC_PRECISION  (LIBAVCODEC_VERSION_MAJOR < 63)
diff --git a/libavformat/isom_tags.c b/libavformat/isom_tags.c
index 556f0eeea4..c0c239d393 100644
--- a/libavformat/isom_tags.c
+++ b/libavformat/isom_tags.c
@@ -63,11 +63,6 @@ const AVCodecTag ff_codec_movvideo_tags[] = {
     { AV_CODEC_ID_AVRP,   MKTAG('S', 'U', 'D', 'S') }, /* Avid DS Uncompressed 
*/
     { AV_CODEC_ID_V210,   MKTAG('v', '2', '1', '0') }, /* uncompressed 10-bit 
4:2:2 */
     { AV_CODEC_ID_V210,   MKTAG('b', 'x', 'y', '2') }, /* BOXX 10-bit 4:2:2 */
-#if FF_API_V408_CODECID
-    { AV_CODEC_ID_V308,   MKTAG('v', '3', '0', '8') }, /* uncompressed  8-bit 
4:4:4 */
-    { AV_CODEC_ID_V408,   MKTAG('v', '4', '0', '8') }, /* uncompressed  8-bit 
4:4:4:4 */
-    { AV_CODEC_ID_V410,   MKTAG('v', '4', '1', '0') }, /* uncompressed 10-bit 
4:4:4 */
-#endif
     { AV_CODEC_ID_Y41P,   MKTAG('Y', '4', '1', 'P') }, /* uncompressed 12-bit 
4:1:1 */
     { AV_CODEC_ID_YUV4,   MKTAG('y', 'u', 'v', '4') }, /* libquicktime packed 
yuv420p */
     { AV_CODEC_ID_TARGA_Y216, MKTAG('Y', '2', '1', '6') },
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 7c9dbb29f7..d5247ad45e 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -2806,11 +2806,6 @@ static int mov_write_video_tag(AVFormatContext *s, 
AVIOContext *pb, MOVMuxContex
                            || (track->par->codec_id == AV_CODEC_ID_RAWVIDEO && 
track->par->format == AV_PIX_FMT_VYU444)
                            || (track->par->codec_id == AV_CODEC_ID_RAWVIDEO && 
track->par->format == AV_PIX_FMT_UYVA)
                            || (track->par->codec_id == AV_CODEC_ID_RAWVIDEO && 
track->par->format == AV_PIX_FMT_V30XLE)
-#if FF_API_V408_CODECID
-                           ||  track->par->codec_id == AV_CODEC_ID_V308
-                           ||  track->par->codec_id == AV_CODEC_ID_V408
-                           ||  track->par->codec_id == AV_CODEC_ID_V410
-#endif
                            ||  track->par->codec_id == AV_CODEC_ID_V210);
 
     avio_wb32(pb, 0); /* size */
@@ -2852,8 +2847,7 @@ static int mov_write_video_tag(AVFormatContext *s, 
AVIOContext *pb, MOVMuxContex
     avio_w8(pb, strlen(compressor_name));
     avio_write(pb, compressor_name, 31);
 
-    if (track->mode == MODE_MOV &&
-       (track->par->codec_id == AV_CODEC_ID_V410 || track->par->codec_id == 
AV_CODEC_ID_V210))
+    if (track->mode == MODE_MOV && track->par->codec_id == AV_CODEC_ID_V210)
         avio_wb16(pb, 0x18);
     else if (track->mode == MODE_MOV && track->par->bits_per_coded_sample)
         avio_wb16(pb, track->par->bits_per_coded_sample |
diff --git a/libavformat/riff.c b/libavformat/riff.c
index fc79d0ac21..21de951e3a 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -309,11 +309,6 @@ const AVCodecTag ff_codec_bmp_tags[] = {
     { AV_CODEC_ID_R210,         MKTAG('r', '2', '1', '0') },
     { AV_CODEC_ID_V210,         MKTAG('v', '2', '1', '0') },
     { AV_CODEC_ID_V210,         MKTAG('C', '2', '1', '0') },
-#if FF_API_V408_CODECID
-    { AV_CODEC_ID_V308,         MKTAG('v', '3', '0', '8') },
-    { AV_CODEC_ID_V408,         MKTAG('v', '4', '0', '8') },
-    { AV_CODEC_ID_V410,         MKTAG('v', '4', '1', '0') },
-#endif
     { AV_CODEC_ID_YUV4,         MKTAG('y', 'u', 'v', '4') },
     { AV_CODEC_ID_INDEO3,       MKTAG('I', 'V', '3', '1') },
     { AV_CODEC_ID_INDEO3,       MKTAG('I', 'V', '3', '2') },
diff --git a/tests/fate/video.mak b/tests/fate/video.mak
index 10d1b20cd5..fa7b202052 100644
--- a/tests/fate/video.mak
+++ b/tests/fate/video.mak
@@ -368,12 +368,12 @@ fate-ulti: CMD = framecrc -i 
$(TARGET_SAMPLES)/ulti/hit12w.avi -an
 FATE_VIDEO-$(call FRAMECRC, AVI, V210, SCALE_FILTER) += fate-v210
 fate-v210: CMD = framecrc -i $(TARGET_SAMPLES)/v210/v210_720p-partial.avi 
-pix_fmt yuv422p16be -an -vf scale
 
-FATE_VIDEO-$(call FRAMECRC, MOV, V410, SCALE_FILTER) += fate-v410dec
+FATE_VIDEO-$(call FRAMECRC, MOV, RAWVIDEO, SCALE_FILTER) += fate-v410dec
 fate-v410dec: CMD = framecrc -i $(TARGET_SAMPLES)/v410/lenav410.mov -pix_fmt 
yuv444p10le -vf scale
 
-FATE_VIDEO-$(call ENCDEC, V410 PGMYUV, AVI IMAGE2, SCALE_FILTER) += 
fate-v410enc
+FATE_VIDEO-$(call ENCDEC, RAWVIDEO PGMYUV, AVI IMAGE2, SCALE_FILTER) += 
fate-v410enc
 fate-v410enc: $(VREF)
-fate-v410enc: CMD = md5 -f image2 -c:v pgmyuv -i 
$(TARGET_PATH)/tests/vsynth1/%02d.pgm -fflags +bitexact -c:v v410 -f avi -vf 
scale
+fate-v410enc: CMD = md5 -f image2 -c:v pgmyuv -i 
$(TARGET_PATH)/tests/vsynth1/%02d.pgm -fflags +bitexact -c:v rawvideo -pix_fmt 
v30xle -f avi -vf scale
 
 FATE_VIDEO-$(call FRAMECRC, SIFF, VB, SCALE_FILTER) += fate-vb
 fate-vb: CMD = framecrc -i $(TARGET_SAMPLES)/SIFF/INTRO_B.VB -t 3 -pix_fmt 
rgb24 -an -vf scale
diff --git a/tests/ref/fate/v410enc b/tests/ref/fate/v410enc
index 9fddf5a35c..cce8cb87f5 100644
--- a/tests/ref/fate/v410enc
+++ b/tests/ref/fate/v410enc
@@ -1 +1 @@
-465bcc7477104a8295f47b35f1b987df
+8e7fcce494f16a3d1dd62eb475bd0e4e

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to