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);
|
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.
|
* Wrap errno on rename() error.
|
||||||
*
|
*
|
||||||
|
@ -4651,6 +4651,28 @@ uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type,
|
|||||||
return data;
|
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,
|
int av_apply_bitstream_filters(AVCodecContext *codec, AVPacket *pkt,
|
||||||
AVBitStreamFilterContext *bsfc)
|
AVBitStreamFilterContext *bsfc)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user