[FFmpeg-devel] [PATCH] avcodec/remove_extradata_bsf: add a list of supported codec ids

James Almer jamrial at gmail.com
Thu May 26 01:52:00 EEST 2022


There's no point allowing the use of this filter for codecs where
it will silently do nothing.

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavcodec/remove_extradata_bsf.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/libavcodec/remove_extradata_bsf.c b/libavcodec/remove_extradata_bsf.c
index 66b7d00bd8..584213e40f 100644
--- a/libavcodec/remove_extradata_bsf.c
+++ b/libavcodec/remove_extradata_bsf.c
@@ -18,6 +18,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/avassert.h"
 #include "libavutil/log.h"
 #include "libavutil/opt.h"
 
@@ -217,7 +218,7 @@ static int remove_extradata(AVBSFContext *ctx, AVPacket *pkt)
             i = vc1_split(pkt->data, pkt->size);
             break;
         default:
-            i = 0;
+            av_assert0(0);
         }
 
         pkt->data += i;
@@ -238,6 +239,20 @@ static const AVOption options[] = {
     { NULL },
 };
 
+static const enum AVCodecID codec_ids[] = {
+    AV_CODEC_ID_AV1,
+    AV_CODEC_ID_AVS2,
+    AV_CODEC_ID_AVS3,
+    AV_CODEC_ID_CAVS,
+    AV_CODEC_ID_H264,
+    AV_CODEC_ID_HEVC,
+    AV_CODEC_ID_MPEG1VIDEO,
+    AV_CODEC_ID_MPEG2VIDEO,
+    AV_CODEC_ID_MPEG4,
+    AV_CODEC_ID_VC1,
+    AV_CODEC_ID_NONE,
+};
+
 static const AVClass remove_extradata_class = {
     .class_name = "remove_extradata",
     .item_name  = av_default_item_name,
@@ -247,6 +262,7 @@ static const AVClass remove_extradata_class = {
 
 const FFBitStreamFilter ff_remove_extradata_bsf = {
     .p.name         = "remove_extra",
+    .p.codec_ids    = codec_ids,
     .p.priv_class   = &remove_extradata_class,
     .priv_data_size = sizeof(RemoveExtradataContext),
     .filter         = remove_extradata,
-- 
2.36.1



More information about the ffmpeg-devel mailing list