mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-18 21:45:10 +00:00
lavf: add internal API to append a bsf to a stream's list
This commit is contained in:
parent
1f9139b07b
commit
822e80fde3
@ -464,6 +464,17 @@ enum AVChromaLocation ff_choose_chroma_location(AVFormatContext *s, AVStream *st
|
||||
*/
|
||||
int ff_generate_avci_extradata(AVStream *st);
|
||||
|
||||
/**
|
||||
* Add a bitstream filter to a stream.
|
||||
*
|
||||
* @param st output stream to add a filter to
|
||||
* @param name the name of the filter to add
|
||||
* @param args filter-specific argument string
|
||||
* @return >0 on success;
|
||||
* AVERROR code on failure
|
||||
*/
|
||||
int ff_stream_add_bitstream_filter(AVStream *st, const char *name, const char *args);
|
||||
|
||||
/**
|
||||
* Wrap errno on rename() error.
|
||||
*
|
||||
|
@ -4651,6 +4651,28 @@ uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type,
|
||||
return data;
|
||||
}
|
||||
|
||||
int ff_stream_add_bitstream_filter(AVStream *st, const char *name, const char *args)
|
||||
{
|
||||
AVBitStreamFilterContext *bsfc = NULL;
|
||||
AVBitStreamFilterContext **dest = &st->internal->bsfc;
|
||||
while (*dest && (*dest)->next)
|
||||
dest = &(*dest)->next;
|
||||
|
||||
if (!(bsfc = av_bitstream_filter_init(name))) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Unknown bitstream filter '%s'\n", name);
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
if (args && !(bsfc->args = av_strdup(args))) {
|
||||
av_bitstream_filter_close(bsfc);
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
av_log(st->codec, AV_LOG_VERBOSE,
|
||||
"Automatically inserted bitstream filter '%s'; args='%s'\n",
|
||||
name, args ? args : "");
|
||||
*dest = bsfc;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int av_apply_bitstream_filters(AVCodecContext *codec, AVPacket *pkt,
|
||||
AVBitStreamFilterContext *bsfc)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user