summaryrefslogtreecommitdiff
path: root/src/demuxers/ebml.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/demuxers/ebml.c')
-rw-r--r--src/demuxers/ebml.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/demuxers/ebml.c b/src/demuxers/ebml.c
index 75fbfde75..ce53e6c8a 100644
--- a/src/demuxers/ebml.c
+++ b/src/demuxers/ebml.c
@@ -211,14 +211,13 @@ int ebml_skip(ebml_parser_t *ebml, ebml_elem_t *elem) {
int ebml_read_elem_head(ebml_parser_t *ebml, ebml_elem_t *elem) {
- if (!ebml_read_elem_id(ebml, &elem->id))
- return 0;
+ int ret_id = ebml_read_elem_id(ebml, &elem->id);
- if (!ebml_read_elem_len(ebml, &elem->len))
- return 0;
+ int ret_len = ebml_read_elem_len(ebml, &elem->len);
elem->start = ebml->input->get_current_pos(ebml->input);
- return 1;
+
+ return (ret_id && ret_len);
}
@@ -473,6 +472,7 @@ int ebml_check_header(ebml_parser_t *ebml) {
default:
xprintf(ebml->xine, XINE_VERBOSITY_LOG,
"ebml: Unknown data type 0x%x in EBML header (ignored)\n", elem.id);
+ ebml_skip(ebml, &elem);
}
next_level = ebml_get_next_level(ebml, &elem);
}