From 84bb8327f571c4924789413efafde47d96b8b72b Mon Sep 17 00:00:00 2001 From: Mark Thompson Date: Sun, 11 Mar 2018 17:27:15 +0000 Subject: [PATCH] cbs: Add a table of all supported codec IDs Use it as the set of codec IDs supported by the trace_headers BSF. --- configure | 2 +- libavcodec/cbs.c | 13 +++++++++++++ libavcodec/cbs.h | 8 ++++++++ libavcodec/trace_headers_bsf.c | 9 +-------- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/configure b/configure index f09f48c54b..87430f460f 100755 --- a/configure +++ b/configure @@ -2924,7 +2924,7 @@ h264_redundant_pps_bsf_select="cbs_h264" hevc_metadata_bsf_select="cbs_h265" mjpeg2jpeg_bsf_select="jpegtables" mpeg2_metadata_bsf_select="cbs_mpeg2" -trace_headers_bsf_select="cbs_h264 cbs_h265 cbs_mpeg2" +trace_headers_bsf_select="cbs" # external libraries aac_at_decoder_deps="audiotoolbox" diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index 62f60be437..897e0bb28e 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -40,6 +40,19 @@ static const CodedBitstreamType *cbs_type_table[] = { #endif }; +const enum AVCodecID ff_cbs_all_codec_ids[] = { +#if CONFIG_CBS_H264 + AV_CODEC_ID_H264, +#endif +#if CONFIG_CBS_H265 + AV_CODEC_ID_H265, +#endif +#if CONFIG_CBS_MPEG2 + AV_CODEC_ID_MPEG2VIDEO, +#endif + AV_CODEC_ID_NONE +}; + int ff_cbs_init(CodedBitstreamContext **ctx_ptr, enum AVCodecID codec_id, void *log_ctx) { diff --git a/libavcodec/cbs.h b/libavcodec/cbs.h index 396ff0faec..402eb39e00 100644 --- a/libavcodec/cbs.h +++ b/libavcodec/cbs.h @@ -201,6 +201,14 @@ typedef struct CodedBitstreamContext { } CodedBitstreamContext; +/** + * Table of all supported codec IDs. + * + * Terminated by AV_CODEC_ID_NONE. + */ +extern const enum AVCodecID ff_cbs_all_codec_ids[]; + + /** * Create and initialise a new context for the given codec. */ diff --git a/libavcodec/trace_headers_bsf.c b/libavcodec/trace_headers_bsf.c index 0697e98943..94a3ef72a2 100644 --- a/libavcodec/trace_headers_bsf.c +++ b/libavcodec/trace_headers_bsf.c @@ -107,18 +107,11 @@ static int trace_headers(AVBSFContext *bsf, AVPacket *pkt) return 0; } -static const enum AVCodecID trace_headers_codec_ids[] = { - AV_CODEC_ID_H264, - AV_CODEC_ID_HEVC, - AV_CODEC_ID_MPEG2VIDEO, - AV_CODEC_ID_NONE, -}; - const AVBitStreamFilter ff_trace_headers_bsf = { .name = "trace_headers", .priv_data_size = sizeof(TraceHeadersContext), .init = &trace_headers_init, .close = &trace_headers_close, .filter = &trace_headers, - .codec_ids = trace_headers_codec_ids, + .codec_ids = ff_cbs_all_codec_ids, };