Browse Source

Simplify klv_decode_ber_length

Originally committed as revision 7475 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Reimar Döffinger 19 years ago
parent
commit
1fe68f0e7c
1 changed files with 4 additions and 8 deletions
  1. +4
    -8
      libavformat/mxf.c

+ 4
- 8
libavformat/mxf.c View File

@@ -182,19 +182,15 @@ static const uint8_t mxf_essence_element_key[] = { 0x06,0x0e,0x2b,0x

static int64_t klv_decode_ber_length(ByteIOContext *pb)
{
int64_t size = 0;
uint8_t length = get_byte(pb);
int type = length >> 7;

if (type) { /* long form */
int bytes_num = length & 0x7f;
uint64_t size = get_byte(pb);
if (size & 0x80) { /* long form */
int bytes_num = size & 0x7f;
/* SMPTE 379M 5.3.4 guarantee that bytes_num must not exceed 8 bytes */
if (bytes_num > 8)
return -1;
size = 0;
while (bytes_num--)
size = size << 8 | get_byte(pb);
} else {
size = length & 0x7f;
}
return size;
}


Loading…
Cancel
Save