Skip to content
Snippets Groups Projects
  1. Mar 29, 2021
    • Chih-Yu Huang's avatar
      V4L2ComponentStore: Avoid dynamic loading shared library · 50e77c4f
      Chih-Yu Huang authored
      Originally V4L2ComponentStore and V4L2ComponentFactory depends on each
      other. To avoid circular dependency, V4L2ComponentStore dynamically
      loads the shared library of V4L2ComponentFactory.
      
      This CL removes the dependency from V4L2ComponentFactory to
      V4L2ComponentStore, and also avoid dynamic loading the shared library.
      
      Bug: 160110846
      Test: android.media.cts.AdaptivePlaybackTest
      
      Change-Id: I864b642035ea5b1572ee1d474ad12706147cbed1
      50e77c4f
  2. Jan 12, 2021
    • Chih-Yu Huang's avatar
      V4L2DecodeComponent: limit the maximum concurrent instances · 9b9e79c1
      Chih-Yu Huang authored
      This CL introduces a new property
      "debug.v4l2_codec2.decode.concurrent-instances" used to limit the
      maximum concurrent instances of V4L2DecodeComponent.
      
      Bug: 174530542
      Test: android.media.cts.MediaCodecCapabilitiesTest#testGetMaxSupportedInstances
      
      Change-Id: I92d6c0637fad3fb96333a2e457a4894218045678
      9b9e79c1
    • David Stevens's avatar
      components: Set InputBufferManager interval · 79dd1273
      David Stevens authored
      InputBufferManager notifies the codec2 framework when the component no
      longer has any references to an input buffer. While a dedicated release
      notification is necessary in some circumstances, the release can usually
      be done when the corresponding work item is completed, to reduce the
      amount of IPC. This change sets the notification interval used by
      InputBufferManager to reduce how often a dedicated release notification
      is sent.
      
      Bug: 172184040
      Test: tast run DUT arc.VideoDecodeAccel.vp8_vm
      
      Change-Id: Id6371d328bb00730b50d3b3075eccf4010554f27
      79dd1273
  3. Dec 17, 2020
    • Cindy Zhou's avatar
      Cfi function attribute for component factory · ba9e9414
      Cindy Zhou authored
      Declare cfi_canonical_jump_table for codec factory functions to avoid
      cfi crashes.
      
      Bug: 158010610
      Bug: 173497308
      Test: ran atest DecoderConformanceTest, ImageReaderDecoderTest,
      VideoDecoderPerfTest, VideoEncoderTest.  Compare the
      before and after enabling CFI results since there was a number of tests
      that were initially failing.
      
      Change-Id: Iced1b81656534de315779f5c9c6788c5c9c1a068
      ba9e9414
  4. Jul 22, 2020
    • David Staessens's avatar
      v4l2_codec2: Implement Codec2 V4L2 encode component. · 30cf47e3
      David Staessens authored
      This CL introduces the first version of the new codec2 V4L2 encoder.
      The V4L2EncodeComponent currently only supports H264, support for
      additional formats will introduced later.
      
      The encode component is developed and tested on ARC++ and the initial
      version is not functional yet on ARCVM. The changes required to fully
      enable the encoder on ARCVM (such as support for DMABufs) will be
      introduced in follow-up CLs.
      
      Currently the component makes heavy use of Chromium helpers as it's
      based on the Chromium V4L2VideoEncodeAccelerator, but in the future
      the amount of dependencies will be reduced.
      
      The new V4L2 encoder is currently not enabled by default, which requires
      additional changes in media_codecs_c2.xml.
      
      Bug: 143333813
      Test: mmm external/v4l2_codec2
      Change-Id: I59ba52e8f85aa40c8d23a451fb2842a7a421412a
      30cf47e3
  5. Jun 02, 2020
    • Chih-Yu Huang's avatar
      components: Implement Codec2.0 V4L2 decode component · 6a7255ad
      Chih-Yu Huang authored
      This CL implements V4L2DecodeComponent, a decode C2Component via V4L2
      API. It mainly contains these parts:
      
      - VideoDecoder:
        An interface for video decoding, similar to media::VideoDecoder at
      Chromium project.
      - V4L2Decoder:
        An implementation of VideoDecoder via V4L2 stateful API. We wrap all
        V4L2-related logic in this class
      
      - VideoFrame
        The data structure to represent the output buffer of VideoDecoder.
        It encapsulates a C2GraphicBlock and only exposes the essential
        information of physical buffers.
      - VideoFramePool:
        The buffer pool used by VideoDecoder. It encapsulates C2BlockPool
        and provides asynchronous method to fetch buffers.
      
      - V4L2DecodeComponent, V4L2DecodeInterface:
        The C2Component implementation that delegates the decode request to
        V4L2Decoder.
      - V4L2ComponentFactory:
        The C2ComponentFactory that creates V4L2DecodeComponent.
      
      Bug: 152714603
      Test: mmm external/v4l2_codec2/
      Test: Run e2e test and make sure the V4L2DecodeComponent is running
      
      Change-Id: I23e9b3553b62dd6c83d943d7787297305372c37d
      6a7255ad
Loading