mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 08:42:39 +00:00
avcodec/bsf: Add ff_bsf_get_packet_ref() function
Use of this function can save unnecessary malloc operation in bitstream filter. Signed-off-by: Jan Sebechlebsky <sebechlebskyjan@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
79dc94a63b
commit
7ae52f8a6b
@ -220,3 +220,19 @@ int ff_bsf_get_packet(AVBSFContext *ctx, AVPacket **pkt)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ff_bsf_get_packet_ref(AVBSFContext *ctx, AVPacket *pkt)
|
||||
{
|
||||
AVBSFInternal *in = ctx->internal;
|
||||
|
||||
if (in->eof)
|
||||
return AVERROR_EOF;
|
||||
|
||||
if (!ctx->internal->buffer_pkt->data &&
|
||||
!ctx->internal->buffer_pkt->side_data_elems)
|
||||
return AVERROR(EAGAIN);
|
||||
|
||||
av_packet_move_ref(pkt, ctx->internal->buffer_pkt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -28,6 +28,17 @@
|
||||
*/
|
||||
int ff_bsf_get_packet(AVBSFContext *ctx, AVPacket **pkt);
|
||||
|
||||
/**
|
||||
* Called by bitstream filters to get packet for filtering.
|
||||
* The reference to packet is moved to provided packet structure.
|
||||
*
|
||||
* @param ctx pointer to AVBSFContext of filter
|
||||
* @param pkt pointer to packet to move reference to
|
||||
*
|
||||
* @return 0>= on success, negative AVERROR in case of failure
|
||||
*/
|
||||
int ff_bsf_get_packet_ref(AVBSFContext *ctx, AVPacket *pkt);
|
||||
|
||||
const AVClass *ff_bsf_child_class_next(const AVClass *prev);
|
||||
|
||||
#endif /* AVCODEC_BSF_H */
|
||||
|
Loading…
Reference in New Issue
Block a user