- Jun 02, 2020
-
-
Nicolas Dufresne authored
This is to handle the case there was no more buffer to dequeue, otherwise flushing state will stick and we will not be able to to queue buffer afterward. Signed-off-by:
Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
- May 22, 2020
-
-
Ezequiel Garcia authored
Signed-off-by:
Ezequiel Garcia <ezequiel@collabora.com>
-
Ezequiel Garcia authored
Signed-off-by:
Ezequiel Garcia <ezequiel@collabora.com>
-
Ezequiel Garcia authored
Signed-off-by:
Ezequiel Garcia <ezequiel@collabora.com>
-
Ezequiel Garcia authored
Signed-off-by:
Ezequiel Garcia <ezequiel@collabora.com>
-
- May 21, 2020
-
-
Ezequiel Garcia authored
There's an offset that applies to CAPTURE queue, and apparently is obtained via QUERYBUF. Instead of doing the QUERYBUF dance, just apply the offset. Signed-off-by:
Ezequiel Garcia <ezequiel@collabora.com>
-
Ezequiel Garcia authored
Signed-off-by:
Ezequiel Garcia <ezequiel@collabora.com>
-
Ezequiel Garcia authored
Signed-off-by:
Ezequiel Garcia <ezequiel@collabora.com>
-
Ezequiel Garcia authored
Signed-off-by:
Ezequiel Garcia <ezequiel@collabora.com>
-
- Dec 26, 2019
-
-
Hirokazu Honda authored
An app can specify the h264 stream of the encoded stream by calling VIDIOC_S_EXT_CTRL with V4L2_CID_MPEG_VIDEO_H264_LEVEL. However, libv4lplugins ignores the specified level the h264 level is always 4.0. The plugin must change the level to the level set by app. BUG=chromium:1036219, chromium:1036220, b:146854692 TEST=webrtc.RTCPeerConnectionAccelUsed.enc_h264 on kevin TEST=android.media.cts.MediaRecorderTest#testProfileAvcBaselineLevel1 Change-Id: I6c010af8862624e37418b86458a7f9df8aa2c868 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/libv4lplugins/+/1980599 Commit-Queue: Hirokazu Honda <hiroh@chromium.org> Tested-by:
Hirokazu Honda <hiroh@chromium.org> Reviewed-by:
Alexandre Courbot <acourbot@chromium.org> Reviewed-by:
Chih-Yu Huang <akahuang@chromium.org>
-
- Dec 23, 2019
-
-
Hirokazu Honda authored
H264 encoder in libv4lplugins hard-coded values in SPS and PPS specifically for Main profile. Although the hardware on rockchip is capable of encoding Baseline, Main and High profile, RK3399 cannot encode Baseline profile stream due to the plugin code. This removes some hard-coded values and instead respect the profile by S_EXT_CTRL with id=V4L2_CID_MPEG_VIDEO_H264_PROFILE. BUG=chromium:1036219, chromium:1036220 TEST=webrtc.RTCPeerConnectionAccelUsed.enc_h264 on kevin Change-Id: Ifbdb02fbd82bc9c530c10bff38b8f8933d31376d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/libv4lplugins/+/1977992 Reviewed-by:
Alexandre Courbot <acourbot@chromium.org> Tested-by:
Hirokazu Honda <hiroh@chromium.org> Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
-
- Dec 17, 2019
-
-
Hirokazu Honda authored
This fixes the typo in crrev.com/c/1958319. BUG=b:145095115, b:146306214, chromium:1029396 TEST=VEA test on kevin Change-Id: I648bb98bc73563a8fb9221456115a7452921f2fa Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/libv4lplugins/+/1969180 Reviewed-by:
Alexandre Courbot <acourbot@chromium.org> Tested-by:
Alexandre Courbot <acourbot@chromium.org> Commit-Queue: Alexandre Courbot <acourbot@chromium.org> Auto-Submit: Hirokazu Honda <hiroh@chromium.org>
-
- Dec 12, 2019
-
-
Hirokazu Honda authored
RK3399 supports H264 Base, Main and High profiles. However, libv4lplugins support Main profile only. So, in the plugin layer, it needs to interrupt the IOCTL and report H264 Main profile only is supported. BUG=b:145095115 TEST=android.media.cts.MediaRecorderTest#testProfileAvcBaselineLevel1 Change-Id: I6b050c99474a97c535b38ba6896c147728a3be25 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/libv4lplugins/+/1958319 Tested-by:
Hirokazu Honda <hiroh@chromium.org> Auto-Submit: Hirokazu Honda <hiroh@chromium.org> Reviewed-by:
Chih-Yu Huang <akahuang@chromium.org> Reviewed-by:
Alexandre Courbot <acourbot@chromium.org> Commit-Queue: Chih-Yu Huang <akahuang@chromium.org> Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
-
Alexandre Courbot authored
BUG=none TEST=none Change-Id: I1b31d572cf6bc9aa569eabc14249f61811d3e9d3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/libv4lplugins/+/1962106 Reviewed-by:
Chih-Yu Huang <akahuang@chromium.org> Commit-Queue: Chih-Yu Huang <akahuang@chromium.org> Tested-by:
Chih-Yu Huang <akahuang@chromium.org>
-
- Aug 20, 2019
-
-
Francois Buergisser authored
Rockchip driver has been renamed to Hantro from kernel v4.19. This patch adds Hantro driver check in order for the plugin to also support Hantro. BUG=chromium:965378 TEST=Checked encoder plugin is used on Hantro and v4.19 using VP8 encoder unittest Change-Id: I5a45717c073f09959cd27ff2ca5debdcff83d8d4 Signed-off-by:
Francois Buergisser <fbuergisser@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1732619 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org> Reviewed-by:
Tomasz Figa <tfiga@chromium.org>
-
- Aug 19, 2019
-
-
Tomasz Figa authored
Remove the obsolete owners from the OWNERS file and add tfiga@ and akahuang@ as the current owners of the project. Motivation: None of the existing owners work on this part of the project anymore, while tfiga@ and akahuang@ have the most recent commits there. Exempt-From-Owner-Approval, as we are having problems getting the approvals for the same reason above. BUG=none TEST=none Change-Id: Ib047654371e6eba504cc7fc4d138d3f772d6127a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/libv4lplugins/+/1757972 Tested-by:
Tomasz Figa <tfiga@chromium.org> Reviewed-by:
Heng-ruey Hsu <henryhsu@google.com>
-
- May 28, 2019
-
-
Francois BUERGISSER authored
The plugin always encodes one buffer at a time, synchronously, so it can just explicitly set the controls every time before encoding. It lets us remove the usage of the downstream Config Store API. BUG=chromium:965379 TEST=video_VideoEncodeAccelerator.vp8 unittests on device. Change-Id: I2788a42748104f1912fbb915a9b145b217ef1b8d Signed-off-by:
Francois Buergisser <fbuergisser@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1631030 Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org> Reviewed-by:
Tomasz Figa <tfiga@chromium.org>
-
- May 18, 2018
-
-
Chih-Yu Huang authored
When setting the format of OUTPUT queue, the rockchip driver may increase the height 16 to align the buffer. For example, when setting QCIF(176x144) size, the driver will adjust to 176x160. However, the driver doesn't accept the cropped size with larger than 16 (1 MB). That means, we cannot use crop to set the correct resolution. This CL stores the cropped size at the plugin, and uses it as the resolution of the encoded video. Regardless there are some restriction about the cropped size at the driver, the plugin allow any cropped size. BUG=b:79551489 TEST=pass VEA unittest with QCIF video. TEST=pass testEncodeDecodeVideoFromBufferToBufferQCIF CTS Change-Id: Iabfb80aa7c5bff357e91661bd3ede581b5aef83a Reviewed-on: https://chromium-review.googlesource.com/1061035 Commit-Ready: Chih-Yu Huang <akahuang@chromium.org> Tested-by:
Chih-Yu Huang <akahuang@chromium.org> Reviewed-by:
Tomasz Figa <tfiga@chromium.org>
-
- Mar 07, 2018
-
-
Chih-Yu Huang authored
According to H.264 spec, when frame_mbs_only_flag is set to 1, frame_crop_bottom_offset should be (pic_height_in_map_units * 16 - height) / 2. Take 1920x1080 video for example, the value is: - height = 1080 - pic_height_in_map_units = ((1080 + 15) >> 4) = 68 - frame_crop_bottom_offset = (68 * 16 - 1080) / 2 = 4 This CL fixed the value by adding the missing "divided by 2". BUG=b:74214155 TEST=Run VideoEncoderDecoderTest#testAvcOther0Qual1920x1080 at device Change-Id: I7c70564553c9e9d62b11100e214a02bba7cbb740 Reviewed-on: https://chromium-review.googlesource.com/952584 Commit-Ready: Chih-Yu Huang <akahuang@chromium.org> Tested-by:
Chih-Yu Huang <akahuang@chromium.org> Reviewed-by:
Tomasz Figa <tfiga@chromium.org>
-
Chih-Yu Huang authored
This CL implements flush with encoder_cmd ioctl. If there are pending buffers when client want to flush, it mark the last buffer as EOS. After the EOS buffer is enqueued to the driver, then the plugin sends the CMD_STOP. Note that during flushing, the plugin does not enqueue any buffer to the driver. Therefore, we skip checking can_qbuf in this period. Also, we do not update the encoder config for the empty buffer, because it means flush is finished or encode error. BUG=b:71882314 TEST=Run CtsVideoTestCases at device Change-Id: If52fdb9f5e561d34712663825f7c7f4a2b80091f Reviewed-on: https://chromium-review.googlesource.com/940722 Commit-Ready: Chih-Yu Huang <akahuang@chromium.org> Tested-by:
Chih-Yu Huang <akahuang@chromium.org> Reviewed-by:
Tomasz Figa <tfiga@chromium.org>
-
- Jul 20, 2017
-
-
Hirokazu Honda authored
Do not print out SYS_ioctl error message, when cmd is VIDIOC_ENUM_FMT and it returns EINVAL. It would be at the end of enumeration loop. It is not a real error then. BUG=chromium:742688 TEST=VEA unittest on kevin Change-Id: I78802f0351fe145107e89b7b296e6b75eae2f350 Reviewed-on: https://chromium-review.googlesource.com/578529 Commit-Ready: Hirokazu Honda <hiroh@chromium.org> Tested-by:
Hirokazu Honda <hiroh@chromium.org> Reviewed-by:
Pawel Osciak <posciak@chromium.org>
-
- Sep 07, 2016
-
-
Pawel Osciak authored
Do not print a debug message with driver name on successful init. BUG=None TEST=veatest Change-Id: Icd363472338bc48455a22366fa043d962d09e2ed Reviewed-on: https://chromium-review.googlesource.com/381088 Commit-Ready: Pawel Osciak <posciak@chromium.org> Tested-by:
Pawel Osciak <posciak@chromium.org> Reviewed-by:
Kuang-che Wu <kcwu@chromium.org>
-
Jeffy Chen authored
Change-Id: Ie2068260dfc0036065cd1a0b29a6eef430029205 Signed-off-by:
Jeffy Chen <jeffy.chen@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/365489 Commit-Ready: Pawel Osciak <posciak@chromium.org> Tested-by:
Pawel Osciak <posciak@chromium.org> Reviewed-by:
Kuang-che Wu <kcwu@chromium.org>
-
- Sep 05, 2016
-
-
Alpha Lin authored
Add bit-rate control module for both h264 and vp8 encoder. Change-Id: Ie6bed0382579cacefc35042b4098d066b2097c4c Signed-off-by:
Alpha Lin <alpha.lin@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/375846 Commit-Ready: Kuang-che Wu <kcwu@chromium.org> Tested-by:
Kuang-che Wu <kcwu@chromium.org> Reviewed-by:
Kuang-che Wu <kcwu@chromium.org>
-
Owen Lin authored
New plugin to support h.264 and vp8 encoder on Rockchip soc. The rk3288 vp8 encoder driver need some revision before using this plugin. Change-Id: Ie934e507b44dfdae2179591bf8d1b10b951e2b3a Signed-off-by:
Alpha Lin <alpha.lin@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/361664 Commit-Ready: Kuang-che Wu <kcwu@chromium.org> Tested-by:
Kuang-che Wu <kcwu@chromium.org> Reviewed-by:
Kuang-che Wu <kcwu@chromium.org>
-
- Aug 22, 2016
-
-
Owen Lin authored
BUG=chrome-os-partner:55135 TEST=Build on kevin and veyron_minnie Change-Id: I3648ecac1be86eac382d6693be8891074335b07c Reviewed-on: https://chromium-review.googlesource.com/368553 Commit-Ready: Owen Lin <owenlin@chromium.org> Tested-by:
Owen Lin <owenlin@chromium.org> Reviewed-by:
Pawel Osciak <posciak@chromium.org>
-
- May 25, 2016
-
-
Heng-Ruey Hsu authored
Also removed V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE. Since we are using the header files from system instead of package, changing v4l2_buffer structure member name. BUG=chrome-os-partner:53551 TEST=run vea test and pass force key frame test case. CQ-DEPEND=CL:346400,CL:346390 Change-Id: I369d03293bd6e4b5cdb7f1ed66b8fe001fc77084 Reviewed-on: https://chromium-review.googlesource.com/346361 Commit-Ready: Heng-ruey Hsu <henryhsu@chromium.org> Tested-by:
Heng-ruey Hsu <henryhsu@chromium.org> Reviewed-by:
Pawel Osciak <posciak@chromium.org> Reviewed-by:
Wu-cheng Li <wuchengli@chromium.org>
-
- Aug 04, 2015
-
-
Tomasz Figa authored
This reverts commit 819d3d20. We have implemented proper workaround in kernel driver, so the old one in the plugin is not needed anymore. BUG=chrome-os-partner:41585 TEST=Play video on vimeo and cast on extreme setting Change-Id: I76179a0afe285aff217518345d3567d806a4f641 Reviewed-on: https://chromium-review.googlesource.com/289438 Tested-by:
Tomasz Figa <tfiga@chromium.org> Reviewed-by:
Pawel Osciak <posciak@chromium.org> Trybot-Ready: Pawel Osciak <posciak@chromium.org> Commit-Queue: Tomasz Figa <tfiga@chromium.org>
-
- Jun 19, 2015
-
-
Jeffy Chen authored
Seems frame hdr buf doesn't need to be 8 bytes aligned, so remove the align. BUG=None TEST=screen share through Hangouts Change-Id: Ie765026274e4fcf6bd41d50ab654d71190e48dbf Signed-off-by:
Jeffy Chen <jeffy.chen@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/280314 Reviewed-by:
Tomasz Figa <tfiga@chromium.org>
-
- Jun 18, 2015
-
-
Jeffy Chen authored
frmHdrBufLen & frmhdr might be overwritten sometimes, which may cause "Bad address" error when set ext ctrls. BUG=chromium:497324 TEST=screen share through Hangouts, no more "Bad address" Change-Id: I95d355139ca78bcb9e28a7ad018f80a71c14de34 Signed-off-by:
Jeffy Chen <jeffy.chen@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/277732 Reviewed-by:
Justin Chuang <jchuang@chromium.org> Reviewed-by:
Tomasz Figa <tfiga@chromium.org>
-
Jeffy Chen authored
Currently, FRAME_HEADER_SIZE is 256, but i've saw the hdr be larger then 256 when doing screen share. so we should increase it. Confirm with herman, the max would be 1188 + 2*19. This needs change the define in kernel driver too. (change id: I06e7712420404c43661774e176a7b9333ddc3def) BUG=chromium:497324 TEST=screen share through Hangouts Change-Id: Ia6c2271b727218692c4e0b1603d243f32d2f1d77 Signed-off-by:
Jeffy Chen <jeffy.chen@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/277733 Reviewed-by:
Tomasz Figa <tfiga@chromium.org> Trybot-Ready: Douglas Anderson <dianders@chromium.org>
-
- May 12, 2015
-
-
Tomasz Figa authored
When running decoding in parallel with encoding (i.e. one frame of decoding, one frame of encoding, etc.), due to hardware issue, encoder block does not properly reinitialize some internal SRAM, which is shared with decoder block and resulting encoded frame might be corrupted. According to Rockchip engineers, to work around the issue, a large enough block of macroblocks need to be encoded as intra block in every frame to make that area of SRAM be reinitialized by other part of encoder block. This patch makes the plugin always force first 3x3 block of macroblocks to be encoded as intra blocks to prevent encoding corruption. BUG=chrome-os-partner:36844 TEST=AppRTC loopback in current tab with Lorax trailer playing in another Change-Id: I43b7c7d3ec037842ba8dd8e57c9e76b43e46926a Reviewed-on: https://chromium-review.googlesource.com/270301 Tested-by:
Tomasz Figa <tfiga@chromium.org> Reviewed-by:
Pawel Osciak <posciak@chromium.org> Commit-Queue: Tomasz Figa <tfiga@chromium.org>
-
- Mar 27, 2015
-
-
Wu-Cheng Li authored
WebRTC sends resolution like 240x135 when the network is bad. The hardware can accept odd height, so remove the alignment check. BUG=chrome-os-partner:38368 TEST=Run VEA test with 240x135 video. Run apprtc loopback. http://apprtc.appspot.com/?debug=loopback&video=minWidth=240, maxWidth=240,minHeight=135,maxHeight=135 Change-Id: I771961f8c405ce919d17fdd111bbcd632e51e6bc Reviewed-on: https://chromium-review.googlesource.com/262543 Reviewed-by:
Pawel Osciak <posciak@chromium.org> Tested-by:
Wu-cheng Li <wuchengli@chromium.org> Commit-Queue: Wu-cheng Li <wuchengli@chromium.org> Trybot-Ready: Wu-cheng Li <wuchengli@chromium.org>
-
- Feb 28, 2015
-
-
Tomasz Figa authored
Current code always resets rate control algorithm whenever rk_vp8_encoder_setconfig() is called. However the function can be also used to request a keyframe. In addition, it might be possible to call this function with the same parameters as already set, which would cause rate control to be reset unnecessarily. To fix the problem, this patch modifies the code to perform the reset only if bit rate or frame rate actually changed. To achieve this the internal API is slightly modified to avoid accessing private parameters (outRateDenom, outRateNum and encStatus of internal vp8Instance_s struct) from external code (e.g. rk_vpu8_encoder_setconfig()) and explicitly convey the dependence of VP8EncSetRateCtrl() on these private parameters, which are now explicitly given to this function. BUG=chrome-os-partner:37204 TEST=video_encode_accelerator_unittest (after 4fc28962e2da8b3f278b952c55fefe10487db952);apprtc Change-Id: Iff4787f6ac55a0324e63b80d272dfd04aadd084c Reviewed-on: https://chromium-review.googlesource.com/253252 Reviewed-by:
Wu-cheng Li <wuchengli@chromium.org> Commit-Queue: Tomasz Figa <tfiga@chromium.org> Tested-by:
Tomasz Figa <tfiga@chromium.org>
-
Tomasz Figa authored
rk_vepu_update_parameter() expects all parameters that do not change to be zero, so after we apply them in qbuf_if_pending_buffer_exists_locked(), we need to memset the struct to zero, just as ioctl_s_ext_ctrls_locked() already does if setting is not deferred by pending buffer. Otherwise, a keyframe might be requested by the way of other parameter change request. BUG=chrome-os-partner:37203 TEST=video_encode_accelerator_unittest (after 4fc28962e2d);apprtc Change-Id: I1f3a6551b2c5faedbb789506c4b84e021ef68792 Reviewed-on: https://chromium-review.googlesource.com/253251 Reviewed-by:
Wu-cheng Li <wuchengli@chromium.org> Commit-Queue: Tomasz Figa <tfiga@chromium.org> Tested-by:
Tomasz Figa <tfiga@chromium.org>
-
Tomasz Figa authored
Currently, when rk_vepu_update_param() is called with keyframe request the codingType field in EncoderParameters structure is set to intra frame. However, every frame, frame counter is evaluated and this field is overwritten with frame type determined automatically, which results in ignoring keyframe requests. To fix this, store keyframe request flag in a separate field and then use it as additional factor for code determining frame type for next frame. BUG=chrome-os-partner:37203 TEST=video_encode_accelerator_unittest (after 4fc28962e2da8b3f278b952c55fefe10487db952); apprtc Change-Id: I8acd8c5bfa6aded4b2139082b26b773828fc0dc8 Reviewed-on: https://chromium-review.googlesource.com/251970 Reviewed-by:
Wu-cheng Li <wuchengli@chromium.org> Commit-Queue: Tomasz Figa <tfiga@chromium.org> Tested-by:
Tomasz Figa <tfiga@chromium.org>
-
- Jan 13, 2015
-
-
henryhsu authored
Plugin has to be dynamically opened in chromium sandbox. The name needs to be hard-coded in sandbox and libv4l. To avoid changing both places for every new platform, using the same name for encoder plugin would be better. BUG=chromium:405861 TEST=test on pinky and make sure plugin is called successfully. Change-Id: Ib76afdf8384db6a0f3cdd8734cdcc81b6be14e90 Reviewed-on: https://chromium-review.googlesource.com/240128 Reviewed-by:
Wu-cheng Li <wuchengli@chromium.org> Commit-Queue: Heng-ruey Hsu <henryhsu@chromium.org> Tested-by:
Heng-ruey Hsu <henryhsu@chromium.org>
-
- Jan 09, 2015
-
-
Alpha Lin authored
Convert the v4l2 pixel format to VPU HW pixel format. Add rate control and keyframe setting interface. BUG=chrome-os-partner:33728 TEST=video_encode_accelerator_unittest Change-Id: Ic4344a95a70c22178eff2a20420b57a41ccc84a6 Signed-off-by:
Alpha Lin <Alpha.Lin@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/230081 Reviewed-by:
Wu-cheng Li <wuchengli@chromium.org> Commit-Queue: Wu-cheng Li <wuchengli@chromium.org> Tested-by:
Wu-cheng Li <wuchengli@chromium.org>
-
- Dec 19, 2014
-
-
Wu-Cheng Li authored
BUG=chrome-os-partner:33728 TEST=run VEA unittest on pinky Change-Id: Ia91ba4a6baf3b7179982fdacd56584a4efd07ad2 Reviewed-on: https://chromium-review.googlesource.com/236535 Reviewed-by:
Pawel Osciak <posciak@chromium.org> Commit-Queue: Wu-Cheng Li <wuchengli@chromium.org> Tested-by:
Wu-Cheng Li <wuchengli@chromium.org>
-
- Dec 15, 2014
-
-
Jeffy Chen authored
BUG=chrome-os-partner:33728 TEST=' build plugin lib put it under /usr/local/lib/libv4l/plugins/ update kernel to https://chromium-review.googlesource.com/#/c/232587/5 run "./video_encode_accelerator_unittest --test_stream_data=./bear_320x192_40frames.yuv:320:192:11:/tmp/out.vp8:200000" check /tmp/out.vp8 ' Change-Id: I5343e6832d8b96bc773cfe74475c98a4dc993cfa Reviewed-on: https://chromium-review.googlesource.com/235602 Reviewed-by:
Pawel Osciak <posciak@chromium.org> Commit-Queue: Jeffy Chen <jeffy.chen@rock-chips.com> Tested-by:
Jeffy Chen <jeffy.chen@rock-chips.com>
-