【求助】LAV硬解D..madVR是最新版,Lav也应该没有问题……可能是你独显驱动没装好?实在不行用copy-back吧(选dxva2copyback或者d3d11选择一个显卡),copy-back比native速度稍慢,
Sample - https://yadi.sk/i/tHeBjqFbRRHcyA DXVA2 Native working good. The reason is that ffmpeg when opened MPEG1/2 don't read/parse extradata and don't fill level/profile/pix_fmt. But when use DXVA2(copy-back) or D3D11 Native - init decoder(second time) after decode first frame...
要想看懂dxva2_init函数的逻辑,你最好看看前面两篇翻译的内容,另外你还需要懂一点D3D渲染的基本知识。 函数dxva2_retrieve_data_call用来获得解码后的数据的。如我前面所说,如果不必要,最后不要再把它copy出来,直接用D3D绘制出来就行了,把数据从GPU再copy到内存中会极大的降低GPU的使用率,在我的试验中这样做完全...
如我前面所说,如果不必要,最后不要再把它copy出来,直接用D3D绘制出来就行了,把数据从GPU再copy到内存中会极大的降低GPU的使用率,在我的试验中这样做完全没达到GPU加速的目的,反而是CPU的使用率增高了。所以你在我上传的源码中看到的是直接绘制数据。 static int dxva2_retrieve_data(AVCodecContext *s, AVFrame ...
You can copy the content locally onto each client machine before you run the tests and update the value of ContentSource to be the local path on the machine. For example, if you use an external drive with letter d: and place the content in d:\DXVAContent, when you schedule the test ...
sizeof(start_code) : 0; const unsigned mb_count = s->mb_width * (s->mb_height >> v->field_mode); DXVA_SliceInfo *slice = NULL; void *dxva_data_ptr; uint8_t *dxva_data, *current, *end; unsigned dxva_size; unsigned padding; unsigned i; unsigned type; #if CONFIG_...
函数dxva2_retrieve_data_call用来获得解码后的数据的。如我前面所说,如果不必要,最后不要再把它copy出来,直接用D3D绘制出来就行了,把数据从GPU再copy到内存中会极大的降低GPU的使用率,在我的试验中这样做完全没达到GPU加速的目的,反而是CPU的使用率增高了。所以你在我上传的源码中看到的是直接绘制数据。
sizeof(start_code) : 0; const unsigned mb_count = s->mb_width * (s->mb_height >> v->field_mode); DXVA_SliceInfo *slice = NULL; void *dxva_data_ptr; uint8_t *dxva_data, *current, *end; unsigned dxva_size; unsigned padding; unsigned i; unsigned type; #if CONF...
(dxva_data + start_code_size + slice_size, 0, padding); slice->dwSliceBitsInBuffer = 8 * data_size; } #if CONFIG_D3D11VA if (avctx->pix_fmt == AV_PIX_FMT_D3D11VA_VLD) if (FAILED(ID3D11VideoContext_ReleaseDecoderBuffer(D3D11VA_CONTEXT(ctx)->video_context, D3D...