Added 64 bit support to filesrc and a gtk+ shim (mapped to ulong unfortunatly) as per vishnus patch.

Original commit message from CVS:
Added 64 bit support to filesrc and a gtk+ shim (mapped to ulong
unfortunatly) as per vishnus patch.
This commit is contained in:
Wim Taymans 2001-10-22 19:13:24 +00:00
parent 14de4f27da
commit 5e85a8eb03
3 changed files with 19 additions and 14 deletions

View file

@ -198,8 +198,8 @@ gst_filesrc_class_init (GstFileSrcClass *klass)
g_param_spec_string("location","File Location","Location of the file to read", g_param_spec_string("location","File Location","Location of the file to read",
NULL,G_PARAM_READWRITE)); NULL,G_PARAM_READWRITE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FILESIZE, g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FILESIZE,
g_param_spec_ulong("filesize","File Size","Size of the file being read", g_param_spec_int64("filesize","File Size","Size of the file being read",
0,G_MAXULONG,0,G_PARAM_READABLE)); 0,G_MAXINT64,0,G_PARAM_READABLE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FD, g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FD,
g_param_spec_int("fd","File-descriptor","File-descriptor for the file being read", g_param_spec_int("fd","File-descriptor","File-descriptor for the file being read",
0,G_MAXINT,0,G_PARAM_READABLE)); 0,G_MAXINT,0,G_PARAM_READABLE));
@ -207,8 +207,8 @@ gst_filesrc_class_init (GstFileSrcClass *klass)
g_param_spec_ulong("blocksize","Block Size","Block size to read per buffer", g_param_spec_ulong("blocksize","Block Size","Block size to read per buffer",
0,G_MAXULONG,4096,G_PARAM_READWRITE)); 0,G_MAXULONG,4096,G_PARAM_READWRITE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_OFFSET, g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_OFFSET,
g_param_spec_ulong("offset","File Offset","Byte offset of current read pointer", g_param_spec_int64("offset","File Offset","Byte offset of current read pointer",
0,G_MAXULONG,0,G_PARAM_READWRITE)); 0,G_MAXINT64,0,G_PARAM_READWRITE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_MAPSIZE, g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_MAPSIZE,
g_param_spec_ulong("mmapsize","mmap() Block Size","Size in bytes of mmap()d regions", g_param_spec_ulong("mmapsize","mmap() Block Size","Size in bytes of mmap()d regions",
0,G_MAXULONG,4*1048576,G_PARAM_READWRITE)); 0,G_MAXULONG,4*1048576,G_PARAM_READWRITE));
@ -292,7 +292,7 @@ gst_filesrc_set_property (GObject *object, guint prop_id, const GValue *value, G
src->block_size = g_value_get_ulong (value); src->block_size = g_value_get_ulong (value);
break; break;
case ARG_OFFSET: case ARG_OFFSET:
src->curoffset = g_value_get_ulong (value); src->curoffset = g_value_get_int64 (value);
break; break;
case ARG_MAPSIZE: case ARG_MAPSIZE:
if ((src->mapsize % src->pagesize) == 0) if ((src->mapsize % src->pagesize) == 0)
@ -323,7 +323,7 @@ gst_filesrc_get_property (GObject *object, guint prop_id, GValue *value, GParamS
g_value_set_string (value, src->filename); g_value_set_string (value, src->filename);
break; break;
case ARG_FILESIZE: case ARG_FILESIZE:
g_value_set_ulong (value, src->filelen); g_value_set_int64 (value, src->filelen);
break; break;
case ARG_FD: case ARG_FD:
g_value_set_int (value, src->fd); g_value_set_int (value, src->fd);
@ -332,7 +332,7 @@ gst_filesrc_get_property (GObject *object, guint prop_id, GValue *value, GParamS
g_value_set_ulong (value, src->block_size); g_value_set_ulong (value, src->block_size);
break; break;
case ARG_OFFSET: case ARG_OFFSET:
g_value_set_ulong (value, src->curoffset); g_value_set_int64 (value, src->curoffset);
break; break;
case ARG_MAPSIZE: case ARG_MAPSIZE:
g_value_set_ulong (value, src->mapsize); g_value_set_ulong (value, src->mapsize);

View file

@ -5,6 +5,7 @@
#define G_MAXUINT UINT_MAX #define G_MAXUINT UINT_MAX
#define G_MAXULONG ULONG_MAX #define G_MAXULONG ULONG_MAX
#define G_MAXINT64 G_MAXULONG
#define G_E 2.7182818284590452354E0 #define G_E 2.7182818284590452354E0
#define G_LN2 6.9314718055994530942E-1 #define G_LN2 6.9314718055994530942E-1
@ -305,6 +306,10 @@ GParamSpec *g2g_param_spec_string(gchar *name,gchar *nick,gchar *blurb,gchar *de
#define g_value_get_pointer(value) GTK_VALUE_POINTER(*value) #define g_value_get_pointer(value) GTK_VALUE_POINTER(*value)
#define g_value_set_pointer(value,data) (GTK_VALUE_POINTER(*value) = (data)) #define g_value_set_pointer(value,data) (GTK_VALUE_POINTER(*value) = (data))
/* FIXME semi 64-bit support, we map to ulong here... */
#define g_param_spec_int64 g2g_param_spec_ulong
#define g_value_get_int64(value) GTK_VALUE_ULONG(*value)
#define g_value_set_int64(value,data) (GTK_VALUE_ULONG(*value) = (data))
#define G_VALUE_HOLDS_CHAR(value) (((value)->type)==GTK_TYPE_CHAR) #define G_VALUE_HOLDS_CHAR(value) (((value)->type)==GTK_TYPE_CHAR)
#define G_VALUE_HOLDS_UCHAR(value) (((value)->type)==GTK_TYPE_UCHAR) #define G_VALUE_HOLDS_UCHAR(value) (((value)->type)==GTK_TYPE_UCHAR)

View file

@ -198,8 +198,8 @@ gst_filesrc_class_init (GstFileSrcClass *klass)
g_param_spec_string("location","File Location","Location of the file to read", g_param_spec_string("location","File Location","Location of the file to read",
NULL,G_PARAM_READWRITE)); NULL,G_PARAM_READWRITE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FILESIZE, g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FILESIZE,
g_param_spec_ulong("filesize","File Size","Size of the file being read", g_param_spec_int64("filesize","File Size","Size of the file being read",
0,G_MAXULONG,0,G_PARAM_READABLE)); 0,G_MAXINT64,0,G_PARAM_READABLE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FD, g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FD,
g_param_spec_int("fd","File-descriptor","File-descriptor for the file being read", g_param_spec_int("fd","File-descriptor","File-descriptor for the file being read",
0,G_MAXINT,0,G_PARAM_READABLE)); 0,G_MAXINT,0,G_PARAM_READABLE));
@ -207,8 +207,8 @@ gst_filesrc_class_init (GstFileSrcClass *klass)
g_param_spec_ulong("blocksize","Block Size","Block size to read per buffer", g_param_spec_ulong("blocksize","Block Size","Block size to read per buffer",
0,G_MAXULONG,4096,G_PARAM_READWRITE)); 0,G_MAXULONG,4096,G_PARAM_READWRITE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_OFFSET, g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_OFFSET,
g_param_spec_ulong("offset","File Offset","Byte offset of current read pointer", g_param_spec_int64("offset","File Offset","Byte offset of current read pointer",
0,G_MAXULONG,0,G_PARAM_READWRITE)); 0,G_MAXINT64,0,G_PARAM_READWRITE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_MAPSIZE, g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_MAPSIZE,
g_param_spec_ulong("mmapsize","mmap() Block Size","Size in bytes of mmap()d regions", g_param_spec_ulong("mmapsize","mmap() Block Size","Size in bytes of mmap()d regions",
0,G_MAXULONG,4*1048576,G_PARAM_READWRITE)); 0,G_MAXULONG,4*1048576,G_PARAM_READWRITE));
@ -292,7 +292,7 @@ gst_filesrc_set_property (GObject *object, guint prop_id, const GValue *value, G
src->block_size = g_value_get_ulong (value); src->block_size = g_value_get_ulong (value);
break; break;
case ARG_OFFSET: case ARG_OFFSET:
src->curoffset = g_value_get_ulong (value); src->curoffset = g_value_get_int64 (value);
break; break;
case ARG_MAPSIZE: case ARG_MAPSIZE:
if ((src->mapsize % src->pagesize) == 0) if ((src->mapsize % src->pagesize) == 0)
@ -323,7 +323,7 @@ gst_filesrc_get_property (GObject *object, guint prop_id, GValue *value, GParamS
g_value_set_string (value, src->filename); g_value_set_string (value, src->filename);
break; break;
case ARG_FILESIZE: case ARG_FILESIZE:
g_value_set_ulong (value, src->filelen); g_value_set_int64 (value, src->filelen);
break; break;
case ARG_FD: case ARG_FD:
g_value_set_int (value, src->fd); g_value_set_int (value, src->fd);
@ -332,7 +332,7 @@ gst_filesrc_get_property (GObject *object, guint prop_id, GValue *value, GParamS
g_value_set_ulong (value, src->block_size); g_value_set_ulong (value, src->block_size);
break; break;
case ARG_OFFSET: case ARG_OFFSET:
g_value_set_ulong (value, src->curoffset); g_value_set_int64 (value, src->curoffset);
break; break;
case ARG_MAPSIZE: case ARG_MAPSIZE:
g_value_set_ulong (value, src->mapsize); g_value_set_ulong (value, src->mapsize);