On 10/12/2020 00:10, Stanimir Varbanov wrote: > Hello, > > I have to implement HEIC image encoder (and later decoder) in Venus > driver and I wonder how to distinguish image vs video encoding using > HEVC and possibly AVC codecs. > > I could imagine those two options: > > * introduce a new compressed format V4L2_PIX_FMT_HEVC_IMAGE and reuse > video encoder as of now, or This option seems to be the correct one. It is also in line with how JPEG is used. I wonder if it should be called V4L2_PIX_FMT_HEIC instead, but it's not entirely clear to me from the wikipedia page what that makes sense or not. > > * make a separate video node which supports HEVC with profiles Main > Still Picture and Main 10 Still picture only. The problem here is that > AVC doesn't provide profiles for still pictures, and in this case the > driver cannot distinguish what the client wants video or image > encoding/decoding. That's too messy. A separate pixel format for still images works well. There is a huge difference between HEVC and HEIC since with HEIC each frame (like JPEG) is independently encoded/decoded, so the driver behaves differently. It makes perfect sense to use a separate pixel format for this. Regards, Hans > > It is a bit more complicated but I'd like to receive comments / ideas at > what would be the best way. >