Fernando Jiménez Moreno
6b0acc9cd8
Handle Player errors
2018-10-08 16:12:04 +02:00
Fernando Jiménez Moreno
0db628028a
Update servo-media: handle decoder errors and use safer/nicer player API
2018-10-08 16:12:04 +02:00
Fernando Jiménez Moreno
e31339245c
Move player setup to common path, deal with setup error and clean debug msgs
2018-10-08 16:12:04 +02:00
Víctor Manuel Jáquez Leal
59d8c95b23
Network EOF does't imply media processing EOS
...
Since media processing is highly asynchronous, there is no need to
match one event with the other. Then error handling is done when
the player emits the EOS event.
The have_metadata attribute is not required anymore.
2018-10-08 16:12:03 +02:00
Fernando Jiménez Moreno
1c92240310
Fix HAVE_METADATA and HAVE_CURRENT_DATA state transitions
2018-10-08 16:12:03 +02:00
Fernando Jiménez Moreno
dba61ad1df
Do not set metadata until we have enough data
2018-10-08 16:12:03 +02:00
Fernando Jiménez Moreno
5bbd09769c
Set input size
2018-10-08 16:12:03 +02:00
Fernando Jiménez Moreno
50582f1548
Rustfmt and make tidy happy
2018-10-08 16:12:03 +02:00
Fernando Jiménez Moreno
f4ba7e503b
Media element duration param
2018-10-08 16:12:03 +02:00
Fernando Jiménez Moreno
6904535865
videoWidth and videoHeight params
2018-10-08 16:12:02 +02:00
Fernando Jiménez Moreno
da0e92d7f8
Cancel fetch in some media data processing steps
2018-10-08 16:12:02 +02:00
Fernando Jiménez Moreno
b656ae195f
Player pause
2018-10-08 16:12:02 +02:00
Fernando Jiménez Moreno
8fd9b72eb7
Add show poster flag
2018-10-08 16:12:02 +02:00
Fernando Jimenez Moreno
468c59a217
Abort in-progress fetching process during load algorithm
2018-10-08 16:12:02 +02:00
Fernando Jiménez Moreno
c1bd551b11
Clarify some FIXMEs and bail out if we fail pushing data to player
2018-10-08 16:12:02 +02:00
Fernando Jiménez Moreno
3fbeb398d4
Revert import style format
2018-10-08 16:12:02 +02:00
Fernando Jiménez Moreno
72b1df343e
Move unsafe_no_jsmanaged_fields to trace
2018-10-08 16:12:01 +02:00
Fernando Jiménez Moreno
8c40ef459b
Do not share entire FrameRenderer with layout, only current frame
2018-10-08 16:12:01 +02:00
Fernando Jiménez Moreno
1f406ef0a0
Player does not need to go inside a mutexed Arc
2018-10-08 16:12:01 +02:00
Víctor Manuel Jáquez Leal
da5d1d462f
dom: add media_data() method to LayoutDom implementation
2018-10-08 16:12:00 +02:00
Víctor Manuel Jáquez Leal
74a9edfed3
dom: media: implement LayoutHTMLMediaElementHelpers trait for LayoutDom
2018-10-08 16:12:00 +02:00
Víctor Manuel Jáquez Leal
524750f41f
dom: framerenderer: implement HTMLMediaFrameSource trait for MediaFrameRenderer
2018-10-08 16:12:00 +02:00
Víctor Manuel Jáquez Leal
6e3c2fe41a
dom: add mediaframewebrenderer
2018-10-08 16:11:59 +02:00
Víctor Manuel Jáquez Leal
781b3b712b
Provide webrender_api::RenderApiSender to ScriptThread and DOM Window
...
This will allow the HTMLMediaElement later to get a handle to the
RenderApi for rendering video frames.
At a later time, all media handling should be moved to its own
thread/process that is communicated with via IPC. At that point this
can be removed again.
Original-patch-by: Sebastian Dröge <sebastian@centricular.com>
2018-10-08 16:11:59 +02:00
Víctor Manuel Jáquez Leal
77c7eda0bf
HACK: don't call media_source_failure_steps when eos
...
Because gstreamer's appsrc queue might be big enough to swallow
the whole video holding the metadata extraction until EOS.
2018-10-08 16:11:59 +02:00
Víctor Manuel Jáquez Leal
ce76b5780a
dom: htmlmediaelement: add initial player bits
...
Also removes the usage of audio-video-metadata crate (?)
2018-10-08 16:11:59 +02:00
Víctor Manuel Jáquez Leal
0ff9ecc18a
add a fixme message of not implemented mode
2018-10-08 16:11:59 +02:00
Víctor Manuel Jáquez Leal
c8bc9c8740
htmlmediaelement: typo
2018-10-08 16:11:59 +02:00
Anthony Ramine
05ef233097
Add a couple of bug links
2018-10-08 13:13:24 +02:00
Anthony Ramine
551c405b0f
Avoid ctx.getImageData in canvas.toDataURL
2018-10-08 12:19:10 +02:00
Anthony Ramine
77c28bdfc9
Abstract some stuff common to ctx.getImageData and ctx.putImageData
2018-10-08 11:39:09 +02:00
Pyfisch
0ccaa7e1a9
Use keyboard-types crate
...
Have embedders send DOM keys to servo and use a strongly typed KeyboardEvent
from the W3C UI Events spec. All keyboard handling now uses the new types.
Introduce a ShortcutMatcher to recognize key bindings. Shortcuts are now
recognized in a uniform way.
Updated the winit port.
Updated webdriver integration.
part of #20331
2018-10-07 22:39:00 +02:00
Anthony Ramine
e62dbabb46
Handle some transparent black cases in ctx.getImageData
2018-10-07 02:52:06 +02:00
Anthony Ramine
241dba064d
Align ctx.createImageData and ctx.getImageData with the spec
2018-10-06 11:41:48 +02:00
Anthony Ramine
75e6f5dfaa
Avoid copying pixels in ctx.putImageData sometimes
2018-10-06 02:59:25 +02:00
Anthony Ramine
19f40cdf0b
Introduce ImageData::get_rect
...
We use that to send only the pixels that will be actually drawn to the
canvas thread in CanvasRenderingContext2d::PutImageData.
We also make the canvas thread byte swap and premultiply colours in-place.
2018-10-06 01:12:05 +02:00
Anthony Ramine
784fbb2bc1
Merge some byte swap/premultiply functions in their own crate
2018-10-06 01:11:55 +02:00
bors-servo
987e376ca7
Auto merge of #21868 - servo:webgl, r=jdm
...
Improve ctx.putImageData
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg " height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21868 )
<!-- Reviewable:end -->
2018-10-05 11:09:46 -04:00
Anthony Ramine
82c7d71811
Improve gl.putImageData
...
This commit should allow us to send smaller blobs to the canvas thread,
I made it into its own commit just to try=wpt.
2018-10-05 17:07:58 +02:00
Anthony Ramine
3d910feb3a
Align canvas.putImageData with spec
...
The arguments are supposed to be long values, not floats.
2018-10-05 17:07:56 +02:00
Simon Sapin
a846ed1654
Upgrade to rustc 1.31.0-nightly (8c4ad4e9e 2018-10-04)
...
CC https://github.com/rust-lang/rust/issues/54846
2018-10-05 15:06:29 +02:00
Anthony Ramine
62ea3c093a
Move canvas.putImageData checks to the DOM side
2018-10-05 00:35:39 +02:00
Anthony Ramine
5efbeea61c
Reindent the WebGL 2 case of canvas.toDataURL
2018-10-03 10:44:36 +02:00
Anthony Ramine
cfd446218b
Slightly clean up the final URL creation in canvas.toDataURL
2018-10-03 10:43:41 +02:00
Simon Pieters
9b74f0af24
Remove the HTMLTable{Header,Data}CellElement interfaces
...
Fixes #17222 .
2018-10-02 19:23:02 +02:00
Anthony Ramine
a3392610c3
Make HTMLCanvasElement::get_size return a Size2D<u32>
...
The changes keep trickling down.
2018-10-02 14:21:06 +02:00
Anthony Ramine
b8dbf2dddd
Implement JSTraceable for Size2D<u32>
2018-10-02 14:21:06 +02:00
Anthony Ramine
435d4d9f25
Implement JSTraceable for (A, B, C, D) instead of (T, T, T, T)
2018-10-02 14:21:06 +02:00
Josh Matthews
06bca43aee
script: Optionally store backtraces when throwing DOM exceptions.
2018-10-01 16:04:56 +02:00
Josh Matthews
5dc80dd07a
webgl: Add feature to store backtraces for each WebGL API call for easier debugging.
2018-10-01 10:43:13 +02:00