Not sure if this is helpful to a developer, but these are the DXVA api calls in WMP to play a frame correctly in the video sample that I posted:
DXVA2_ProcessBlt, 6348, 00:00:11.1179043
DXVA2_DecodeDeviceGetBuffer, 6348, 00:00:11.1187653
DXVA2_DecodeDeviceGetBuffer, 6348, 00:00:11.1187691
DXVA2_DecodeDeviceGetBuffer, 6348, 00:00:11.1187711
DXVA2_DecodeDeviceBeginFrame, 6348, 00:00:11.1289430
DXVA2_DecodeDeviceBeginFrame, 6348, 00:00:11.1289654
DXVA2_DecodeDeviceGetBuffer, 6348, 00:00:11.1289674
DXVA2_DecodeDeviceExecute, 6348, 00:00:11.1289706
DXVA2_DecodeDeviceExecute, 6348, 00:00:11.1289796
DXVA2_DecodeDeviceEndFrame, 6348, 00:00:11.1294107
DXVA2_DecodeDeviceEndFrame, 6348, 00:00:11.1296404
And this is how XBMC does it:
DXVA2_ProcessBlt, XBMC, 00:00:05.7270504
DXVA2_DecodeDeviceExecute, XBMC, 00:00:05.7271139
DXVA2_DecodeDeviceBeginFrame, XBMC, 00:00:05.7294833
DXVA2_DecodeDeviceGetBuffer, XBMC, 00:00:05.7295013
DXVA2_DecodeDeviceGetBuffer, XBMC, 00:00:05.7295077
DXVA2_DecodeDeviceGetBuffer, XBMC, 00:00:05.7295635
DXVA2_DecodeDeviceExecute, XBMC, 00:00:05.7295667
DXVA2_DecodeDeviceEndFrame, XBMC, 00:00:05.7296527
DXVA2_DecodeDeviceExecute, XBMC, 00:00:05.7300178
I had expected this to be the same as VLC, but interestingly, it's different. VLC uses even less calls:
DXVA2_DecodeDeviceBeginFrame, 5060, 00:00:04.4396770
DXVA2_DecodeDeviceGetBuffer, 5060, 00:00:04.4397014
DXVA2_DecodeDeviceGetBuffer, 5060, 00:00:04.4397065
DXVA2_DecodeDeviceGetBuffer, 5060, 00:00:04.4397097
DXVA2_DecodeDeviceExecute, 5060, 00:00:04.4397123
DXVA2_DecodeDeviceEndFrame, 5060, 00:00:04.4397393
I logged this with DXVA-checker. Too bad it doesn't have some more advanced features, but that's of course were windbg and olly come in