summaryrefslogtreecommitdiff
path: root/libavcodec/nvdec_mpeg4.c
Commit message (Collapse)AuthorAge
* avcodec/nvdec: Explicitly mark codecs that support 444 output formatsPhilip Langdale2019-02-16
| | | | | | | | | With the introduction of HEVC 444 support, we technically have two codecs that can handle 444 - HEVC and MJPEG. In the case of MJPEG, it can decode, but can only output one of the semi-planar formats. That means we need additional logic to decide whether to use a 444 output format or not.
* lavc: Mark all AVHWAccel structures as constMark Thompson2017-11-26
|
* avcodec: Implement mpeg4 nvdec hwaccelPhilip Langdale2017-11-20
This was predictably nightmarish, given how ridiculous mpeg4 is. I had to stare at the cuvid parser output for a long time to work out what each field was supposed to be, and even then, I still don't fully understand some of them. Particularly: vop_coded: If I'm reading the decoder correctly, this flag will always be 1 as the decoder will not pass the hwaccel any frame where it is not 1. divx_flags: There's obviously no documentation on what the possible flags are. I simply observed that this is '0' for a normal bitstream and '5' for packed b-frames. gmc_enabled: I had a number of guesses as to what this mapped to. I picked the condition I did based on when the cuvid parser was setting flag. Also note that as with the vdpau hwaccel, the decoder needs to consume the entire frame and not the slice.