[vala/0.52] gstreamer: Update from 1.19.0+ git master
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/0.52] gstreamer: Update from 1.19.0+ git master
- Date: Thu, 27 May 2021 07:19:26 +0000 (UTC)
commit aff2359567fa5dc864fd670dd30aee6c17a22b9e
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Wed May 26 17:04:39 2021 +0200
gstreamer: Update from 1.19.0+ git master
vapi/gst-editing-services-1.0.vapi | 9 ++-
vapi/gstreamer-1.0.vapi | 6 ++
vapi/gstreamer-app-1.0.vapi | 34 +++++++++
vapi/gstreamer-video-1.0.vapi | 144 +++++++++++--------------------------
vapi/gstreamer-webrtc-1.0.vapi | 17 +++--
5 files changed, 103 insertions(+), 107 deletions(-)
---
diff --git a/vapi/gst-editing-services-1.0.vapi b/vapi/gst-editing-services-1.0.vapi
index 6875ba3d3..252bba44f 100644
--- a/vapi/gst-editing-services-1.0.vapi
+++ b/vapi/gst-editing-services-1.0.vapi
@@ -405,6 +405,9 @@ namespace GES {
protected Source ();
[NoWrapper]
[Version (since = "1.20")]
+ public virtual unowned Gst.Element create_source ();
+ [NoWrapper]
+ [Version (since = "1.20")]
public virtual bool select_pad (Gst.Pad pad);
}
[CCode (cheader_filename = "ges/ges.h", type_id = "ges_source_clip_get_type ()")]
@@ -749,6 +752,10 @@ namespace GES {
public virtual void changed ();
[Version (since = "1.18")]
public void clamp_control_source (string property_name);
+ [NoWrapper]
+ public virtual unowned Gst.Element create_element ();
+ [NoWrapper]
+ public virtual unowned Gst.Element create_gnl_object ();
[Version (deprecated = true, deprecated_since = "1.18")]
public bool edit (GLib.List<GES.Layer>? layers, GES.EditMode mode, GES.Edge edge, uint64
position);
public unowned GLib.HashTable<string,Gst.ControlBinding> get_all_control_bindings ();
@@ -768,7 +775,7 @@ namespace GES {
[CCode (array_length_pos = 0.1, array_length_type = "guint")]
[Version (deprecated = true)]
public GLib.ParamSpec[] list_children_properties ();
- [Version (deprecated = true)]
+ [Version (deprecated = true, deprecated_since = "1.14")]
public virtual bool lookup_child (string prop_name, out Gst.Element element, out
GLib.ParamSpec pspec);
public bool remove_control_binding (string property_name);
public bool set_active (bool active);
diff --git a/vapi/gstreamer-1.0.vapi b/vapi/gstreamer-1.0.vapi
index 296c2db60..466420c97 100644
--- a/vapi/gstreamer-1.0.vapi
+++ b/vapi/gstreamer-1.0.vapi
@@ -698,6 +698,9 @@ namespace Gst {
public void append_memory (owned Gst.Memory mem);
[DestroysInstance]
public Gst.Buffer append_region (owned Gst.Buffer buf2, ssize_t offset, ssize_t size);
+ [CCode (has_construct_function = false)]
+ [Version (since = "1.20")]
+ public Buffer.copy ([CCode (array_length_cname = "size", array_length_pos = 1.1,
array_length_type = "gsize")] uint8[] data);
[Version (since = "1.6")]
public Gst.Buffer copy_deep ();
[CCode (instance_pos = 1.9)]
@@ -1312,6 +1315,7 @@ namespace Gst {
public unowned Gst.PadTemplate? get_pad_template (string name);
[Version (since = "1.14")]
public unowned GLib.List<Gst.PadTemplate> get_pad_template_list ();
+ [Version (deprecated = true, deprecated_since = "1.20")]
public Gst.Pad? get_request_pad (string name);
public Gst.ClockTime get_start_time ();
public virtual Gst.StateChangeReturn get_state (out Gst.State state, out Gst.State pending,
Gst.ClockTime timeout);
@@ -1347,6 +1351,8 @@ namespace Gst {
public void remove_property_notify_watch (ulong watch_id);
[CCode (vfunc_name = "request_new_pad")]
public virtual Gst.Pad? request_pad (Gst.PadTemplate templ, string? name, Gst.Caps? caps);
+ [Version (since = "1.20")]
+ public Gst.Pad? request_pad_simple (string name);
public bool seek (double rate, Gst.Format format, Gst.SeekFlags flags, Gst.SeekType
start_type, int64 start, Gst.SeekType stop_type, int64 stop);
public bool seek_simple (Gst.Format format, Gst.SeekFlags seek_flags, int64 seek_pos);
public virtual bool send_event (owned Gst.Event event);
diff --git a/vapi/gstreamer-app-1.0.vapi b/vapi/gstreamer-app-1.0.vapi
index 47dee43ea..887a56cca 100644
--- a/vapi/gstreamer-app-1.0.vapi
+++ b/vapi/gstreamer-app-1.0.vapi
@@ -51,13 +51,23 @@ namespace Gst {
[CCode (has_construct_function = false)]
protected Src ();
public Gst.Caps get_caps ();
+ [Version (since = "1.20")]
+ public uint64 get_current_level_buffers ();
[Version (since = "1.2")]
public uint64 get_current_level_bytes ();
+ [Version (since = "1.20")]
+ public Gst.ClockTime get_current_level_time ();
[Version (since = "1.10")]
public Gst.ClockTime get_duration ();
public bool get_emit_signals ();
public void get_latency (out uint64 min, out uint64 max);
+ [Version (since = "1.20")]
+ public Gst.App.LeakyType get_leaky_type ();
+ [Version (since = "1.20")]
+ public uint64 get_max_buffers ();
public uint64 get_max_bytes ();
+ [Version (since = "1.20")]
+ public Gst.ClockTime get_max_time ();
public int64 get_size ();
public Gst.App.StreamType get_stream_type ();
public virtual Gst.FlowReturn push_buffer (owned Gst.Buffer buffer);
@@ -68,14 +78,24 @@ namespace Gst {
public void set_duration (Gst.ClockTime duration);
public void set_emit_signals (bool emit);
public void set_latency (uint64 min, uint64 max);
+ [Version (since = "1.20")]
+ public void set_leaky_type (Gst.App.LeakyType leaky);
+ [Version (since = "1.20")]
+ public void set_max_buffers (uint64 max);
public void set_max_bytes (uint64 max);
+ [Version (since = "1.20")]
+ public void set_max_time (Gst.ClockTime max);
public void set_size (int64 size);
public void set_stream_type (Gst.App.StreamType type);
[NoAccessorMethod]
public bool block { get; set; }
public Gst.Caps caps { owned get; set; }
+ [Version (since = "1.20")]
+ public uint64 current_level_buffers { get; }
[Version (since = "1.2")]
public uint64 current_level_bytes { get; }
+ [Version (since = "1.20")]
+ public uint64 current_level_time { get; }
[Version (since = "1.10")]
public uint64 duration { get; set; }
public bool emit_signals { get; set; }
@@ -86,9 +106,15 @@ namespace Gst {
public bool handle_segment_change { get; set; }
[NoAccessorMethod]
public bool is_live { get; set; }
+ [Version (since = "1.20")]
+ public Gst.App.LeakyType leaky_type { get; set; }
+ [Version (since = "1.20")]
+ public uint64 max_buffers { get; set; }
public uint64 max_bytes { get; set; }
[NoAccessorMethod]
public int64 max_latency { get; set; }
+ [Version (since = "1.20")]
+ public uint64 max_time { get; set; }
[NoAccessorMethod]
public int64 min_latency { get; set; }
[NoAccessorMethod]
@@ -109,6 +135,14 @@ namespace Gst {
public virtual signal Gst.FlowReturn push_sample (Gst.Sample sample);
public virtual signal bool seek_data (uint64 offset);
}
+ [CCode (cheader_filename = "gst/app/app.h", cprefix = "GST_APP_LEAKY_TYPE_", type_id =
"gst_app_leaky_type_get_type ()")]
+ [GIR (name = "AppLeakyType")]
+ [Version (since = "1.20")]
+ public enum LeakyType {
+ NONE,
+ UPSTREAM,
+ DOWNSTREAM
+ }
[CCode (cheader_filename = "gst/app/app.h", cprefix = "GST_APP_STREAM_TYPE_", type_id =
"gst_app_stream_type_get_type ()")]
[GIR (name = "AppStreamType")]
public enum StreamType {
diff --git a/vapi/gstreamer-video-1.0.vapi b/vapi/gstreamer-video-1.0.vapi
index ac2d7a6d3..8ce7cd790 100644
--- a/vapi/gstreamer-video-1.0.vapi
+++ b/vapi/gstreamer-video-1.0.vapi
@@ -16,6 +16,8 @@ namespace Gst {
public virtual Gst.FlowReturn create_output_buffer (Gst.Buffer outbuffer);
[NoWrapper]
public virtual void find_best_format (Gst.Caps downstream_caps, Gst.Video.Info
best_info, bool at_least_one_alpha);
+ [Version (since = "1.20")]
+ public Gst.TaskPool get_execution_task_pool ();
[NoWrapper]
public virtual Gst.Caps update_caps (Gst.Caps caps);
}
@@ -45,6 +47,12 @@ namespace Gst {
public bool has_current_buffer ();
[NoWrapper]
public virtual bool prepare_frame (Gst.Video.Aggregator videoaggregator, Gst.Buffer
buffer, Gst.Video.Frame prepared_frame);
+ [NoWrapper]
+ [Version (since = "1.20")]
+ public virtual void prepare_frame_finish (Gst.Video.Aggregator videoaggregator,
Gst.Video.Frame prepared_frame);
+ [NoWrapper]
+ [Version (since = "1.20")]
+ public virtual void prepare_frame_start (Gst.Video.Aggregator videoaggregator,
Gst.Buffer buffer, Gst.Video.Frame prepared_frame);
public void set_needs_alpha (bool needs_alpha);
[NoWrapper]
public virtual void update_conversion_info ();
@@ -55,6 +63,13 @@ namespace Gst {
[NoAccessorMethod]
public uint zorder { get; set; }
}
+ [CCode (cheader_filename = "gst/video/video.h", type_id =
"gst_video_aggregator_parallel_convert_pad_get_type ()")]
+ [GIR (name = "VideoAggregatorParallelConvertPad")]
+ [Version (since = "1.20")]
+ public class AggregatorParallelConvertPad : Gst.Video.AggregatorConvertPad {
+ [CCode (has_construct_function = false)]
+ protected AggregatorParallelConvertPad ();
+ }
[CCode (cheader_filename = "gst/video/video.h", type_id = "gst_video_buffer_pool_get_type
()")]
[GIR (name = "VideoBufferPool")]
public class BufferPool : Gst.BufferPool {
@@ -117,6 +132,8 @@ namespace Gst {
public class Converter {
[Version (since = "1.6")]
public void frame (Gst.Video.Frame src, Gst.Video.Frame dest);
+ [Version (since = "1.20")]
+ public void frame_finish ();
[Version (since = "1.6")]
public void free ();
public unowned Gst.Structure get_config ();
@@ -662,6 +679,13 @@ namespace Gst {
public size_t size;
}
[CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
+ [GIR (name = "VideoCodecAlphaMeta")]
+ [Version (since = "1.20")]
+ public struct CodecAlphaMeta {
+ public Gst.Meta meta;
+ public weak Gst.Buffer buffer;
+ }
+ [CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
[GIR (name = "VideoColorPrimariesInfo")]
[Version (since = "1.6")]
public struct ColorPrimariesInfo {
@@ -676,39 +700,6 @@ namespace Gst {
public double By;
}
[CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
- [GIR (name = "VideoColorVolumeTransformation")]
- [Version (since = "1.20")]
- public struct ColorVolumeTransformation {
- public uint16 window_upper_left_corner_x;
- public uint16 window_upper_left_corner_y;
- public uint16 window_lower_right_corner_x;
- public uint16 window_lower_right_corner_y;
- public uint16 center_of_ellipse_x;
- public uint16 center_of_ellipse_y;
- public uint8 rotation_angle;
- public uint16 semimajor_axis_internal_ellipse;
- public uint16 semimajor_axis_external_ellipse;
- public uint16 semiminor_axis_external_ellipse;
- public uint8 overlap_process_option;
- [CCode (array_length = false)]
- public weak uint32 maxscl[3];
- public uint32 average_maxrgb;
- public uint8 num_distribution_maxrgb_percentiles;
- [CCode (array_length = false)]
- public weak uint8 distribution_maxrgb_percentages[16];
- [CCode (array_length_cname = "num_distribution_maxrgb_percentiles", array_length_type
= "guint8")]
- public weak uint32 distribution_maxrgb_percentiles[16];
- public uint16 fraction_bright_pixels;
- public uint8 tone_mapping_flag;
- public uint16 knee_point_x;
- public uint16 knee_point_y;
- public uint8 num_bezier_curve_anchors;
- [CCode (array_length_cname = "num_bezier_curve_anchors", array_length_type =
"guint8")]
- public weak uint16 bezier_curve_anchors[16];
- public uint8 color_saturation_mapping_flag;
- public uint8 color_saturation_weight;
- }
- [CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
[GIR (name = "VideoColorimetry")]
public struct Colorimetry {
public Gst.Video.ColorRange range;
@@ -805,36 +796,6 @@ namespace Gst {
public bool upload (uint texture_id);
}
[CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
- [GIR (name = "VideoHDR10Plus")]
- [Version (since = "1.20")]
- public struct HDR10Plus {
- public uint8 application_identifier;
- public uint8 application_version;
- public uint8 num_windows;
- [CCode (array_length = false)]
- public weak Gst.Video.ColorVolumeTransformation processing_window[1];
- public uint32 targeted_system_display_maximum_luminance;
- public uint8 targeted_system_display_actual_peak_luminance_flag;
- public uint8 num_rows_targeted_system_display_actual_peak_luminance;
- public uint8 num_cols_targeted_system_display_actual_peak_luminance;
- [CCode (array_length = false)]
- public weak uint8 targeted_system_display_actual_peak_luminance[625];
- public uint8 mastering_display_actual_peak_luminance_flag;
- public uint8 num_rows_mastering_display_actual_peak_luminance;
- public uint8 num_cols_mastering_display_actual_peak_luminance;
- [CCode (array_length = false)]
- public weak uint8 mastering_display_actual_peak_luminance[625];
- }
- [CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
- [GIR (name = "VideoHDRMeta")]
- [Version (since = "1.20")]
- public struct HDRMeta {
- public Gst.Meta meta;
- public Gst.Video.HDRFormat format;
- public uint8 data;
- public size_t size;
- }
- [CCode (cheader_filename = "gst/video/video.h", has_type_id = false)]
[GIR (name = "VideoMasteringDisplayInfo")]
[Version (since = "1.18")]
public struct MasteringDisplayInfo {
@@ -1275,7 +1236,13 @@ namespace Gst {
[Version (since = "1.18")]
NV12_4L4,
[Version (since = "1.18")]
- NV12_32L32
+ NV12_32L32,
+ [Version (since = "1.20")]
+ RGBP,
+ [Version (since = "1.20")]
+ BGRP,
+ [Version (since = "1.20")]
+ AV12
}
[CCode (cheader_filename = "gst/video/video.h", cprefix = "GST_VIDEO_FORMAT_FLAG_", type_id =
"gst_video_format_flags_get_type ()")]
[Flags]
@@ -1339,15 +1306,6 @@ namespace Gst {
NONE,
REMAP
}
- [CCode (cheader_filename = "gst/video/video.h", cprefix = "GST_VIDEO_HDR_FORMAT_",
has_type_id = false)]
- [GIR (name = "VideoHDRFormat")]
- [Version (since = "1.20")]
- public enum HDRFormat {
- NONE,
- HDR10,
- HDR10_PLUS,
- DOLBY_VISION
- }
[CCode (cheader_filename = "gst/video/video.h", cprefix = "GST_VIDEO_INTERLACE_MODE_",
type_id = "gst_video_interlace_mode_get_type ()")]
[GIR (name = "VideoInterlaceMode")]
public enum InterlaceMode {
@@ -1645,6 +1603,9 @@ namespace Gst {
public const string CONVERTER_OPT_ALPHA_MODE;
[CCode (cheader_filename = "gst/video/video.h", cname =
"GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE")]
public const string CONVERTER_OPT_ALPHA_VALUE;
+ [CCode (cheader_filename = "gst/video/video.h", cname =
"GST_VIDEO_CONVERTER_OPT_ASYNC_TASKS")]
+ [Version (since = "1.20")]
+ public const string CONVERTER_OPT_ASYNC_TASKS;
[CCode (cheader_filename = "gst/video/video.h", cname =
"GST_VIDEO_CONVERTER_OPT_BORDER_ARGB")]
public const string CONVERTER_OPT_BORDER_ARGB;
[CCode (cheader_filename = "gst/video/video.h", cname =
"GST_VIDEO_CONVERTER_OPT_CHROMA_MODE")]
@@ -1699,18 +1660,6 @@ namespace Gst {
public const string FORMATS_ALL;
[CCode (cheader_filename = "gst/video/video.h", cname = "GST_VIDEO_FPS_RANGE")]
public const string FPS_RANGE;
- [CCode (cheader_filename = "gst/video/video.h", cname = "GST_VIDEO_HDR10_PLUS_MAX_BYTES")]
- [Version (since = "1.20")]
- public const int HDR10_PLUS_MAX_BYTES;
- [CCode (cheader_filename = "gst/video/video.h", cname =
"GST_VIDEO_HDR10_PLUS_MAX_COLS_MD_APL")]
- [Version (since = "1.20")]
- public const int HDR10_PLUS_MAX_COLS_MD_APL;
- [CCode (cheader_filename = "gst/video/video.h", cname =
"GST_VIDEO_HDR10_PLUS_MAX_ROWS_TSD_APL")]
- [Version (since = "1.20")]
- public const int HDR10_PLUS_MAX_ROWS_TSD_APL;
- [CCode (cheader_filename = "gst/video/video.h", cname = "GST_VIDEO_HDR10_PLUS_NUM_WINDOWS")]
- [Version (since = "1.20")]
- public const int HDR10_PLUS_NUM_WINDOWS;
[CCode (cheader_filename = "gst/video/video.h", cname = "GST_VIDEO_MAX_COMPONENTS")]
public const int MAX_COMPONENTS;
[CCode (cheader_filename = "gst/video/video.h", cname = "GST_VIDEO_MAX_PLANES")]
@@ -1779,11 +1728,11 @@ namespace Gst {
[CCode (cheader_filename = "gst/video/video.h", cname = "gst_buffer_add_video_caption_meta")]
[Version (since = "1.16")]
public static unowned Gst.Video.CaptionMeta? buffer_add_video_caption_meta (Gst.Buffer
buffer, Gst.Video.CaptionType caption_type, [CCode (array_length_cname = "size", array_length_pos = 3.1,
array_length_type = "gsize")] uint8[] data);
+ [CCode (cheader_filename = "gst/video/video.h", cname =
"gst_buffer_add_video_codec_alpha_meta")]
+ [Version (since = "1.20")]
+ public static unowned Gst.Video.CodecAlphaMeta? buffer_add_video_codec_alpha_meta (Gst.Buffer
buffer, owned Gst.Buffer alpha_buffer);
[CCode (cheader_filename = "gst/video/video.h", cname =
"gst_buffer_add_video_gl_texture_upload_meta")]
public static unowned Gst.Video.GLTextureUploadMeta? buffer_add_video_gl_texture_upload_meta
(Gst.Buffer buffer, Gst.Video.GLTextureOrientation texture_orientation, uint n_textures,
Gst.Video.GLTextureType texture_type, [CCode (delegate_target_pos = 5.5)] Gst.Video.GLTextureUpload upload,
GLib.BoxedCopyFunc user_data_copy, GLib.BoxedFreeFunc user_data_free);
- [CCode (cheader_filename = "gst/video/video.h", cname = "gst_buffer_add_video_hdr_meta")]
- [Version (since = "1.20")]
- public static unowned Gst.Video.HDRMeta? buffer_add_video_hdr_meta (Gst.Buffer buffer,
Gst.Video.HDRFormat format, uint8 data, size_t size);
[CCode (cheader_filename = "gst/video/video.h", cname = "gst_buffer_add_video_meta")]
public static unowned Gst.Video.Meta? buffer_add_video_meta (Gst.Buffer buffer,
Gst.Video.FrameFlags flags, Gst.Video.Format format, uint width, uint height);
[CCode (cheader_filename = "gst/video/video.h", cname = "gst_buffer_add_video_meta_full")]
@@ -1835,6 +1784,12 @@ namespace Gst {
[Version (deprecated = true, deprecated_since = "1.20")]
public static unowned string chroma_to_string (Gst.Video.ChromaSite site);
[CCode (cheader_filename = "gst/video/video.h")]
+ [Version (since = "1.20")]
+ public static GLib.Type codec_alpha_meta_api_get_type ();
+ [CCode (cheader_filename = "gst/video/video.h")]
+ [Version (since = "1.20")]
+ public static unowned Gst.MetaInfo? codec_alpha_meta_get_info ();
+ [CCode (cheader_filename = "gst/video/video.h")]
[Version (since = "1.18")]
public static Gst.Video.ColorMatrix color_matrix_from_iso (uint value);
[CCode (cheader_filename = "gst/video/video.h")]
@@ -1918,19 +1873,6 @@ namespace Gst {
[Version (since = "1.6")]
public static bool guess_framerate (Gst.ClockTime duration, out int dest_n, out int dest_d);
[CCode (cheader_filename = "gst/video/video.h")]
- [Version (since = "1.20")]
- public static Gst.Video.HDRFormat hdr_format_from_string (string? format);
- [CCode (cheader_filename = "gst/video/video.h")]
- [Version (since = "1.20")]
- public static unowned string? hdr_format_to_string (Gst.Video.HDRFormat format);
- [CCode (cheader_filename = "gst/video/video.h")]
- public static GLib.Type hdr_meta_api_get_type ();
- [CCode (cheader_filename = "gst/video/video.h")]
- public static unowned Gst.MetaInfo? hdr_meta_get_info ();
- [CCode (cheader_filename = "gst/video/video.h")]
- [Version (since = "1.20")]
- public static bool hdr_parse_hdr10_plus (uint8 data, size_t size, out Gst.Video.HDR10Plus
hdr10_plus);
- [CCode (cheader_filename = "gst/video/video.h")]
public static bool info_from_caps (out unowned Gst.Video.Info info, Gst.Caps caps);
[CCode (cheader_filename = "gst/video/video.h")]
public static void info_init (out unowned Gst.Video.Info info);
diff --git a/vapi/gstreamer-webrtc-1.0.vapi b/vapi/gstreamer-webrtc-1.0.vapi
index 5f9aaaff2..d0b79704b 100644
--- a/vapi/gstreamer-webrtc-1.0.vapi
+++ b/vapi/gstreamer-webrtc-1.0.vapi
@@ -130,19 +130,26 @@ namespace Gst {
public abstract class WebRTCRTPTransceiver : Gst.Object {
[CCode (array_length = false)]
public weak void* _padding[4];
- public weak Gst.Caps codec_preferences;
- public Gst.WebRTCRTPTransceiverDirection current_direction;
- [Version (since = "1.20")]
- public Gst.WebRTCKind kind;
- public weak string mid;
public uint mline;
public bool stopped;
[CCode (has_construct_function = false)]
protected WebRTCRTPTransceiver ();
[NoAccessorMethod]
+ [Version (since = "1.20")]
+ public Gst.Caps codec_preferences { owned get; set; }
+ [NoAccessorMethod]
+ [Version (since = "1.20")]
+ public Gst.WebRTCRTPTransceiverDirection current_direction { get; }
+ [NoAccessorMethod]
[Version (since = "1.18")]
public Gst.WebRTCRTPTransceiverDirection direction { get; set; }
[NoAccessorMethod]
+ [Version (since = "1.20")]
+ public Gst.WebRTCKind kind { get; }
+ [NoAccessorMethod]
+ [Version (since = "1.20")]
+ public string mid { owned get; }
+ [NoAccessorMethod]
public uint mlineindex { get; construct; }
[NoAccessorMethod]
public Gst.WebRTCRTPReceiver receiver { owned get; construct; }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]