I would like to use some c++ framework to decode, encode and manipulate video. There are numerous frameworks based on different technologies available, Intel Media SDK, NVIDIA VIDEO CODEC SDK, AMD Media SDK to name a few. These are HW vendor specific. I'm looking for something that would give me the abstraction layer which hides HW specific implementation, moreover I would like to use a library that can use all available HW acceleration options, typically when using Gen6 Intel with NVidia card, Intel SDK could be used for Intel integrated GPU, CUDA for NVidia and OpenCL for the CPU. Sounds like a holy grail, but there is such a library available? OpenCV looks like a good candidate, but can it use all available HW accelerators simultaneously?