OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 | 49 |
50 virtual ~WebSourceBuffer() { } | 50 virtual ~WebSourceBuffer() { } |
51 | 51 |
52 // This will only be called once and only with a non-null pointer to a | 52 // This will only be called once and only with a non-null pointer to a |
53 // client whose ownership is not transferred to this WebSourceBuffer. | 53 // client whose ownership is not transferred to this WebSourceBuffer. |
54 virtual void setClient(WebSourceBufferClient*) = 0; | 54 virtual void setClient(WebSourceBufferClient*) = 0; |
55 | 55 |
56 virtual bool setMode(AppendMode) = 0; | 56 virtual bool setMode(AppendMode) = 0; |
57 virtual WebTimeRanges buffered() = 0; | 57 virtual WebTimeRanges buffered() = 0; |
58 | 58 |
| 59 // Returns the highest buffered presentation timestamp of all buffered coded |
| 60 // frames, or 0 if nothing is buffered. |
| 61 virtual double highestPresentationTimestamp() = 0; |
| 62 |
59 // Run coded frame eviction/garbage collection algorithm. | 63 // Run coded frame eviction/garbage collection algorithm. |
60 // |currentPlaybackTime| is HTMLMediaElement::currentTime. The algorithm | 64 // |currentPlaybackTime| is HTMLMediaElement::currentTime. The algorithm |
61 // will try to preserve data around current playback position. | 65 // will try to preserve data around current playback position. |
62 // |newDataSize| is size of new data about to be appended to SourceBuffer. | 66 // |newDataSize| is size of new data about to be appended to SourceBuffer. |
63 // Could be zero for appendStream if stream size is unknown in advance. | 67 // Could be zero for appendStream if stream size is unknown in advance. |
64 // Returns false if buffer is still full after eviction. | 68 // Returns false if buffer is still full after eviction. |
65 virtual bool evictCodedFrames(double currentPlaybackTime, size_t newDataSize
) = 0; | 69 virtual bool evictCodedFrames(double currentPlaybackTime, size_t newDataSize
) = 0; |
66 | 70 |
67 // Appends data and runs the segment parser loop algorithm. | 71 // Appends data and runs the segment parser loop algorithm. |
68 // The algorithm may update |*timestampOffset| if |timestampOffset| is not n
ull. | 72 // The algorithm may update |*timestampOffset| if |timestampOffset| is not n
ull. |
(...skipping 12 matching lines...) Expand all Loading... |
81 virtual void setAppendWindowEnd(double) = 0; | 85 virtual void setAppendWindowEnd(double) = 0; |
82 | 86 |
83 // After this method is called, this WebSourceBuffer should never use the | 87 // After this method is called, this WebSourceBuffer should never use the |
84 // client pointer passed to setClient(). | 88 // client pointer passed to setClient(). |
85 virtual void removedFromMediaSource() = 0; | 89 virtual void removedFromMediaSource() = 0; |
86 }; | 90 }; |
87 | 91 |
88 } // namespace blink | 92 } // namespace blink |
89 | 93 |
90 #endif | 94 #endif |
OLD | NEW |