[FFmpeg-devel] [PATCH 1/2] avcodec/bsf/showinfo: print packet side data and flags

James Almer jamrial at gmail.com
Fri Jul 12 03:33:06 EEST 2024


Same as the framecrc muxer. This will allow callers to analize changes in these
values between filters within a list.

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavcodec/bsf/showinfo.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/libavcodec/bsf/showinfo.c b/libavcodec/bsf/showinfo.c
index 4e31e0b5cb..0899263545 100644
--- a/libavcodec/bsf/showinfo.c
+++ b/libavcodec/bsf/showinfo.c
@@ -23,6 +23,7 @@
 #include "bsf.h"
 #include "bsf_internal.h"
 
+#include "libavutil/internal.h"
 #include "libavutil/log.h"
 #include "libavutil/timestamp.h"
 
@@ -45,11 +46,18 @@ static int showinfo_filter(AVBSFContext *ctx, AVPacket *pkt)
            "pts:%s pt:%s "
            "dts:%s dt:%s "
            "ds:%"PRId64" d:%s "
-           "\n",
            priv->nb_packets, pkt->size,
            av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &ctx->time_base_in),
            av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &ctx->time_base_in),
            pkt->duration, av_ts2timestr(pkt->duration, &ctx->time_base_in));
+    if (pkt->flags != AV_PKT_FLAG_KEY)
+        av_log(ctx, AV_LOG_INFO, ", F=0x%0X", pkt->flags);
+    if (pkt->side_data_elems) {
+        av_log(ctx, AV_LOG_INFO, ", S=%d", pkt->side_data_elems);
+        for (int i = 0; i < pkt->side_data_elems; i++)
+            av_log(ctx, AV_LOG_INFO, ", %8"SIZE_SPECIFIER, pkt->side_data[i].size);
+    }
+    av_log(ctx, AV_LOG_INFO, "\n");
 
     priv->nb_packets++;
 
-- 
2.45.2



More information about the ffmpeg-devel mailing list