Skip to content

Commit 63ec646

Browse files
committed
[GStreamer] Expose MPEG-TS metadata
https://bugs.webkit.org/show_bug.cgi?id=122001 Reviewed by Eric Carlson. .: * Source/cmake/FindGStreamer.cmake: Look for gstreamer-mpegts >= 1.3.0. * Source/cmake/OptionsEfl.cmake: Same. * Source/cmake/OptionsGTK.cmake: Same. Source/WebCore: Test: media/track/in-band/track-in-band-mpegts-metadata.html * CMakeLists.txt: Add InbandDataTextTrack. * PlatformGTK.cmake: Look for gstreamer-mpegts and use it if available. * WebCore.vcxproj/WebCore.vcxproj: Add InbandDataTextTrack. * WebCore.vcxproj/WebCore.vcxproj.filters: Same. * WebCore.xcodeproj/project.pbxproj: Same. * html/track/DataCue.cpp: (WebCore::DataCue::DataCue): Add a constructor using raw data. * html/track/DataCue.h: (WebCore::DataCue::create): Same. * html/track/InbandDataTextTrack.cpp: Added, InbandTextTrack which implements addDataCue(). * html/track/InbandDataTextTrack.h: * html/track/InbandGenericTextTrack.h: Move unimplemented methods to InbandTextTrack. * html/track/InbandWebVTTTextTrack.h: Same. * html/track/InbandTextTrack.h: Same, and add inBandMetadataTrackDispatchType. * html/track/InbandTextTrack.cpp: (WebCore::InbandTextTrack::create): Add constructor for InbandDataTextTrack. (WebCore::InbandTextTrack::inBandMetadataTrackDispatchType): Added. * html/track/TextTrack.h: (WebCore::TextTrack::inBandMetadataTrackDispatchType): Added (empty). * html/track/TextTrack.idl: Add inBandMetadataTrackDispatchType. * platform/graphics/InbandTextTrackPrivate.h: Add inBandMetadataTrackDispatchType and Data format. (WebCore::InbandTextTrackPrivate::inBandMetadataTrackDispatchType): * platform/graphics/InbandTextTrackPrivateClient.h: Add addDataCue() method. * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h: (WebCore::InbandMetadataTextTrackPrivateGStreamer::create): Allow specifying the cue format and id. (WebCore::InbandMetadataTextTrackPrivateGStreamer::InbandMetadataTextTrackPrivateGStreamer): Same. (WebCore::InbandMetadataTextTrackPrivateGStreamer::setInBandMetadataTrackDispatchType): Added. (WebCore::InbandMetadataTextTrackPrivateGStreamer::addDataCue): Added. (WebCore::InbandMetadataTextTrackPrivateGStreamer::addGenericCue): Added. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Check for MPEG-TS sections. (WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection): Add MPEG-TS section metadata, and get inBandMetadataTrackDispatchType from the PMT. (WebCore::MediaPlayerPrivateGStreamer::processTableOfContents): Explicitly use Generic CueFormat. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: LayoutTests: * media/content/user-private-streams.ts: Added. * media/track/in-band/track-in-band-mpegts-metadata-expected.txt: Added. * media/track/in-band/track-in-band-mpegts-metadata.html: Added. Canonical link: https://commits.webkit.org/149510@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@167025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 4a8a680 commit 63ec646

29 files changed

+490
-16
lines changed

ChangeLog

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
2014-04-09 Brendan Long <b.long@cablelabs.com>
2+
3+
[GStreamer] Expose MPEG-TS metadata
4+
https://bugs.webkit.org/show_bug.cgi?id=122001
5+
6+
Reviewed by Eric Carlson.
7+
8+
* Source/cmake/FindGStreamer.cmake: Look for gstreamer-mpegts >= 1.3.0.
9+
* Source/cmake/OptionsEfl.cmake: Same.
10+
* Source/cmake/OptionsGTK.cmake: Same.
11+
112
2014-04-08 Brian J. Burg <burg@cs.washington.edu>
213

314
Web Replay: memoize nondeterministic attributes of the Screen interface

LayoutTests/ChangeLog

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
2014-04-09 Brendan Long <b.long@cablelabs.com>
2+
3+
[GStreamer] Expose MPEG-TS metadata
4+
https://bugs.webkit.org/show_bug.cgi?id=122001
5+
6+
Reviewed by Eric Carlson.
7+
8+
* media/content/user-private-streams.ts: Added.
9+
* media/track/in-band/track-in-band-mpegts-metadata-expected.txt: Added.
10+
* media/track/in-band/track-in-band-mpegts-metadata.html: Added.
11+
112
2014-04-08 Chris Fleizach <cfleizach@apple.com>
213

314
AX: Make AXPress much more reliable on the Web
Binary file not shown.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
2+
Check for metadata tracks from MPEG-TS file.
3+
4+
RUN(track0 = video.textTracks[0])
5+
RUN(track0.mode = 'hidden')
6+
EXPECTED (track0.kind == 'metadata') OK
7+
EXPECTED (track0.id == '1770') OK
8+
EXPECTED (track0.inBandMetadataTrackDispatchType == 'C005044554') OK
9+
RUN(cues0 = track0.cues)
10+
EXPECTED (cues0.length == '2') OK
11+
EXPECTED (new Uint8Array(cues0[0].data).length == '139') OK
12+
EXPECTED (new Uint8Array(cues0[0].data) == '[227, 64, 136, 251, 251, 0, 59, 176, 126, 0, 1, 193, 0, 0, 17, 3, 16, 2, 128, 0, 0, 1, 255, 0, 0, 105, 0, 0, 0, 1, 3, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 12, 1, 60, 59, 67, 97, 98, 108, 101, 108, 97, 98, 115, 95, 78, 97, 116, 105, 111, 110, 97, 108, 95, 101, 116, 118, 95, 115, 116, 114, 101, 97, 109, 95, 99, 111, 110, 102, 105, 103, 47, 109, 97, 105, 110, 97, 112, 112, 47, 49, 46, 48, 47, 109, 97, 105, 110, 95, 112, 114, 46, 112, 114, 0, 15, 14, 105, 98, 46, 116, 118, 119, 111, 114, 107, 115, 46, 99, 111, 109, 225, 54, 136, 221, 188, 252, 142, 137]') OK
13+
EXPECTED (new Uint8Array(cues0[1].data).length == '564') OK
14+
EXPECTED (new Uint8Array(cues0[1].data) == '[228, 66, 49, 0, 1, 0, 60, 178, 39, 0, 1, 193, 0, 0, 17, 3, 16, 3, 0, 0, 0, 1, 255, 0, 2, 18, 0, 1, 1, 255, 0, 0, 69, 66, 73, 70, 4, 0, 1, 0, 0, 22, 11, 72, 207, 255, 0, 1, 254, 0, 1, 6, 0, 0, 248, 0, 0, 5, 1, 0, 0, 32, 2, 0, 0, 49, 0, 0, 0, 154, 4, 0, 0, 176, 3, 0, 0, 197, 0, 2, 0, 2, 0, 0, 0, 1, 255, 6, 2, 0, 0, 0, 111, 0, 171, 0, 16, 0, 5, 0, 0, 0, 4, 255, 10, 2, 0, 0, 9, 1, 0, 2, 9, 1, 0, 3, 9, 1, 0, 4, 128, 0, 0, 0, 0, 255, 255, 18, 18, 18, 255, 255, 153, 153, 153, 255, 255, 204, 204, 204, 255, 255, 181, 151, 29, 255, 255, 51, 51, 51, 127, 0, 17, 17, 17, 230, 255, 153, 153, 153, 230, 255, 204, 204, 204, 230, 255, 181, 151, 29, 230, 255, 51, 51, 51, 255, 255, 16, 16, 147, 255, 255, 158, 11, 14, 255, 255, 16, 147, 16, 255, 255, 102, 45, 145, 255, 255, 239, 106, 16, 0, 1, 0, 5, 0, 0, 0, 2, 255, 14, 3, 0, 0, 5, 2, 0, 3, 0, 0, 33, 0, 0, 0, 1, 0, 4, 0, 0, 0, 2, 255, 6, 2, 0, 0, 10, 2, 0, 2, 0, 101, 255, 255, 0, 4, 0, 7, 0, 0, 0, 7, 255, 9, 1, 0, 0, 9, 1, 0, 1, 9, 1, 0, 2, 9, 1, 0, 3, 9, 1, 0, 4, 9, 1, 0, 5, 9, 1, 0, 6, 8, 7, 0, 0, 187, 255, 255, 0, 7, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 8, 7, 0, 0, 189, 255, 255, 0, 1, 50, 0, 0, 6, 4, 15, 0, 4, 1, 2, 1, 15, 6, 6, 6, 6, 6, 255, 250, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 32, 255, 15, 2, 1, 3, 3, 3, 15, 2, 2, 2, 2, 2, 16, 0, 0, 255, 250, 255, 250, 255, 250, 255, 250, 0, 0, 0, 0, 0, 255, 196, 255, 212, 255, 200, 255, 228, 255, 200, 255, 240, 255, 251, 0, 0, 15, 1, 1, 1, 1, 1, 255, 174, 0, 0, 255, 250, 255, 206, 255, 250, 255, 218, 255, 229, 0, 0, 112, 255, 255, 0, 1, 0, 0, 33, 19, 31, 1, 31, 255, 255, 255, 208, 0, 0, 0, 0, 2, 192, 1, 224, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 100, 0, 13, 187, 160, 10, 15, 0, 0, 255, 170, 0, 100, 1, 44, 2, 38, 0, 27, 0, 3, 0, 0, 0, 57, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 67, 97, 98, 108, 101, 108, 97, 98, 115, 32, 110, 97, 116, 105, 111, 110, 97, 108, 32, 69, 84, 86, 32, 65, 100, 32, 99, 114, 101, 97, 116, 101, 100, 32, 102, 114, 111, 109, 32, 84, 86, 87, 111, 114, 107, 115, 46, 189, 105, 252, 26, 5, 216, 230, 95]') OK
15+
16+
RUN(track1 = video.textTracks[1])
17+
RUN(track1.mode = 'hidden')
18+
EXPECTED (track1.kind == 'metadata') OK
19+
EXPECTED (track1.id == '1768') OK
20+
EXPECTED (track1.inBandMetadataTrackDispatchType == 'C005044554A2') OK
21+
RUN(cues1 = track1.cues)
22+
EXPECTED (cues1.length == '1') OK
23+
EXPECTED (new Uint8Array(cues1[0].data).length == '117') OK
24+
EXPECTED (new Uint8Array(cues1[0].data) == '[224, 0, 114, 0, 0, 0, 3, 0, 0, 8, 0, 255, 255, 255, 0, 1, 0, 224, 94, 1, 1, 0, 0, 0, 0, 0, 0, 0, 100, 16, 82, 0, 80, 108, 105, 100, 58, 47, 47, 105, 98, 46, 116, 118, 119, 111, 114, 107, 115, 46, 99, 111, 109, 47, 67, 97, 98, 108, 101, 108, 97, 98, 115, 95, 78, 97, 116, 105, 111, 110, 97, 108, 95, 101, 116, 118, 95, 115, 116, 114, 101, 97, 109, 95, 99, 111, 110, 102, 105, 103, 47, 109, 97, 105, 110, 97, 112, 112, 47, 49, 46, 48, 47, 109, 97, 105, 110, 95, 112, 114, 46, 112, 114, 90, 3, 153, 38]') OK
25+
26+
RUN(track2 = video.textTracks[2])
27+
RUN(track2.mode = 'hidden')
28+
EXPECTED (track2.kind == 'metadata') OK
29+
EXPECTED (track2.id == '45') OK
30+
EXPECTED (track2.inBandMetadataTrackDispatchType == '86') OK
31+
EXPECTED (track2.cues.length == '0') OK
32+
33+
RUN(track3 = video.textTracks[3])
34+
RUN(track3.mode = 'hidden')
35+
EXPECTED (track3.kind == 'metadata') OK
36+
EXPECTED (track3.id == '36') OK
37+
EXPECTED (track3.inBandMetadataTrackDispatchType == '81') OK
38+
EXPECTED (track3.cues.length == '0') OK
39+
40+
END OF TEST
41+
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5+
6+
<script src=../../media-file.js></script>
7+
<script src=../../video-test.js></script>
8+
<script>
9+
10+
// testArraysEqual() is way too slow to use here
11+
function testDataCue(cueStr, expected)
12+
{
13+
try {
14+
var success = true;
15+
var cue = eval(cueStr);
16+
var data = new Uint8Array(cue.data);
17+
testExpected("new Uint8Array(" + cueStr + ".data).length", expected.length);
18+
for (var i = 0; i < data.length; ++i) {
19+
if (data[i] != expected[i]) {
20+
reportExpected(false, "new Uint8Array(" + cueStr + ".data)[" + i + "]", "==", expected[i], data[i]);
21+
success = false;
22+
}
23+
}
24+
reportExpected(success, "new Uint8Array(" + cueStr + ".data)", "==", "[" + expected.join(", ") + "]", "See above");
25+
} catch (e) {
26+
logResult(false, "Testing cue " + cueStr + " threw exception " + e);
27+
}
28+
}
29+
30+
function start()
31+
{
32+
findMediaElement();
33+
34+
run("track0 = video.textTracks[0]");
35+
run("track0.mode = 'hidden'");
36+
testExpected("track0.kind", "metadata");
37+
testExpected("track0.id", "1770");
38+
testExpected("track0.inBandMetadataTrackDispatchType", "C005044554");
39+
run("cues0 = track0.cues");
40+
testExpected("cues0.length", "2");
41+
testDataCue("cues0[0]", [227, 64, 136, 251, 251, 0, 59, 176, 126, 0, 1, 193, 0, 0, 17, 3, 16, 2, 128, 0, 0, 1, 255, 0, 0, 105, 0, 0, 0, 1, 3, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 12, 1, 60, 59, 67, 97, 98, 108, 101, 108, 97, 98, 115, 95, 78, 97, 116, 105, 111, 110, 97, 108, 95, 101, 116, 118, 95, 115, 116, 114, 101, 97, 109, 95, 99, 111, 110, 102, 105, 103, 47, 109, 97, 105, 110, 97, 112, 112, 47, 49, 46, 48, 47, 109, 97, 105, 110, 95, 112, 114, 46, 112, 114, 0, 15, 14, 105, 98, 46, 116, 118, 119, 111, 114, 107, 115, 46, 99, 111, 109, 225, 54, 136, 221, 188, 252, 142, 137]);
42+
testDataCue("cues0[1]", [228, 66, 49, 0, 1, 0, 60, 178, 39, 0, 1, 193, 0, 0, 17, 3, 16, 3, 0, 0, 0, 1, 255, 0, 2, 18, 0, 1, 1, 255, 0, 0, 69, 66, 73, 70, 4, 0, 1, 0, 0, 22, 11, 72, 207, 255, 0, 1, 254, 0, 1, 6, 0, 0, 248, 0, 0, 5, 1, 0, 0, 32, 2, 0, 0, 49, 0, 0, 0, 154, 4, 0, 0, 176, 3, 0, 0, 197, 0, 2, 0, 2, 0, 0, 0, 1, 255, 6, 2, 0, 0, 0, 111, 0, 171, 0, 16, 0, 5, 0, 0, 0, 4, 255, 10, 2, 0, 0, 9, 1, 0, 2, 9, 1, 0, 3, 9, 1, 0, 4, 128, 0, 0, 0, 0, 255, 255, 18, 18, 18, 255, 255, 153, 153, 153, 255, 255, 204, 204, 204, 255, 255, 181, 151, 29, 255, 255, 51, 51, 51, 127, 0, 17, 17, 17, 230, 255, 153, 153, 153, 230, 255, 204, 204, 204, 230, 255, 181, 151, 29, 230, 255, 51, 51, 51, 255, 255, 16, 16, 147, 255, 255, 158, 11, 14, 255, 255, 16, 147, 16, 255, 255, 102, 45, 145, 255, 255, 239, 106, 16, 0, 1, 0, 5, 0, 0, 0, 2, 255, 14, 3, 0, 0, 5, 2, 0, 3, 0, 0, 33, 0, 0, 0, 1, 0, 4, 0, 0, 0, 2, 255, 6, 2, 0, 0, 10, 2, 0, 2, 0, 101, 255, 255, 0, 4, 0, 7, 0, 0, 0, 7, 255, 9, 1, 0, 0, 9, 1, 0, 1, 9, 1, 0, 2, 9, 1, 0, 3, 9, 1, 0, 4, 9, 1, 0, 5, 9, 1, 0, 6, 8, 7, 0, 0, 187, 255, 255, 0, 7, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 8, 7, 0, 0, 189, 255, 255, 0, 1, 50, 0, 0, 6, 4, 15, 0, 4, 1, 2, 1, 15, 6, 6, 6, 6, 6, 255, 250, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 32, 255, 15, 2, 1, 3, 3, 3, 15, 2, 2, 2, 2, 2, 16, 0, 0, 255, 250, 255, 250, 255, 250, 255, 250, 0, 0, 0, 0, 0, 255, 196, 255, 212, 255, 200, 255, 228, 255, 200, 255, 240, 255, 251, 0, 0, 15, 1, 1, 1, 1, 1, 255, 174, 0, 0, 255, 250, 255, 206, 255, 250, 255, 218, 255, 229, 0, 0, 112, 255, 255, 0, 1, 0, 0, 33, 19, 31, 1, 31, 255, 255, 255, 208, 0, 0, 0, 0, 2, 192, 1, 224, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 100, 0, 13, 187, 160, 10, 15, 0, 0, 255, 170, 0, 100, 1, 44, 2, 38, 0, 27, 0, 3, 0, 0, 0, 57, 84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 67, 97, 98, 108, 101, 108, 97, 98, 115, 32, 110, 97, 116, 105, 111, 110, 97, 108, 32, 69, 84, 86, 32, 65, 100, 32, 99, 114, 101, 97, 116, 101, 100, 32, 102, 114, 111, 109, 32, 84, 86, 87, 111, 114, 107, 115, 46, 189, 105, 252, 26, 5, 216, 230, 95]);
43+
consoleWrite("");
44+
45+
run("track1 = video.textTracks[1]");
46+
run("track1.mode = 'hidden'");
47+
testExpected("track1.kind", "metadata");
48+
testExpected("track1.id", "1768");
49+
testExpected("track1.inBandMetadataTrackDispatchType", "C005044554A2");
50+
run("cues1 = track1.cues");
51+
testExpected("cues1.length", "1");
52+
testDataCue("cues1[0]", [224, 0, 114, 0, 0, 0, 3, 0, 0, 8, 0, 255, 255, 255, 0, 1, 0, 224, 94, 1, 1, 0, 0, 0, 0, 0, 0, 0, 100, 16, 82, 0, 80, 108, 105, 100, 58, 47, 47, 105, 98, 46, 116, 118, 119, 111, 114, 107, 115, 46, 99, 111, 109, 47, 67, 97, 98, 108, 101, 108, 97, 98, 115, 95, 78, 97, 116, 105, 111, 110, 97, 108, 95, 101, 116, 118, 95, 115, 116, 114, 101, 97, 109, 95, 99, 111, 110, 102, 105, 103, 47, 109, 97, 105, 110, 97, 112, 112, 47, 49, 46, 48, 47, 109, 97, 105, 110, 95, 112, 114, 46, 112, 114, 90, 3, 153, 38]);
53+
consoleWrite("");
54+
55+
run("track2 = video.textTracks[2]");
56+
run("track2.mode = 'hidden'");
57+
testExpected("track2.kind", "metadata");
58+
testExpected("track2.id", "45");
59+
testExpected("track2.inBandMetadataTrackDispatchType", "86");
60+
testExpected("track2.cues.length", "0");
61+
consoleWrite("");
62+
63+
run("track3 = video.textTracks[3]");
64+
run("track3.mode = 'hidden'");
65+
testExpected("track3.kind", "metadata");
66+
testExpected("track3.id", "36");
67+
testExpected("track3.inBandMetadataTrackDispatchType", "81");
68+
testExpected("track3.cues.length", "0");
69+
consoleWrite("");
70+
71+
endTest();
72+
}
73+
</script>
74+
</head>
75+
<body>
76+
<video src="../../content/user-private-streams.ts" oncanplaythrough="start()" controls></video>
77+
<p>Check for metadata tracks from MPEG-TS file.</p>
78+
</body>
79+
</html>

Source/WebCore/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2722,6 +2722,7 @@ if (ENABLE_VIDEO_TRACK)
27222722
html/track/AudioTrackList.cpp
27232723
html/track/BufferedLineReader.cpp
27242724
html/track/DataCue.cpp
2725+
html/track/InbandDataTextTrack.cpp
27252726
html/track/InbandGenericTextTrack.cpp
27262727
html/track/InbandTextTrack.cpp
27272728
html/track/InbandWebVTTTextTrack.cpp

Source/WebCore/ChangeLog

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
1+
2014-04-09 Brendan Long <b.long@cablelabs.com>
2+
3+
[GStreamer] Expose MPEG-TS metadata
4+
https://bugs.webkit.org/show_bug.cgi?id=122001
5+
6+
Reviewed by Eric Carlson.
7+
8+
Test: media/track/in-band/track-in-band-mpegts-metadata.html
9+
10+
* CMakeLists.txt: Add InbandDataTextTrack.
11+
* PlatformGTK.cmake: Look for gstreamer-mpegts and use it if available.
12+
* WebCore.vcxproj/WebCore.vcxproj: Add InbandDataTextTrack.
13+
* WebCore.vcxproj/WebCore.vcxproj.filters: Same.
14+
* WebCore.xcodeproj/project.pbxproj: Same.
15+
* html/track/DataCue.cpp:
16+
(WebCore::DataCue::DataCue): Add a constructor using raw data.
17+
* html/track/DataCue.h:
18+
(WebCore::DataCue::create): Same.
19+
* html/track/InbandDataTextTrack.cpp: Added, InbandTextTrack which implements addDataCue().
20+
* html/track/InbandDataTextTrack.h:
21+
* html/track/InbandGenericTextTrack.h: Move unimplemented methods to InbandTextTrack.
22+
* html/track/InbandWebVTTTextTrack.h: Same.
23+
* html/track/InbandTextTrack.h: Same, and add inBandMetadataTrackDispatchType.
24+
* html/track/InbandTextTrack.cpp:
25+
(WebCore::InbandTextTrack::create): Add constructor for InbandDataTextTrack.
26+
(WebCore::InbandTextTrack::inBandMetadataTrackDispatchType): Added.
27+
* html/track/TextTrack.h:
28+
(WebCore::TextTrack::inBandMetadataTrackDispatchType): Added (empty).
29+
* html/track/TextTrack.idl: Add inBandMetadataTrackDispatchType.
30+
* platform/graphics/InbandTextTrackPrivate.h: Add inBandMetadataTrackDispatchType and Data format.
31+
(WebCore::InbandTextTrackPrivate::inBandMetadataTrackDispatchType):
32+
* platform/graphics/InbandTextTrackPrivateClient.h: Add addDataCue() method.
33+
* platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
34+
(WebCore::InbandMetadataTextTrackPrivateGStreamer::create): Allow specifying the cue format and id.
35+
(WebCore::InbandMetadataTextTrackPrivateGStreamer::InbandMetadataTextTrackPrivateGStreamer): Same.
36+
(WebCore::InbandMetadataTextTrackPrivateGStreamer::setInBandMetadataTrackDispatchType): Added.
37+
(WebCore::InbandMetadataTextTrackPrivateGStreamer::addDataCue): Added.
38+
(WebCore::InbandMetadataTextTrackPrivateGStreamer::addGenericCue): Added.
39+
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
40+
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Check for MPEG-TS sections.
41+
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection): Add MPEG-TS section metadata, and get inBandMetadataTrackDispatchType from the PMT.
42+
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContents): Explicitly use Generic CueFormat.
43+
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
44+
145
2014-04-08 Chris Fleizach <cfleizach@apple.com>
246

347
AX: Make AXPress much more reliable on the Web

Source/WebCore/PlatformGTK.cmake

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,16 @@ if (ENABLE_VIDEO)
343343
${GSTREAMER_TAG_LIBRARIES}
344344
${GSTREAMER_VIDEO_LIBRARIES}
345345
)
346+
347+
if (USE_GSTREAMER_MPEGTS)
348+
list(APPEND WebCore_INCLUDE_DIRECTORIES
349+
${GSTREAMER_MPEGTS_INCLUDE_DIRS}
350+
)
351+
352+
list(APPEND WebCore_LIBRARIES
353+
${GSTREAMER_MPEGTS_LIBRARIES}
354+
)
355+
endif ()
346356
endif ()
347357

348358
if (ENABLE_WEB_AUDIO)
@@ -455,12 +465,17 @@ list(APPEND GObjectDOMBindings_SOURCES
455465

456466
list(APPEND GObjectDOMBindings_IDL_FILES
457467
Modules/battery/BatteryManager.idl
468+
458469
Modules/gamepad/Gamepad.idl
459470
Modules/gamepad/GamepadList.idl
471+
460472
Modules/geolocation/Geolocation.idl
473+
461474
Modules/mediasource/VideoPlaybackQuality.idl
475+
462476
Modules/quota/StorageInfo.idl
463477
Modules/quota/StorageQuota.idl
478+
464479
Modules/webdatabase/Database.idl
465480

466481
css/CSSRule.idl

Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15869,6 +15869,7 @@
1586915869
<ClCompile Include="..\html\shadow\TextControlInnerElements.cpp" />
1587015870
<ClCompile Include="..\html\track\BufferedLineReader.cpp" />
1587115871
<ClCompile Include="..\html\track\DataCue.cpp" />
15872+
<ClCompile Include="..\html\track\InbandDataTextTrack.cpp" />
1587215873
<ClCompile Include="..\html\track\InbandGenericTextTrack.cpp" />
1587315874
<ClCompile Include="..\html\track\InbandTextTrack.cpp" />
1587415875
<ClCompile Include="..\html\track\InbandWebVTTTextTrack.cpp" />
@@ -20669,6 +20670,7 @@
2066920670
<ClInclude Include="..\html\shadow\TextControlInnerElements.h" />
2067020671
<ClInclude Include="..\html\track\BufferedLineReader.h" />
2067120672
<ClInclude Include="..\html\track\DataCue.h" />
20673+
<ClInclude Include="..\html\track\InbandDataTextTrack.h" />
2067220674
<ClInclude Include="..\html\track\InbandGenericTextTrack.h" />
2067320675
<ClInclude Include="..\html\track\InbandTextTrack.h" />
2067420676
<ClInclude Include="..\html\track\InbandWebVTTTextTrack.h" />
@@ -21140,4 +21142,4 @@
2114021142
<ImportGroup Label="ExtensionTargets">
2114121143
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
2114221144
</ImportGroup>
21143-
</Project>
21145+
</Project>

Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4176,6 +4176,9 @@
41764176
<ClCompile Include="..\html\track\DataCue.cpp">
41774177
<Filter>html\track</Filter>
41784178
</ClCompile>
4179+
<ClCompile Include="..\html\track\InbandDataTextTrack.cpp">
4180+
<Filter>html\track</Filter>
4181+
</ClCompile>
41794182
<ClCompile Include="..\html\track\InbandGenericTextTrack.cpp">
41804183
<Filter>html\track</Filter>
41814184
</ClCompile>
@@ -11260,6 +11263,9 @@
1126011263
<ClInclude Include="..\html\track\DataCue.h">
1126111264
<Filter>html\track</Filter>
1126211265
</ClInclude>
11266+
<ClInclude Include="..\html\track\InbandDataTextTrack.h">
11267+
<Filter>html\track</Filter>
11268+
</ClInclude>
1126311269
<ClInclude Include="..\html\track\InbandGenericTextTrack.h">
1126411270
<Filter>html\track</Filter>
1126511271
</ClInclude>

0 commit comments

Comments
 (0)