1. 26 Apr, 2017 1 commit
    • chcunningham's avatar
      Wire up MediaCapabilities is_supported to media/ · 20645b6c
      chcunningham authored
      navigator.mediaCapabilities.decodingInfo(...) will now query
      the media layer to parse the mime type and check platform support.
      Some work remains to reject ambiguous mime strings. In some cases
      we are also not deeply checking for platform support. Will get to
      this soon.
      TEST=new browser tests
      Review-Url: https://codereview.chromium.org/2805553004
      Cr-Commit-Position: refs/heads/master@{#467184}
  2. 25 Apr, 2017 15 commits
    • mlamouri's avatar
      Create autoplay policy flag and merge cross-origin autoplay blocking into it. · 1f264da2
      mlamouri authored
      Also allows to use this flag to turn off autoplay restrictions on
      Android. Follow-ups will merge
      kDisableGestureRequirementsForMediaPlayback into this new flag.
      Review-Url: https://codereview.chromium.org/2837023002
      Cr-Commit-Position: refs/heads/master@{#467142}
    • mcasas's avatar
      Image Capture: catch NoSuchFieldError if reading... · 1a40ccb5
      mcasas authored
      Image Capture: catch NoSuchFieldError if reading CONTROL_{AE,AWB}_LOCK_AVAILABLE where not available
      This CL adds a catch-ignore NoSuchFieldError exception, this
      is thrown reading the said fields in APIs >= 21 but < 23,
      where the constants identifying the fields are not defined.
      This is totally my bad: I thought unknown constants would return
      false, but instead they throw an Exception, which causes a
      crash, caught by fbeaufort@   :sweaty smile emoji:
      Review-Url: https://codereview.chromium.org/2844503002
      Cr-Commit-Position: refs/heads/master@{#467127}
    • jrummell's avatar
      EME: Allow temporary sessions to be removed for ClearKey only. · 74fbc3d0
      jrummell authored
      The EME spec allows MediaKeySession::remove() to be called on temporary
      sessions, so update the code to allow it. Doing this for ClearKey
      only as other CDMs may not support it.
      TEST=updated tests pass
      Review-Url: https://codereview.chromium.org/2831963003
      Cr-Commit-Position: refs/heads/master@{#467106}
    • hubbe's avatar
      DXVA; choose pbuffers with the right number of bits when possible · c1243d02
      hubbe authored
      This should make it possible to check in RGB10A2 in Angle without
      breaking video playback performance.
      Review-Url: https://codereview.chromium.org/2836933003
      Cr-Commit-Position: refs/heads/master@{#467099}
    • bsalomon's avatar
      Notify Skia of texture binding changes in SkCanvasVideoRenderer. · 06770acc
      bsalomon authored
      This fixes an issue where WebGL conformance tests failed after a Skia roll (http://crbug.com/705156). The problem is that Skia is sharing a GL context with SkCanvasVideoRenderer and SkCanvasVideoRenderer changes which textures are bound. Skia needs to be notified that the GL context state has changed.
      Review-Url: https://codereview.chromium.org/2837043002
      Cr-Commit-Position: refs/heads/master@{#467086}
    • jdoerrie's avatar
      Remove base::Value::Get{Buffer,Size} · 5328aff0
      jdoerrie authored
      This change removes the deprecated base::Value::Get{Buffer(),Size()} and
      replaces them with base::Value::GetBlob().{data(),size()} while
      simplifing the code where appropriate.
      Review-Url: https://codereview.chromium.org/2841623003
      Cr-Commit-Position: refs/heads/master@{#467085}
    • skyostil's avatar
      scheduler: Move WebFrameScheduler and WebScheduler into Blink · d80c41e3
      skyostil authored
      Move WebFrameScheduler and WebScheduler into Blink since there is no
      need to expose these classes to outside components.
      No functional changes.
      Review-Url: https://codereview.chromium.org/2843503002
      Cr-Commit-Position: refs/heads/master@{#467058}
    • toyoshim's avatar
      Web MIDI: rename DynamicallyInitializedMidiManagerWin · 60350512
      toyoshim authored
      Since the old backend was already removed, rename the new backend
      DynamicallyInitializedMidiManagerWin to MidiManagerWin.
      Review-Url: https://codereview.chromium.org/2834423002
      Cr-Commit-Position: refs/heads/master@{#466980}
    • toyoshim's avatar
      Web MIDI: remove old Windows backend · 4399414e
      toyoshim authored
      The new backend supporting dynamic instantiation on Windows was rolled
      out to the stable channel via a field trial flag.
      This new backend solves some long-living problems, e.g., grabbing
      devices forever, battery concerns, and stability.
      Since the feature was enabled by default, and have worked well,
      I want to remove the old backend now.
      Another change that renames new backend will follow.
      Review-Url: https://codereview.chromium.org/2841493003
      Cr-Commit-Position: refs/heads/master@{#466904}
    • maxmorin's avatar
      DCHECK that audio devices are stopped prior to destruction. · 63575c0e
      maxmorin authored
      This is required (and documented by a comment in the header file), so the DCHECKs are motivated.
      Review-Url: https://codereview.chromium.org/2828233002
      Cr-Commit-Position: refs/heads/master@{#466898}
    • hiroh's avatar
      Update third_party/libva to version 1.7.1 · 9a16f5fe
      hiroh authored
      $ git clone https://github.com/01org/libva.git
      $ cd tmp/libva
      $ git checkout libva-1.7.1
      $ rm -rf ~/chromium/src/third_party/libva/va
      $ find va -name \*.h -exec cp --parents \{\} ~/chromium/src/third_party/libva \;
      $ sh build/gen_version.sh . va/va_version.h.in > ~/chromium/src/third_party/libva/va/va_version.h
      Also Remove:
      - remove va/egl/va_egl.h due to the lack of license header
      - remove struct _VAEncMacroblockParameterBufferH264 from va/va_enc_h264.h,
        which contained an empty union, causing compile errors
      TEST=build and test VDA and VEA on an Intel device.
      Review-Url: https://codereview.chromium.org/2834313002
      Cr-Commit-Position: refs/heads/master@{#466889}
    • toyoshim's avatar
      Web MIDI dynamic instantiation experiment-controlled rollouts: step 4 · 3793199e
      toyoshim authored
      Enable dynamic instantiation mode by default on Linux, ChromeOS,
      and Windows. Other platforms still need to rely on the existing
      experiment-controlled flag and will be launched separately.
      Review-Url: https://codereview.chromium.org/2835083002
      Cr-Commit-Position: refs/heads/master@{#466881}
    • mcasas's avatar
      Image Capture Android: bump class to API 23 (Marshmallow) to retrieve fixed-controls · 3fba7f46
      mcasas authored
      Bump SDK to 23 (marshmallow) and use the changes to allow retrieving fixed
      (exposure, white balance) controls
      Review-Url: https://codereview.chromium.org/2841543005
      Cr-Commit-Position: refs/heads/master@{#466864}
    • watk's avatar
      media: Discard the previous decoder immediately on fallback · d16bb3ef
      watk authored
      Previously, after falling back to another decoder, we had to keep the
      old one alive in case it owned frames that were currently being
      Now all decoders produce frames that outlive themselves, so we can
      safely delete the decoder as soon as we no longer need it.
      This change also includes deletion of a related, but now unused,
      VideoFrame metadata value called DECODER_OWNS_FRAME.
      Review-Url: https://codereview.chromium.org/2841553003
      Cr-Commit-Position: refs/heads/master@{#466854}
    • tguilbert's avatar
      Add RendererFactorySelector · 70d2a00a
      tguilbert authored
      There are 4 types of renderers that are used by WMPI directly, with a
      potential fifth type in the works. Currently, a single RendererFactory
      is chosen at WMPI creation time, and bound for the lifetime of WMPI.
      However, there is a growing need to allow the smooth transition between
      the use of different renderer types, after WMPI’s creation.
      This CL introduces the RendererFactorySelector, which will allow us to
      choose between different RendererFactory types at runtime. Its purpose
      is to aggregate the signals and centralize the logic necessary to choose
      which RendererFactory should be used when creating a new Renderer.
      The interface is still extremelly simple, but it is expected to grow
      as the number of concurrent RendererFactory types grows. In other words,
      if there are 3+ renderer factories at play, some complexity is
      inevitable, and the right place for that complexity to live is in the
      NOTE: The RendererFactorySelector uses a FactoryType enum as a key, in
      order to avoid having to take dependencies on different (sometimes
      platform specific) RendererFactories.
      Review-Url: https://codereview.chromium.org/2711153006
      Cr-Commit-Position: refs/heads/master@{#466837}
  3. 24 Apr, 2017 2 commits
  4. 22 Apr, 2017 2 commits
  5. 21 Apr, 2017 8 commits
    • dalecurtis's avatar
      Ignore negative cadence values. · 74ea768c
      dalecurtis authored
      TEST=clusterfuzz test case no longer check fails.
      Review-Url: https://codereview.chromium.org/2827123007
      Cr-Commit-Position: refs/heads/master@{#466478}
    • robliao's avatar
      Migrate IID Coupled Uses of ScopedComPtr::ReceiveVoid() to IID_PPV_ARGS · 9867f09d
      robliao authored
      TBR=dalecurtis@chromium.org, reillyg@chromium.org, sdefresne@chromium.org, thakis@chromium.org
      Mechanical substitutions.
      Review-Url: https://codereview.chromium.org/2830893004
      Cr-Commit-Position: refs/heads/master@{#466416}
    • wolenetz's avatar
      Add MediaError.message · ed8e7091
      wolenetz authored
      This improves the level of information available for web authors to use
      when debugging media playback errors.
      * Adds support for the MediaError.message field [1] [2]
      * Changes MediaLog::PipelineStatusToString() to return just a
        stringified version of the enum identifier, suitable for use as a
        UA-specific-code when included in MediaError.message.
      * Changes MediaLog::GetErrorMessage() to produce messages in the form:
        [[Stringified pipeline error code, if any, without any colon][: The
        first MEDIA_ERROR_LOG_ENTRY from the log, if any, since that is most
        likely to contain the most precise error information]]
        The produced message does not contain any newlines.
        See the updated media_browsertest.cc for basic examples.
      * When the message would otherwise be empty for various cases in
        HTMLMediaElement, and more meaningful information beyond the basic
        standard MediaError codes and HTMLMediaElement networkStates is
        available, reports basic additional information (prefixed by error
        code "MEDIA_ELEMENT_ERROR: ".) This should assist edge case
        differentiation. See the updated media_browsertest.cc for basic
      * Test coverage:
        * Adds basic layout test coverage test similar to that added in [3].
        * Adds basic content browser test coverage for a small variety of
          errors, since these messages' format and content are specific to
      The format of the message string may change in future (for example, see
      discussion in [4]). Also, the variety of error codes in the message
      prior to the first ':' will likely change in future, and the descriptive
      error message detail following the ':' will likely change to include
      more cases or more consistent format in future.
      [1] - https://github.com/whatwg/html/issues/2085
      [2] - https://github.com/whatwg/html/pull/2086
      [3] - https://github.com/w3c/web-platform-tests/pull/4638
      [4] - https://github.com/whatwg/html/issues/2531
      [Intent to implement and ship] -
      BUG=601086, 710617
      Review-Url: https://codereview.chromium.org/2660003003
      Cr-Commit-Position: refs/heads/master@{#466359}
    • mcasas's avatar
      Image Capture: set SENSOR_EXPOSURE_TIME when CONTROL_AE_MODE_OFF · 80d0234a
      mcasas authored
      This CL addresses a bug from the field: when the |exposureMode| is set to
      "manual", the camera abandons all AutoExposure and the captured image
      turns black, because the exposure time needs to be configured explicitly.
      The solution is to set it to the middle of the allowed range, leaving
      further configuration to the Iso (SENSOR_SENSITIVITY).
      Review-Url: https://codereview.chromium.org/2827253004
      Cr-Commit-Position: refs/heads/master@{#466350}
    • olka's avatar
      AudioSystemImpl binding cleanup · 402945da
      olka authored
      Review-Url: https://codereview.chromium.org/2828143006
      Cr-Commit-Position: refs/heads/master@{#466324}
    • pbos's avatar
      Separate stubs for V4L2 and VAAPI. · 377f6d9e
      pbos authored
      Permits building Chromium with both V4L2 and VAAPI. Before this change
      when building with use_v4lplugin set on non-arm platforms
      generate_stubs.py would be called to generate two InitializeStubs()
      functions (and other symbols) under the media_gpu namespace, breaking
      the one-definition rule and failing to link both VAAPI and V4L2.
      TEST=Compile Zako with use_v4lplugin.
      Review-Url: https://codereview.chromium.org/2783673003
      Cr-Commit-Position: refs/heads/master@{#466319}
    • olka's avatar
      WebRTC Audio private API: removing WebRtcAudioPrivate(Set/Get)ActiveSinkFunction · bc189a38
      olka authored
      together with GetOutputControllers() logic from renderer hosts.
      They are meant to be replaced with HTMLMediaElement's sinkId and setSinkId()
      *PENDING on external change - do not submit yet*
      Review-Url: https://codereview.chromium.org/2784563003
      Cr-Commit-Position: refs/heads/master@{#466312}
    • xjz's avatar
      RELAND: Media Remoting end to end integration tests. · 722e67b4
      xjz authored
      This is a re-land of https://codereview.chromium.org/2692593002/.
      Moved tests for media remoting pipeline out of general
      -------Description of original change follows-------
      Media Remoting: End to end integration tests.
      Add end to end integration tests for Media Remoting. Refactors
      PipelineIntegrationTest to test both media and media remoting pipeline.
      Re-use current tests. No new tests are added in this CL.
      Review-Url: https://codereview.chromium.org/2808583002
      Cr-Commit-Position: refs/heads/master@{#466216}
  6. 20 Apr, 2017 3 commits
    • hubbe's avatar
      Fix fp16 mode on intel gpus. · 92dc022d
      hubbe authored
      Review-Url: https://codereview.chromium.org/2827793004
      Cr-Commit-Position: refs/heads/master@{#466186}
    • servolk's avatar
      Fix MSE garbage collection for disabled media tracks · ac9a37e9
      servolk authored
      Renderers don't read from disabled demuxer streams, thus leaving
      demuxer stream read position unchanged. But MSE garbage collection
      currently stops removing data from the front of buffered ranges when
      it reaches the last read position. This results in QuotaExceeded
      exceptions being thrown when more data is appended to the disabled
      stream. The fix is to seek the disabled stream before running MSE
      GC, this will update the read position to the current media_time
      and should allow the GC algorithm to remove data as expected.
      Review-Url: https://codereview.chromium.org/2827983004
      Cr-Commit-Position: refs/heads/master@{#466136}
    • servolk's avatar
      Fix status notifications for FFmpegDemuxerStream with a pending read · 81544b28
      servolk authored
      We shouldn't return from FFmpegDemuxerStream::SetEnabled prematurely if
      there is a pending read, we still need to send the status notification.
      Also expand test coverage for stream status changes to include status
      changes with a pending read on the changed stream.
      Review-Url: https://codereview.chromium.org/2825863002
      Cr-Commit-Position: refs/heads/master@{#465884}
  7. 19 Apr, 2017 9 commits
    • reed's avatar
      SkBitmap and SkPixelRef no longer need lock/unlock · 11395368
      reed authored
      Refactoring CL -- no intended behavior change. Just removing calls to empty apis.
      refactoring CL
      TBR=jochen, hubbe, finnur, thestig, wez
      Review-Url: https://codereview.chromium.org/2823003002
      Cr-Commit-Position: refs/heads/master@{#465770}
    • dalecurtis's avatar
      Convert MediaLog from being ref counted to owned by WebMediaPlayer. · 9cddc0b9
      dalecurtis authored
      MediaLog instances are always bound to a specific player, so there's
      no reason for having it be ref-counted other than to confuse folk
      into thinking it can be reused.
      There seems to be no reason why this was ref counted. There were a
      couple questionable places, WebSourceBufferImpl and
      WebMediaPlayerMSCompositor, but neither is really using the MediaLog
      so I either removed it or replaced it with a dummy log.
      The RendererFactories are a bit questionable too, but they are owned
      by the WebMediaPlayerImpl so should be fine.
      TEST=compiles, nothing crashes, existing tests still pass.
      Review-Url: https://codereview.chromium.org/2815303006
      Cr-Commit-Position: refs/heads/master@{#465753}
    • egdaniel's avatar
      Remove kRenderTarget flag when wrapping a texture as an SkImage in skcanvas_video_renderer · 1e95b5f0
      egdaniel authored
      Review-Url: https://codereview.chromium.org/2825333003
      Cr-Commit-Position: refs/heads/master@{#465703}
    • sandersd's avatar
      Media: Reject negative initial timestamps in FFmpegDemuxer. · 7ef29df1
      sandersd authored
      During recent changes, it became possible for the first video buffer
      timestamp in a stream to be negative. This change restores the invariant
      that video buffer timestampes are non-negative, by emitting a demuxer
      error in this case.
      Review-Url: https://codereview.chromium.org/2822063002
      Cr-Commit-Position: refs/heads/master@{#465678}
    • servolk's avatar
      Set Flush/StartPlaying default behavior in RendererImpl unit test · cfacebc3
      servolk authored
      Move the definitions of the default Flush and StartPlaying* behaviors
      for audio/video renderers to a common InitializeAndExpect function,
      instead of repeatedly definining those behaviors in individual tests.
      Review-Url: https://codereview.chromium.org/2826613002
      Cr-Commit-Position: refs/heads/master@{#465651}
    • hiroh's avatar
      Make V4L2 Jpeg Decode Accelerator not compiled on an Intel device · eea08e1d
      hiroh authored
      On an Intel device, V4L2JDA isn't used.
      This patch makes V4L2JDA be not compiled if it's in an Intel device.
      TEST=confirm jpeg_accelerator_unittest is passed on x86_64 and armv7l.
      Also appr.tc/?debug=loopback.
      Review-Url: https://codereview.chromium.org/2824743002
      Cr-Commit-Position: refs/heads/master@{#465554}
    • hajimehoshi's avatar
      Reorganize GUIDs for GPU memory buffers · 7c6261c7
      hajimehoshi authored
      This CL replaces current GUID generators (GetGenericSharedMemoryGUID-
      -ForTracing and GetGpuMemoryBufferGUIDForTracing) with new GUID
      generators GetSharedMemoryGUIDForTracing and GetGenericSharedGpumemory-
      -GUIDForTracing. The formater is used for GPU memory buffer that use
      base::SharedMemory, and the latter is not. This fix is required to know
      shared memory usages on memory-infra accurately.
      Review-Url: https://codereview.chromium.org/2819803002
      Cr-Commit-Position: refs/heads/master@{#465529}
    • xhwang's avatar
      media: Report initial video height to UMA · 60802656
      xhwang authored
      Also fix the issue where the initial video natural size is
      not reported to MediaLog.
      TEST=Manually tested
      Review-Url: https://codereview.chromium.org/2814043005
      Cr-Commit-Position: refs/heads/master@{#465518}
    • dalecurtis's avatar
      Include video frame memory held by the compositor in memory reports. · ecc76619
      dalecurtis authored
      This provides an estimate for the amount of memory owned by the
      video frame held by the compositor after the video renderer has
      suspended. In this case, there is 1 frame of video memory held
      by VideoFrameCompositor while the pipeline reports zero memory
      since the renderer has been destroyed.
      This doesn't resolve the linked bug, but does improve the accuracy
      of the reported value with high resolution video.
      Review-Url: https://codereview.chromium.org/2828503004
      Cr-Commit-Position: refs/heads/master@{#465435}