From fb8deb69a6afc311deb2c3f9bfa13e460e03256f Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 18 Jul 2016 12:44:56 +0200 Subject: libarchive: unify entry iteration between stream/demux layers No really good reason to duplicate this. --- demux/demux_libarchive.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) (limited to 'demux/demux_libarchive.c') diff --git a/demux/demux_libarchive.c b/demux/demux_libarchive.c index 3f1a655726..dcdbe65fc0 100644 --- a/demux/demux_libarchive.c +++ b/demux/demux_libarchive.c @@ -65,23 +65,10 @@ static int open_file(struct demuxer *demuxer, enum demux_check check) char **files = NULL; int num_files = 0; - for (;;) { - struct archive_entry *entry; - int r = archive_read_next_header(mpa->arch, &entry); - if (r == ARCHIVE_EOF) - break; - if (r < ARCHIVE_OK) - MP_ERR(demuxer, "%s\n", archive_error_string(mpa->arch)); - if (r < ARCHIVE_WARN) - break; - if (archive_entry_filetype(entry) != AE_IFREG) - continue; - const char *fn = archive_entry_pathname(entry); - // Some archives may have no filenames. - if (!fn) - fn = talloc_asprintf(mpa, "mpv_unknown#%d\n", num_files); + while (mp_archive_next_entry(mpa)) { // stream_libarchive.c does the real work - char *f = talloc_asprintf(mpa, "archive://%s|%s", prefix, fn); + char *f = talloc_asprintf(mpa, "archive://%s|%s", prefix, + mpa->entry_filename); MP_TARRAY_APPEND(mpa, files, num_files, f); } -- cgit v1.2.3