summaryrefslogtreecommitdiff
path: root/libavcodec/bsf.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/bsf.c')
-rw-r--r--libavcodec/bsf.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c
index 8e36861f14..40fc925f0d 100644
--- a/libavcodec/bsf.c
+++ b/libavcodec/bsf.c
@@ -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;
+}