vlc | branch: master | Steve Lhomme <[email protected]> | Thu Oct 15 19:05:02 2015 +0200| [c358dd001c6d86c2389cfc30f7d32351f4600f5a] | committer: Jean-Baptiste Kempf
d3d11va: better logging of decoder configuration Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c358dd001c6d86c2389cfc30f7d32351f4600f5a --- modules/codec/avcodec/d3d11va.c | 9 +++++++-- modules/codec/avcodec/directx_va.c | 19 ++++++++++--------- modules/codec/avcodec/directx_va.h | 1 + 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c index 677387e..8998b15 100644 --- a/modules/codec/avcodec/d3d11va.c +++ b/modules/codec/avcodec/d3d11va.c @@ -638,16 +638,18 @@ static int DxSetupOutput(vlc_va_t *va, const GUID *input) processorInput[idx++] = DXGI_FORMAT_NV12; processorInput[idx++] = DXGI_FORMAT_UNKNOWN; + char *psz_decoder_name = directx_va_GetDecoderName(input); + /* */ for (idx = 0; processorInput[idx] != DXGI_FORMAT_UNKNOWN; ++idx) { BOOL is_supported = false; hr = ID3D11VideoDevice_CheckVideoDecoderFormat((ID3D11VideoDevice*) dx_sys->d3ddec, input, processorInput[idx], &is_supported); if (SUCCEEDED(hr) && is_supported) - msg_Dbg(va, "%s is supported for output", DxgiFormatToStr(processorInput[idx])); + msg_Dbg(va, "%s output is supported for decoder %s.", DxgiFormatToStr(processorInput[idx]), psz_decoder_name); else { - msg_Dbg(va, "Can't get a decoder for output format %s.", DxgiFormatToStr(processorInput[idx])); + msg_Dbg(va, "Can't get a decoder output format %s for decoder %s.", DxgiFormatToStr(processorInput[idx]), psz_decoder_name); continue; } @@ -664,10 +666,13 @@ static int DxSetupOutput(vlc_va_t *va, const GUID *input) if ( !b_needsProcessor ) { + msg_Dbg(va, "Using output format %s for decoder %s", DxgiFormatToStr(processorInput[idx]), psz_decoder_name); va->sys->render = processorInput[idx]; + free(psz_decoder_name); return VLC_SUCCESS; } } + free(psz_decoder_name); msg_Dbg(va, "Output format from picture source not supported."); return VLC_EGENERIC; diff --git a/modules/codec/avcodec/directx_va.c b/modules/codec/avcodec/directx_va.c index c8df0ec..2f617f0 100644 --- a/modules/codec/avcodec/directx_va.c +++ b/modules/codec/avcodec/directx_va.c @@ -242,13 +242,17 @@ static void DestroyVideoService(vlc_va_t *, directx_sys_t *); static void DestroyDeviceManager(vlc_va_t *, directx_sys_t *); static void DestroyDevice(vlc_va_t *, directx_sys_t *); -static const directx_va_mode_t *FindDxvaMode(const GUID *guid) +char *directx_va_GetDecoderName(const GUID *guid) { for (unsigned i = 0; DXVA_MODES[i].name; i++) { if (IsEqualGUID(DXVA_MODES[i].guid, guid)) - return &DXVA_MODES[i]; + return strdup(DXVA_MODES[i].name); } - return NULL; + + char *psz_name = malloc(36); + if (likely(psz_name)) + asprintf(&psz_name, "Unknown decoder " GUID_FMT, GUID_PRINT(*guid)); + return psz_name; } /* */ @@ -517,12 +521,9 @@ static int FindVideoServiceConversion(vlc_va_t *va, directx_sys_t *dx_sys, const /* Retreive supported modes from the decoder service */ for (unsigned i = 0; i < p_list.count; i++) { const GUID *g = &p_list.list[i]; - const directx_va_mode_t *mode = FindDxvaMode(g); - if (mode) { - msg_Dbg(va, "- '%s' is supported by hardware", mode->name); - } else { - msg_Warn(va, "- Unknown GUID = " GUID_FMT, GUID_PRINT( *g ) ); - } + char *psz_decoder_name = directx_va_GetDecoderName(g); + msg_Dbg(va, "- '%s' is supported by hardware", psz_decoder_name); + free(psz_decoder_name); } /* Try all supported mode by our priority */ diff --git a/modules/codec/avcodec/directx_va.h b/modules/codec/avcodec/directx_va.h index c3718a3..905ae0d 100644 --- a/modules/codec/avcodec/directx_va.h +++ b/modules/codec/avcodec/directx_va.h @@ -139,5 +139,6 @@ void directx_va_Close(vlc_va_t *, directx_sys_t *); int directx_va_Setup(vlc_va_t *, directx_sys_t *, AVCodecContext *avctx); int directx_va_Get(vlc_va_t *, directx_sys_t *, picture_t *pic, uint8_t **data); void directx_va_Release(void *opaque, uint8_t *data); +char *directx_va_GetDecoderName(const GUID *guid); #endif /* AVCODEC_DIRECTX_VA_H */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
