cbs: Add a table of all supported codec IDs

Use it as the set of codec IDs supported by the trace_headers BSF.
pull/283/head
Mark Thompson 7 years ago
parent 94d42cb4cc
commit 84bb8327f5
  1. 2
      configure
  2. 13
      libavcodec/cbs.c
  3. 8
      libavcodec/cbs.h
  4. 9
      libavcodec/trace_headers_bsf.c

2
configure vendored

@ -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"

@ -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)
{

@ -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.
*/

@ -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,
};

Loading…
Cancel
Save