mirror of
https://github.com/mpv-player/mpv
synced 2024-11-07 01:47:00 +01:00
4efadb2808
This commit introduces logic to read other volumes from the same source as the primary archive. Both .rar formats as well as 7z are supported for now. It also changes the libarchive callback structure to be per-volume consistent with the libarchive intenal client data array constructed with archive_read_append_callback_data. Added open, close and switch callbacks. Only the latter is strictly required to make sure that the streams always start at position 0, but leaving all volumes open can eat a lot of memory for archives with many parts.
14 lines
321 B
C
14 lines
321 B
C
struct mp_log;
|
|
|
|
struct mp_archive {
|
|
struct archive *arch;
|
|
struct stream *primary_src;
|
|
char buffer[4096];
|
|
};
|
|
|
|
void mp_archive_free(struct mp_archive *mpa);
|
|
|
|
#define MP_ARCHIVE_FLAG_UNSAFE 1
|
|
struct mp_archive *mp_archive_new(struct mp_log *log, struct stream *src,
|
|
int flags);
|