1. 08 Feb, 2023 32 commits
  2. 02 Feb, 2023 6 commits
    • Fix end of stream handling for previewing. · 976e3c72
      Before this CL, the `renderedLastFrame` flag is not set if the last frame is released immediately (force render), or when it's dropped.
      
      PiperOrigin-RevId: 506358626
      claincly committed
    • Report flushing completed after all pending frames are decoded. · 77cc2524
      With the current ExtTexMgr,
      
      it can happen that
      
      - `x` frames are registered, but haven't arrived yet
      - flush
        - need to drop `x` frames when they arrive on SurfaceTexture
        - status is reset to 0 pending, 0 available, drop `x` when frames arrive
      - register one frame
        - status is set to 1 pending, 0 available, drop `x` when frames arrive
      - flush
        - now the number of frame to drop is reset to `pending - available = 1`
        - but it should be `x+1`
      
      This CL solves the issue by reporting (by running the afterFlushTask) flush completes only after all the pending frames before calling flush are accounted for.
      
      PiperOrigin-RevId: 506310671
      claincly committed
    • Clarify case where HDR encoder and muxer have no shared mime type. · 83bc474f
      The prior version (with the call to createEncodingException) could
      never occur as select...SupportedMimeType already checks for HDR
      editing support. This change ensures we throw before creating an
      encoder, gives a better error code and allows future simplifications
      around createForCodec (see child CL).
      
      PiperOrigin-RevId: 506308290
      samrobinson committed
    • Pass a Composition to Transformer callbacks · b8ec982e
      PiperOrigin-RevId: 506304101
      kimvde committed
    • Support flushing in FrameProcessor · b2ab4393
      Flushing resets all the texture processors within the `FrameProcessor`. This
      includes:
      
      - At the back, the FinalMatrixTextureProcessorWrapper, and its MatrixTextureProcessor
      - At the front, the ExternalTextureManager
      - All the texture processors in between
      - All the ChainingGlTextureProcessorListeners in between texture processors
      - All the internal states in the aforementioned components
      
      The flush process follows the order, from `GlEffectsFrameProcessor.flush()`
      
      1. Flush the `FrameProcessingTaskExecutor`, so that after it returns, all tasks queued before calling `flush()` completes
      2. Post to `FrameProcessingTaskExecutor`, to flush the `FinalMatrixTextureProcessorWrapper`
      3. Flushing the `FinalMatrixTextureProcessorWrapper` will propagate flushing through, via the `ChainingGlTextureProcessorListener`
      
      Startblock:
         has LGTM from christosts
         and then
         add reviewer andrewlewis
      PiperOrigin-RevId: 506296469
      claincly committed
    • Add sRGB eotf to overlay fragment shader. · eea1868d
      The eotf is needed so that overlay (image) colors are correctly interpreted and mixed the linear video colors.
      
      Also replaces the 100winners.png with "homemade" image file.
      
      Added GlEffectsFrameProcessor test to justify that the color looks correct at the end of frame processing.
      
      PiperOrigin-RevId: 506290309
      tofunmi committed
  3. 01 Feb, 2023 2 commits