summaryrefslogtreecommitdiffstats
path: root/demux/demux_mkv.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-04-13 18:44:11 +0200
committerwm4 <wm4@nowhere>2013-04-20 23:28:22 +0200
commit1d6558d9c89cd04ee98dedbd917de770234d0914 (patch)
tree22a741570488f17fa39da0714b2b907529e9270b /demux/demux_mkv.c
parent4b562bdf208feb637a05f688fa39c8cf3be41fda (diff)
downloadmpv-1d6558d9c89cd04ee98dedbd917de770234d0914.tar.bz2
mpv-1d6558d9c89cd04ee98dedbd917de770234d0914.tar.xz
demux_mkv: get rid of the duplicated lace case labels
Also change the extracting of the lace type bitfield from flags to make it more apparent that the value range is 0-3.
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r--demux/demux_mkv.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index bc66ceaaf7..aa0ab47fad 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -1806,20 +1806,16 @@ static int demux_mkv_read_block_lacing(bstr *buffer, int *laces,
if (!bstr_read_u8(buffer, &flags))
goto error;
- switch ((flags & 0x06) >> 1) {
- case 0: /* no lacing */
+ int type = (flags >> 1) & 0x03;
+ if (type == 0) { /* no lacing */
*laces = 1;
lace_size[0] = buffer->len;
- break;
-
- case 1: /* xiph lacing */
- case 2: /* fixed-size lacing */
- case 3: /* EBML lacing */
+ } else {
if (!bstr_read_u8(buffer, &t))
goto error;
*laces = t + 1;
- switch ((flags & 0x06) >> 1) {
+ switch (type) {
case 1: /* xiph lacing */
for (i = 0; i < *laces - 1; i++) {
lace_size[i] = 0;
@@ -1860,7 +1856,6 @@ static int demux_mkv_read_block_lacing(bstr *buffer, int *laces,
lace_size[i] = buffer->len - total;
break;
}
- break;
}
return 0;