IsoStream version 3 with cmp_ino(),

new API call iso_stream_cmp_ino() for proper comparison of filtered streams
This commit is contained in:
2009-05-12 09:29:06 +02:00
parent 5b073a2f29
commit 8c4682ae92
6 changed files with 156 additions and 24 deletions

View File

@@ -775,8 +775,12 @@ IsoStream *ziso_get_input_stream(IsoStream *stream, int flag)
}
static
int ziso_cmp_ino(IsoStream *s1, IsoStream *s2);
IsoStreamIface ziso_stream_compress_class = {
2,
3,
"ziso",
ziso_stream_open,
ziso_stream_close,
@@ -786,12 +790,13 @@ IsoStreamIface ziso_stream_compress_class = {
ziso_stream_get_id,
ziso_stream_free,
ziso_update_size,
ziso_get_input_stream
ziso_get_input_stream,
ziso_cmp_ino
};
IsoStreamIface ziso_stream_uncompress_class = {
2,
3,
"osiz",
ziso_stream_open,
ziso_stream_close,
@@ -801,10 +806,25 @@ IsoStreamIface ziso_stream_uncompress_class = {
ziso_stream_get_id,
ziso_stream_free,
ziso_update_size,
ziso_get_input_stream
ziso_get_input_stream,
ziso_cmp_ino
};
static
int ziso_cmp_ino(IsoStream *s1, IsoStream *s2)
{
if (s1->class != s2->class || (s1->class != &ziso_stream_compress_class &&
s2->class != &ziso_stream_uncompress_class))
iso_stream_cmp_ino(s1, s2, 1);
return iso_stream_cmp_ino(iso_stream_get_input_stream(s1, 0),
iso_stream_get_input_stream(s2, 0), 0);
}
/* ------------------------------------------------------------------------- */
static
void ziso_filter_free(FilterContext *filter)
{