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.
|
// Returns true if the writer is seekable.
|
||||||
virtual bool Seekable() const = 0;
|
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:
|
protected:
|
||||||
IMkvWriter();
|
IMkvWriter();
|
||||||
virtual ~IMkvWriter();
|
virtual ~IMkvWriter();
|
||||||
|
@ -213,6 +213,8 @@ int32 WriteID(IMkvWriter* writer, uint64 type) {
|
|||||||
if (!writer)
|
if (!writer)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
writer->ElementStartNotify(type, writer->Position());
|
||||||
|
|
||||||
const int32 size = GetUIntSize(type);
|
const int32 size = GetUIntSize(type);
|
||||||
|
|
||||||
return SerializeInt(writer, type, size);
|
return SerializeInt(writer, type, size);
|
||||||
|
@ -88,4 +88,7 @@ bool MkvWriter::Seekable() const {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MkvWriter::ElementStartNotify(uint64, int64) {
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace mkvmuxer
|
} // namespace mkvmuxer
|
||||||
|
@ -26,6 +26,7 @@ class MkvWriter : public IMkvWriter {
|
|||||||
virtual int64 Position() const;
|
virtual int64 Position() const;
|
||||||
virtual int32 Position(int64 position);
|
virtual int32 Position(int64 position);
|
||||||
virtual bool Seekable() const;
|
virtual bool Seekable() const;
|
||||||
|
virtual void ElementStartNotify(uint64 element_id, int64 position);
|
||||||
virtual int32 Write(const void* buffer, uint32 length);
|
virtual int32 Write(const void* buffer, uint32 length);
|
||||||
|
|
||||||
// Creates and opens a file for writing. |filename| is the name of the file
|
// Creates and opens a file for writing. |filename| is the name of the file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user