@@ -28,6 +28,8 @@
#include "avcodec.h"
#include "bsf.h"
+#define IS_EMPTY(pkt) (!(pkt)->data && !(pkt)->side_data_elems)
+
struct AVBSFInternal {
AVPacket *buffer_pkt;
int eof;
@@ -195,7 +197,7 @@ int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt)
AVBSFInternal *bsfi = ctx->internal;
int ret;
- if (!pkt || (!pkt->data && !pkt->side_data_elems)) {
+ if (!pkt || IS_EMPTY(pkt)) {
bsfi->eof = 1;
return 0;
}
@@ -205,8 +207,7 @@ int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt)
return AVERROR(EINVAL);
}
- if (bsfi->buffer_pkt->data ||
- bsfi->buffer_pkt->side_data_elems)
+ if (!IS_EMPTY(bsfi->buffer_pkt))
return AVERROR(EAGAIN);
ret = av_packet_make_refcounted(pkt);
@@ -230,8 +231,7 @@ int ff_bsf_get_packet(AVBSFContext *ctx, AVPacket **pkt)
if (bsfi->eof)
return AVERROR_EOF;
- if (!bsfi->buffer_pkt->data &&
- !bsfi->buffer_pkt->side_data_elems)
+ if (IS_EMPTY(bsfi->buffer_pkt))
return AVERROR(EAGAIN);
tmp_pkt = av_packet_alloc();
@@ -251,8 +251,7 @@ int ff_bsf_get_packet_ref(AVBSFContext *ctx, AVPacket *pkt)
if (bsfi->eof)
return AVERROR_EOF;
- if (!bsfi->buffer_pkt->data &&
- !bsfi->buffer_pkt->side_data_elems)
+ if (IS_EMPTY(bsfi->buffer_pkt))
return AVERROR(EAGAIN);
av_packet_move_ref(pkt, bsfi->buffer_pkt);
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> --- libavcodec/bsf.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)