X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fbsf.c;h=bd611ea16b0e7da1e675b40c046a87b488a35754;hb=d122c8b1028bb713c6c0cdb45d477f43b62d2436;hp=38b423101c36122b583d4690f4c4aeaf57523503;hpb=ccef7a85d6491fb354a36970162fa0204217d8e7;p=ffmpeg diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c index 38b423101c3..bd611ea16b0 100644 --- a/libavcodec/bsf.c +++ b/libavcodec/bsf.c @@ -174,6 +174,8 @@ int av_bsf_init(AVBSFContext *ctx) int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt) { + int ret; + if (!pkt || (!pkt->data && !pkt->side_data_elems)) { ctx->internal->eof = 1; return 0; @@ -188,6 +190,9 @@ int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt) ctx->internal->buffer_pkt->side_data_elems) return AVERROR(EAGAIN); + ret = av_packet_make_refcounted(pkt); + if (ret < 0) + return ret; av_packet_move_ref(ctx->internal->buffer_pkt, pkt); return 0;