mkvmuxer: Add element start notification.
Just before the first byte of an element identifier is written the muxer calls IMkvWriter::ElementStartNotify to report the position of the element in the WebM stream. Change-Id: Iac40090587bd9496b05f41203aace00902f5606e
This commit is contained in:
parent
01d5924817
commit
1e37a264f1
@ -35,6 +35,13 @@ class IMkvWriter {
|
||||
// Returns true if the writer is seekable.
|
||||
virtual bool Seekable() const = 0;
|
||||
|
||||
// Element start notification. Called whenever an element identifier is about
|
||||
// to be written to the stream. |element_id| is the element identifier, and
|
||||
// |position| is the location in the WebM stream where the first octet of the
|
||||
// element identifier will be written.
|
||||
// Note: the |MkvId| enumeration in webmids.hpp defines element values.
|
||||
virtual void ElementStartNotify(uint64 element_id, int64 position) = 0;
|
||||
|
||||
protected:
|
||||
IMkvWriter();
|
||||
virtual ~IMkvWriter();
|
||||
|
@ -213,6 +213,8 @@ int32 WriteID(IMkvWriter* writer, uint64 type) {
|
||||
if (!writer)
|
||||
return -1;
|
||||
|
||||
writer->ElementStartNotify(type, writer->Position());
|
||||
|
||||
const int32 size = GetUIntSize(type);
|
||||
|
||||
return SerializeInt(writer, type, size);
|
||||
|
@ -88,4 +88,7 @@ bool MkvWriter::Seekable() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
void MkvWriter::ElementStartNotify(uint64, int64) {
|
||||
}
|
||||
|
||||
} // namespace mkvmuxer
|
||||
|
@ -26,6 +26,7 @@ class MkvWriter : public IMkvWriter {
|
||||
virtual int64 Position() const;
|
||||
virtual int32 Position(int64 position);
|
||||
virtual bool Seekable() const;
|
||||
virtual void ElementStartNotify(uint64 element_id, int64 position);
|
||||
virtual int32 Write(const void* buffer, uint32 length);
|
||||
|
||||
// Creates and opens a file for writing. |filename| is the name of the file
|
||||
|
Loading…
x
Reference in New Issue
Block a user