Commit 96e5e892 authored by conrad's avatar conrad

put_ebml_void()


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@10311 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent fafdf4f8
...@@ -90,6 +90,24 @@ static void put_ebml_string(ByteIOContext *pb, unsigned int elementid, const cha ...@@ -90,6 +90,24 @@ static void put_ebml_string(ByteIOContext *pb, unsigned int elementid, const cha
put_ebml_binary(pb, elementid, str, strlen(str)); put_ebml_binary(pb, elementid, str, strlen(str));
} }
// this reserves exactly the amount of space specified by size, which must be at least 2
static void put_ebml_void(ByteIOContext *pb, uint64_t size)
{
offset_t currentpos = url_ftell(pb);
if (size < 2)
return;
put_ebml_id(pb, EBML_ID_VOID);
// we need to subtract the length needed to store the size from the size we need to reserve
// so 2 cases, we use 8 bytes to store the size if possible, 1 byte otherwise
if (size < 10)
put_ebml_size(pb, size-1, 0);
else
put_ebml_size(pb, size-9, 7);
url_fseek(pb, currentpos + size, SEEK_SET);
}
static offset_t start_ebml_master(ByteIOContext *pb, unsigned int elementid) static offset_t start_ebml_master(ByteIOContext *pb, unsigned int elementid)
{ {
put_ebml_id(pb, elementid); put_ebml_id(pb, elementid);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment