• Home
  • History
  • Annotate
  • only in /hardware/qcom/media/msm8996/mm-video-v4l2/vidc/venc/
History log of /hardware/qcom/media/msm8996/mm-video-v4l2/vidc/venc/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
619065b31d5639006dae59fc884ed0b4780b03a9 01-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "mm-video-v4l2: venc: Initialize profile and level set flags" into oc-dev
c406bbb10f5323c5fc26c1dfd9596c82f1edf1ea 31-May-2017 Mahesh Lanka <mlanka@codeaurora.org> mm-video-v4l2: venc: Initialize profile and level set flags

profile and level set flags are not initialized, due to
this wrong profile and levels are set to the encoder.
This change will fix the same.

Bug: 62095651

Change-Id: Ic45018ed6ec9c9d0a848b9d92194b440ef257cb5
rc/video_encoder_device_v4l2.cpp
0e28b961b6f556ff41e7bc2379a14692723b7093 19-Apr-2017 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2:remove stale entries in m_opq_pmem_q

Remove entries in queue m_opq_pmem_q when video component
moved to loaded state to avoid stale entries usage issue
in execute state when video component moved in below states
Execute -> Idle -> Loaded -> Idle -> Execute.

Author: Maheshwar Ajja <majja@codeaurora.org>

Change-Id: Ieaf2eb33ef517d660d757252c633a89de7958761
CRs-Fixed: 2027721
rc/omx_video_base.cpp
4cde8d5ef09e0be475e9d3ae5ff6b8b81e631f76 30-Mar-2017 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2:Update output resolution

mm-video-v4l2: venc: Update output resolution correctly for rotation
Update resolution of output plane based on the rotatio angle to
reflect the correct w x h in output-port-def

Change-Id: I6bc5631442a0b3640db6f9b8480b110b72c75073
CRs-Fixed: 2026950
nc/video_encoder_device_v4l2.h
rc/omx_video_encoder.cpp
rc/video_encoder_device_v4l2.cpp
70929c9d4f5f9a789c39d272581c72d3fa6aefe5 29-Mar-2017 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2:add extension to support av-timer

mm-video-v4l2: venc: add extension to support av-timer timestamps
Use timestamps sent in-band with graphic handles (updated from
camera with av-timer source) for vt usecases.

Bug: 32746650
Change-Id: I2bfb7215ca4446fecf6b5450aa40e4e26350846b
CRs-Fixed: 2026950
nc/omx_video_base.h
nc/video_encoder_device_v4l2.h
rc/omx_video_encoder.cpp
rc/omx_video_extensions.hpp
rc/video_encoder_device_v4l2.cpp
b76bf315339327ed8c3ee873f0fe8494e8df9f42 24-Mar-2017 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2:Implement android vendor extensions

mm-video-v4l2: venc: Implement android vendor extensions
Add support for vendor extensions in encoder component and
implement extensions for setting rotation, i-period change,
resync-marker-spacing, and custom avc profile.

Bug: 32746650
Change-Id: I775194c704171ffb7515da8515dfda19801d6a19
CRs-Fixed: 2026950
nc/omx_video_base.h
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
rc/omx_video_extensions.hpp
6355bdb5418cdb174edb84b5d81366a7dcdc0728 22-Mar-2017 Jiyong Park <jiyong@google.com> Move QCOM mm codecs to vendor partition

Bug: 36500740
Test: camcorder recording, video play should work as before.
libOmxVdec.so and libOmxVenc.so should be loaded into the media codec
process.
Change-Id: Id6e349645adc0be3a4873afc1812679f0e710b0b
ndroid.mk
ae5de9cc93242735c14797c1e641176e47106792 03-Mar-2017 Vijay Venkatraman <vijaykv@google.com> For msm8996, replacing LOCAL_COPY_HEADERS with
LOCAL_EXPORT_C_INCLUDE_DIRS, for VNDK

Headers exported by libOmxCore are already being exported by
OmxCore_headers

Bug: 33241851
Test: build sailfish target and pass cts-camera tests
Change-Id: Ie120b32350e26cf5cae3c6ab7050fe5a20a9e634
ndroid.mk
f0496bf92c60d4d0b9bea4c07f4783e496c14f91 14-Oct-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: Disallow changing buffer count/size on allocated port am: b7b6466da4
am: faed315fc0

Change-Id: I658e13ca2ceba5ec23528b9e3b98ce125ec4c479
b7b6466da41081776b21ab4d4955a706d7f6b7ca 17-Aug-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: Disallow changing buffer count/size on allocated port

Count and size negotiation of port-buffers should only be allowed when
the port hasn't been allocated yet.
Letting the client change count/size on a pre-allocated port will
cause inconsistencies in the count/size of memory allocated for
headers and internal lists.
Fix resetting of buffer-base (m_inp_mem_ptr) when all buffers are
freed, for all the buffer-modes.

Bug: 29421682
Fixes: Local Privilege Escalation in MediaServer (libOmxVenc problem #10)

Change-Id: I9abead969bc3c908e6db9beb6316fd572dac25f7
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
939bc4145117bc6b87d6cef5c0219c63efff113b 29-Jul-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: vidc: Fix read/write colorspace from/to gralloc-handle

Encoder:
Read the colorspace from metadata in gralloc-handle and
set the appropriate colorspace to the driver.

Recommend color-aspects based on the colorspace of destination-YUV
that C2D/Venus convert in case input is RGBA8888

Leave the unspecified aspects with client's-defaults, rather
than setting them to enuemarated "unspecified" values.

Decoder:
Default the colorspace as indicated by client in case there is
no color info in bitstream. Since VP8 encoder does not support
encoding color-info yet, default everything to 601-LR for now.

Bug: 29550317
Change-Id: I603cd592647b3f9b81c4da714a72aae871ced25a
ndroid.mk
nc/omx_video_base.h
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
rc/video_encoder_device_v4l2.cpp
c8dc4a1e8fb2cc3509afecfbb64c2500174e0248 20-Jul-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: vidc: Color primaries fixes

- Update internal colorspace when color in VUI is different
notify the client with a reconfig event
- Update client's colorspace in getconfig if internal color
info has been updated.
- Remove metadata setting for ITU 601-625.
- Remove the VP8 spec mention.

Author: Praneeth Paladugu <ppaladug@codeaurora.org>

Bug: 29189938
Change-Id: I912cd197ef9f2905d94eacf91914150232862aa6
rc/omx_video_base.cpp
ebe3411770bc467e978eacd66ebc1495a16d4a56 08-Jul-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: vidc: Add support for color aspects

Add support for color aspects setting from clients and embed that
information in bit-stream. When client sets different color format
than in bit-stream, update them with correct one.

Author: Praneeth Paladugu <ppaladug@codeaurora.org>

Bug: 29189938
Bug: 29620306

Change-Id: I31bf3a81ef0690dc3565875d2fba4607abf46536
nc/omx_video_base.h
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
rc/video_encoder_device_v4l2.cpp
da491142bd05b7bbb5704579b04f1b968b47a9b6 08-Jul-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: vidc: Add support for color space

Convey the correct color space information to Venus
from Camera.

Also enable corresponding extradata to process the
color space info from bit stream and inform display
through metadata.

Bug: 29189938
Bug: 29620306

Author: Praneeth Paladugu <ppaladug@codeaurora.org>

Change-Id: Ibc4bca8c1cd5a42894971628686814876cf91f7b
nc/video_encoder_device_v4l2.h
rc/video_encoder_device_v4l2.cpp
5aac8995446f2b6b8124ef32f534cb9a8a8a2061 20-Jul-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: Disable B-frames for realtime high-res/fps

For power considerations, disable B frames for high-resolution
(> 1080p) and high-fps (>=60) when in real-time mode.

Bug: 28930897
Change-Id: I80c61572ce70125e0c8f342fb7697a5daa1584c3
rc/video_encoder_device_v4l2.cpp
88cb130018b5b78cca238a4e22ef4dc88295d8df 20-Jul-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: Fix interpretation of nBFrames on Android

Android specifies nBFrames as number of Bs between I OR P;
while the OMX spec says nBFrames = number of Bs between I.
Convert to spec version of nBFrames since the codec relies
on this convention.

Bug: 28930897
Change-Id: I196db4595703d93ec35f88e81b99756d4d3e4e09
nc/video_encoder_device_v4l2.h
rc/video_encoder_device_v4l2.cpp
0bdfcfa397fd6838472a648e5da7ef0cb4a7bcb9 15-Jul-2016 Wei Jia <wjia@google.com> Merge "mm-video-v4l2: venc: Configure intra preriod for HEVC" into nyc-mr1-dev
8a54976f56d2a2d7770f78e7bff7bdbbdf47744a 14-Jul-2016 Lajos Molnar <lajos@google.com> media: update to new OMX layering structs

Also add some extra validation.

Bug: 27596987
Change-Id: I310ff38a31550c9c439bfe0a7231c833029a28a6
nc/omx_video_base.h
nc/video_encoder_device_v4l2.h
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
rc/video_encoder_device_v4l2.cpp
0442f2ca1a72c6a6c6fea429fafff88cddbf50cc 20-Jun-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: Configure intra preriod for HEVC

HEVC's main config param now supports key-frame-interval.
Use this information to configure the intra-period. i.e
configure number of P-Frames (assuming no B-frames)

Bug: 29494247

CRs-Fixed: 1023504
Change-Id: I3d2f0df3a5ab3b7d659ae58ae6f4df5898006934
rc/video_encoder_device_v4l2.cpp
bb6e2c659c093ccb6266b679b07513cbeeb9fb24 25-Jun-2016 Steve Pfetsch <spfetsch@google.com> media: Update to AU 205 drop

Update to AU_LINUX_ANDROID_LA.HB.1.3.9.06.00.01.213.205

media_hal:
1df75f0 Merge "mm-video-v4l2: venc: Avoid processing ETBs/FTBs in invalid states"
dc623d6 mm-video-v4l2: vdec: Avoid processing ETBs/FTBs in invalid states,
d57cbc1 mm-video-v4l2: venc: Avoid processing ETBs/FTBs in invalid states
2b33b5a Merge "mm-video-v4l2: venc: add support for encoding temporal layers"
815b4be mm-video-v4l2: venc: add support for encoding temporal layers
d450628 mm-video-v4l2: vidc: venc: Fix issues with Hier P
a7ead0c mm-video-v4l2: vidc: Enumerate supported HEVC decoder profiles
9e096e8 mm-video-v4l2: vidc: HEVC Main10 profile support
a42a61d mm-video-v4l2: vdec: Add support for prefetching secure memory

Change-Id: I16f46e6d896e296cb2cf3eab6e6683c93f9daa8c
nc/omx_video_base.h
nc/omx_video_encoder.h
nc/video_encoder_device_v4l2.h
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
rc/video_encoder_device_v4l2.cpp
4d6b67cc3635ba357edbafb611c23b4d1ccd4812 01-Jul-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: Disable VZIP SEI if this feature is disabled

MPEG4Writer "assumes" that the encoded bitstream consists of only
1 VCL NAL. If the encoder generates a non-VCL NAL, the resultant
NALU in the track will appear erroneous to some players.
Disable VZIP NALs since this feature is no needed

Bug: 29515805
Change-Id: I17f437e22a752ef1dc90b923471382aa0c6b82f1
rc/video_encoder_device_v4l2.cpp
f89f2c65e17c4f6df0845ac099e9197af317283e 22-Jun-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "mm-video-v4l2: venc: add checks before accessing heap pointers" into nyc-dev
d99a08f99689df977dfc585a436ada5acf4f2a25 16-Jun-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: add checks before accessing heap pointers

Heap pointers do not point to user virtual addresses in case
of secure session.
Set them to NULL and add checks to avoid accesing them

Bug: 28815329
Bug: 28920116

Change-Id: I94fd5808e753b58654d65e175d3857ef46ffba26
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
rc/video_encoder_device_v4l2.cpp
3957953f027b784f2d55d96d388c8107371eb9db 26-May-2016 Wonsik Kim <wonsik@google.com> Fix wrong nAllocLen

Set nAllocLen to the size of the opaque handle itself.

Bug: 28816964
Bug: 28816827
Change-Id: Id410e324bee291d4a0018dddb97eda9bbcded099
rc/omx_video_base.cpp
14a9920aa26f6b237957001090b127c9d79ac12e 25-Apr-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: Avoid processing ETBs/FTBs in invalid states

(per the spec) ETB/FTB should not be handled in states other than
Executing, Paused and Idle. This avoids accessing invalid buffers.
Also add a lock to protect the private-buffers from being deleted
while accessing from another thread.

Bug: 27903498
Security Vulnerability - Heap Use-After-Free and Possible LPE in
MediaServer (libOmxVenc problem #3)

Change-Id: I898b42034c0add621d4f9d8e02ca0ed4403d4fd3
rc/omx_video_base.cpp
0db330f0ede890a2c99a73b5c5e53c41a2c87aa3 30-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "mm-video-v4l2: vidc: fix matching of extension strings" into nyc-dev
f1b15e15b61a610b6d0a78797e9a5a3f2cfdd56c 30-Mar-2016 Arun Menon <avmenon@codeaurora.org> mm-video-v4l2: vidc: Add support for OMX_IndexConfigAndroidIntraRefresh

OMX Component will support OMX_IndexConfigAndroidIntraRefresh only
in loaded state.

Bug: 27108817
Change-Id: I213fed57842b94c333843871d6c555e1fb8784e5
nc/omx_video_base.h
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
rc/video_encoder_device_v4l2.cpp
c9770704a9bb7c26205cf0e5bca05d4397aab1c3 17-Mar-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: vidc: fix matching of extension strings

Using strncmp with the strlen of source string can result in
false positives when it is a substring of the passed string.
Eg: strncmp("OMX.extn.x", "OMX.extn.xyz", strlen(OMX.extn.x))
will result in a match.
Use strcmp instead.

Bug: 27344524

Change-Id: I68839f2bea8b97a31f43885538e9dce51aa8c1b4
rc/omx_video_base.cpp
417bd6d3d293ef616a5a33741cfd6ac8c50f685f 21-Mar-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: venc: add safety checks for freeing buffers

Allow only up to 64 buffers on input/output port (since the
allocation bitmap is only 64-wide).
Add safety checks to free only as many buffers were allocated.

Fixes: Heap Overflow and Possible Local Privilege Escalation in
MediaServer (libOmxVenc problem)
Bug: 27532497

Change-Id: I31e576ef9dc542df73aa6b0ea113d72724b50fc6
nc/omx_video_base.h
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
16ee85d1d456a4b694fd32baa5f52341e638b5d8 30-Mar-2016 Praveen Chavan <pchavan@codeaurora.org> mm-video-v4l2: vidc: validate omx param/config data

Check the sanity of config/param strcuture objects
passed to get/set _ config()/parameter() methods.

Bug: 27533317
Security Vulnerability in MediaServer
omx_vdec::get_config() Can lead to arbitrary write

Change-Id: I6c3243afe12055ab94f1a1ecf758c10e88231809
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
ce256dab580d6601e34cf59642f642bd496952ae 08-Mar-2016 Patrick Tjin <pattjin@google.com> msm8996: Fix clang build errors

Bug: 27420204
Change-Id: I1d0ec866cf244b734897fd39b07551a556c7a0a7
Signed-off-by: Patrick Tjin <pattjin@google.com>
rc/omx_video_base.cpp
rc/video_encoder_device_v4l2.cpp
d22cb6fd16003c186ad04044e64a3e894b30c180 07-Mar-2016 Patrick Tjin <pattjin@google.com> msm8996: re-enable CLANG

Change-Id: Iae4cc88d2c6e7ede5602b2d96efc58bce21eb30f
ndroid.mk
e4010605f233a213cf0d972397bb33c34c364227 07-Mar-2016 Patrick Tjin <pattjin@google.com> Initial import of msm8996 media HAL

1) Move existing HAL to msm8974/
2) Import msm8996 HAL from LA.HB.1.1.2_rb1.12
3) Modify Makefiles to remove kernel dependencies and
fix for new directory structure
4) Modify top level makefile for new directory structure

Top commits from LA.HB.1.1.2_rb1.12 included in this commit:
db7937a mm-video: vidc: memset struct v4l2_format prior to S_FMT
d77ab10 Merge "mm-video-v4l2: vidc: Do not queue output buffer if flush is in progress"
8895985 mm-video-v4l2: vidc: vdec: Add property to disable UBWC for OPB
675af75 Merge "mm-video: vidc: Communicate the right colorformat to the driver"
dd79df2 Merge "mm-video: vidc: Reliably stop the message thread"
c3e8618 Merge "mm-video-v4l2: vidc: venc: Fix B-Frame handling"
755ec08 mm-video-v4l2: vidc: Do not queue output buffer if flush is in progress
3ac8410 mm-video: vidc: Reliably stop the message thread
b73dcba Merge "mm-video-v4l2: vidc: venc: Bug fixes for VZIP"
8358109 Merge "mm-video-v4l2: vdec: fix picture type decode mode return status"

BUG=27420204

Signed-off-by: Patrick Tjin <pattjin@google.com>

Change-Id: I71aa0190e48b332268334677894b0ad7c606296b
ndroid.mk
nc/camera_test.h
nc/fb_test.h
nc/omx_swvenc_hevc.h
nc/omx_swvenc_mpeg4.h
nc/omx_video_base.h
nc/omx_video_common.h
nc/omx_video_encoder.h
nc/queue.h
nc/venc_util.h
nc/video_encoder_device.h
nc/video_encoder_device_v4l2.h
nc/video_encoder_test.h
rc/omx_swvenc_hevc.cpp
rc/omx_swvenc_mpeg4.cpp
rc/omx_video_base.cpp
rc/omx_video_encoder.cpp
rc/video_encoder_device.cpp
rc/video_encoder_device_v4l2.cpp