From eedca998eb6b2271248324469b45d7d99ea86aff Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Tue, 24 Aug 2010 15:12:13 +0000 Subject: [PATCH] Implement ff_get_ref_perms_string() and use it for tracing. Originally committed as revision 24900 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavfilter/avfilter.c | 20 +++++++++++++++++--- libavfilter/avfilter.h | 2 +- libavfilter/internal.h | 2 ++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index d787f9233f..bc8c67e523 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -191,11 +191,23 @@ int avfilter_config_links(AVFilterContext *filter) return 0; } +char *ff_get_ref_perms_string(char *buf, size_t buf_size, int perms) +{ + snprintf(buf, buf_size, "%s%s%s%s%s", + perms & AV_PERM_READ ? "r" : "", + perms & AV_PERM_WRITE ? "w" : "", + perms & AV_PERM_PRESERVE ? "p" : "", + perms & AV_PERM_REUSE ? "r" : "", + perms & AV_PERM_REUSE2 ? "R" : ""); + return buf; +} + void ff_dprintf_ref(void *ctx, AVFilterBufferRef *ref, int end) { + av_unused char buf[16]; dprintf(ctx, - "ref[%p buf:%p refcount:%d perms:0x%x data:%p linesize[%d, %d, %d, %d] pts:%"PRId64" pos:%"PRId64, - ref, ref->buf, ref->buf->refcount, ref->perms, ref->data[0], + "ref[%p buf:%p refcount:%d perms:%s data:%p linesize[%d, %d, %d, %d] pts:%"PRId64" pos:%"PRId64, + ref, ref->buf, ref->buf->refcount, ff_get_ref_perms_string(buf, sizeof(buf), ref->perms), ref->data[0], ref->linesize[0], ref->linesize[1], ref->linesize[2], ref->linesize[3], ref->pts, ref->pos); @@ -233,7 +245,9 @@ AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int { AVFilterBufferRef *ret = NULL; - FF_DPRINTF_START(NULL, get_video_buffer); ff_dprintf_link(NULL, link, 0); dprintf(NULL, " perms:%d w:%d h:%d\n", perms, w, h); + av_unused char buf[16]; + FF_DPRINTF_START(NULL, get_video_buffer); ff_dprintf_link(NULL, link, 0); + dprintf(NULL, " perms:%s w:%d h:%d\n", ff_get_ref_perms_string(buf, sizeof(buf), perms), w, h); if (link_dpad(link).get_video_buffer) ret = link_dpad(link).get_video_buffer(link, perms, w, h); diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index dfe27e7734..721519a200 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -26,7 +26,7 @@ #define LIBAVFILTER_VERSION_MAJOR 1 #define LIBAVFILTER_VERSION_MINOR 38 -#define LIBAVFILTER_VERSION_MICRO 0 +#define LIBAVFILTER_VERSION_MICRO 1 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ diff --git a/libavfilter/internal.h b/libavfilter/internal.h index c55898bc11..2f0dde125d 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -28,6 +28,8 @@ void ff_dprintf_ref(void *ctx, AVFilterBufferRef *ref, int end); +char *ff_get_ref_perms_string(char *buf, size_t buf_size, int perms); + void ff_dprintf_link(void *ctx, AVFilterLink *link, int end); #define FF_DPRINTF_START(ctx, func) dprintf(NULL, "%-16s: ", #func)