Message ID | 20220525225200.65113-1-jamrial@gmail.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] avcodec/remove_extradata_bsf: add a list of supported codec ids | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
On 5/25/2022 7:52 PM, James Almer wrote: > There's no point allowing the use of this filter for codecs where > it will silently do nothing. > > Signed-off-by: James Almer <jamrial@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, Will apply.
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,
There's no point allowing the use of this filter for codecs where it will silently do nothing. Signed-off-by: James Almer <jamrial@gmail.com> --- libavcodec/remove_extradata_bsf.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)