New API calls iso_tree_clone(), iso_stream_clone.

New IsoFileSourceIface version 2 with method clone_src().
New IsoStreamIface version 4 with method clone_stream().
New public function prototype iso_node_xinfo_cloner.
New API calls iso_node_xinfo_make_clonable(), iso_node_xinfo_get_cloner().
New public iso_node_xinfo_cloner instance aaip_xinfo_cloner().
New API calls iso_node_get_next_xinfo(), iso_node_remove_all_xinfo().
New API call iso_node_remove_tree().
This commit is contained in:
2011-02-01 19:16:45 +01:00
parent 74c68224c7
commit 1082e628d1
15 changed files with 891 additions and 155 deletions

View File

@ -41,7 +41,7 @@
* for classical pipe filtering.
*/
/* IMPORTANT: Any change must be reflected by extf_clone_stream() */
/*
* Individual runtime properties exist only as long as the stream is opened.
*/
@ -606,6 +606,9 @@ int extf_clone_stream(IsoStream *old_stream, IsoStream **new_stream, int flag)
IsoStream *new_input_stream, *stream;
ExternalFilterStreamData *stream_data, *old_stream_data;
if (flag)
return ISO_STREAM_NO_CLONE; /* unknown option required */
stream_data = calloc(1, sizeof(ExternalFilterStreamData));
if (stream_data == NULL)
return ISO_OUT_OF_MEM;

View File

@ -154,7 +154,7 @@ static int gzip_compression_level = 6;
/*
* The data payload of an individual Gzip Filter IsoStream
*/
/* IMPORTANT: Any change must be reflected by >>> _clone() */
/* IMPORTANT: Any change must be reflected by gzip_clone_stream() */
typedef struct
{
IsoStream *orig;
@ -538,6 +538,9 @@ int gzip_clone_stream(IsoStream *old_stream, IsoStream **new_stream, int flag)
IsoStream *new_input_stream, *stream;
GzipFilterStreamData *stream_data, *old_stream_data;
if (flag)
return ISO_STREAM_NO_CLONE; /* unknown option required */
stream_data = calloc(1, sizeof(GzipFilterStreamData));
if (stream_data == NULL)
return ISO_OUT_OF_MEM;

View File

@ -168,7 +168,7 @@ static int ziso_compression_level = 6;
/*
* The common data payload of an individual Zisofs Filter IsoStream
* IMPORTANT: Any change must be reflected by ziso_clone_stream.
* IMPORTANT: Any change must be reflected by ziso_clone_stream().
*/
typedef struct
{
@ -185,7 +185,7 @@ typedef struct
/*
* The data payload of an individual Zisofs Filter Compressor IsoStream
* IMPORTANT: Any change must be reflected by ziso_clone_stream.
* IMPORTANT: Any change must be reflected by ziso_clone_stream().
*/
typedef struct
{
@ -201,7 +201,7 @@ typedef struct
/*
* The data payload of an individual Zisofs Filter Uncompressor IsoStream
* IMPORTANT: Any change must be reflected by ziso_clone_stream.
* IMPORTANT: Any change must be reflected by ziso_clone_stream().
*/
typedef struct
{
@ -792,6 +792,9 @@ int ziso_clone_stream(IsoStream *old_stream, IsoStream **new_stream, int flag)
ZisofsUncomprStreamData *uncompr, *old_uncompr;
ZisofsComprStreamData *compr, *old_compr;
if (flag)
return ISO_STREAM_NO_CLONE; /* unknown option required */
ret = iso_stream_clone_filter_common(old_stream, &stream,
&new_input_stream, 0);
if (ret < 0)