On Monday, June 17, 2024 10:04:59 A.M. EDT Nicolas Dufresne wrote: > Hi, > > Le lundi 17 juin 2024 à 17:47 +0800, Jianfeng Liu a écrit : > > Hi Detlev, > > > > Thanks a lot for your work! I try to use rkvdec2 with chromium but it > > can't play h264 video. Here is the log of chromium: > > > > [5799:5873:0617/171224.850061:VERBOSE2:video_decoder_pipeline.cc(473)] > > Initialize(): config: codec: h264, profile: h264 high, level: not > > available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: > > [0,0,1920,1080], natural size: [1920,1080], has extra data: true, > > encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: > > {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED} > > [5799:5886:0617/171224.850915:VERBOSE2:v4l2_video_decoder.cc(182)] > > V4L2VideoDecoder(): > > [5799:5886:0617/171224.851218:VERBOSE1:v4l2_device.cc(128)] Open(): No > > devices supporting H264 for type: 0 > > [5799:5886:0617/171224.851346:VERBOSE4:v4l2_queue.cc(1069)] This queue > > does support requests.: No such file or directory (2) > This one indicates that V4L2_BUF_CAP_SUPPORTS_REQUESTS might be missing in > the REQBUFS implementation. I suspect GStreamer simply assumes this today > for driver exposing stateless formats (which is fair, its not a compliance > test, and we don't have a codec compliance yet). There is a src_vq->supports_requests = true; Do I also need to set a flag on the device caps ? > I'd suggest to check and fix this one, and retry, might only be noise, might > be the main cause, we cannot tell. > > > [5799:5886:0617/171224.851426:VERBOSE1:v4l2_video_decoder.cc(476)] > > InitializeBackend(): Using a stateless API for profile: h264 high and > > fourcc: S264 > > [5799:5886:0617/171224.851687:VERBOSE1:v4l2_video_decoder.cc(598)] > > SetupInputFormat(): Input (OUTPUT queue) Fourcc: S264 > > [5799:5886:0617/171224.851797:VERBOSE1:v4l2_video_decoder.cc(636)] > > AllocateInputBuffers(): Requesting: 17 OUTPUT buffers of type > > V4L2_MEMORY_MMAP > > [5799:5886:0617/171224.867687:VERBOSE1:v4l2_queue.cc(1511)] Streamon(): > > (OUTPUT_MPLANE) VIDIOC_STREAMON failed: Invalid argument (22) > > [5799:5886:0617/171224.867902:VERBOSE1:v4l2_video_decoder.cc(937)] > > StartStreamV4L2Queue(): Failed to streamon V4L2 queue. > > [5799:5886:0617/171224.868009:VERBOSE1:v4l2_video_decoder.cc(1377)] > > SetState(): Error occurred, stopping queues. > > [5799:5886:0617/171224.868105:ERROR:v4l2_video_decoder.cc(120)] > > StartStreamV4L2Queue failed at > > Decode@media/gpu/v4l2/v4l2_video_decoder.cc:915 > > [5799:5886:0617/171224.871898:WARNING:v4l2_video_decoder_backend_stateles > > s.cc(126)] There is/are 0 pending CAPTURE queue buffers pending dequeuing. > > This might be fine or a problem depending on the destruction semantics > > (of theclient code. > > > > Here is the chromium code failed when calling VIDIOC_STREAMON: > > https://github.com/chromium/chromium/blob/125.0.6422.60/media/gpu/v4l2/v4l > > 2_queue.cc#L1508 > > > > I'm running chromium v125.0.6422.60 and I can decode 1080p h264 with > > hantro g1 decoder on rk3588. > > Are you using minigbm ? Because if you do, we don't have minigbm code for > this driver (and have no plan to do so, since we don't aim for ChromeOS > support). > > Nicolas > > > Best regards, > > Jianfeng
Attachment:
signature.asc
Description: This is a digitally signed message part.