From 61974c7dcca833687d4f3834c7e8200a63a7b4af Mon Sep 17 00:00:00 2001 From: rogerdpack Date: Mon, 26 Jan 2015 02:03:48 -0700 Subject: dshow: tweak logging Signed-off-by: rogerdpack --- libavdevice/dshow.c | 4 ++-- libavdevice/dshow_pin.c | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c index 9ca2519dd7..d03670e36f 100644 --- a/libavdevice/dshow.c +++ b/libavdevice/dshow.c @@ -1044,7 +1044,7 @@ static int dshow_read_header(AVFormatContext *avctx) if (ctx->device_name[AudioDevice]) { if ((r = dshow_open_device(avctx, devenum, AudioDevice, AudioSourceDevice)) < 0 || (r = dshow_add_device(avctx, AudioDevice)) < 0) { - av_log(avctx, AV_LOG_INFO, "Searching for audio device within video devices %s\n", ctx->device_name[AudioDevice]); + av_log(avctx, AV_LOG_INFO, "Searching for audio device within video devices for %s\n", ctx->device_name[AudioDevice]); /* see if there's a video source with an audio pin with the given audio name */ if ((r = dshow_open_device(avctx, devenum, AudioDevice, VideoSourceDevice)) < 0 || (r = dshow_add_device(avctx, AudioDevice)) < 0) { @@ -1104,7 +1104,7 @@ static int dshow_read_header(AVFormatContext *avctx) r = IMediaControl_GetState(control, 0, &pfs); } if (r != S_OK) { - av_log(avctx, AV_LOG_ERROR, "Could not run filter\n"); + av_log(avctx, AV_LOG_ERROR, "Could not run graph (sometimes caused by a device already in use by other application)\n"); goto error; } diff --git a/libavdevice/dshow_pin.c b/libavdevice/dshow_pin.c index 5904c28b86..4f719a660e 100644 --- a/libavdevice/dshow_pin.c +++ b/libavdevice/dshow_pin.c @@ -304,21 +304,25 @@ libAVMemInputPin_Receive(libAVMemInputPin *this, IMediaSample *sample) enum dshowDeviceType devtype = pin->filter->type; void *priv_data; uint8_t *buf; - int buf_size; + int buf_size; /* todo should be a long? */ int index; int64_t curtime; + int64_t orig_curtime; + const char *devtypename = (devtype == VideoDevice) ? "video" : "audio"; + IReferenceClock *clock = pin->filter->clock; + int64_t dummy; dshowdebug("libAVMemInputPin_Receive(%p)\n", this); if (!sample) return E_POINTER; + IMediaSample_GetTime(sample, &orig_curtime, &dummy); + orig_curtime += pin->filter->start_time; if (devtype == VideoDevice) { /* PTS from video devices is unreliable. */ - IReferenceClock *clock = pin->filter->clock; IReferenceClock_GetTime(clock, &curtime); } else { - int64_t dummy; IMediaSample_GetTime(sample, &curtime, &dummy); if(curtime > 400000000000000000LL) { /* initial frames sometimes start < 0 (shown as a very large number here, @@ -336,6 +340,8 @@ libAVMemInputPin_Receive(libAVMemInputPin *this, IMediaSample *sample) priv_data = pin->filter->priv_data; index = pin->filter->stream_index; + av_log(NULL, AV_LOG_VERBOSE, "dshow passing through packet of type %s size %6d timestamp %"PRId64" orig timestamp %"PRId64"\n", + devtypename, buf_size, curtime, orig_curtime); pin->filter->callback(priv_data, index, buf, buf_size, curtime, devtype); return S_OK; -- cgit v1.2.3