Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Seungha Yang
gst-plugins-base
Commits
169d6b64
Commit
169d6b64
authored
Dec 26, 2001
by
Wim Taymans
Browse files
Some cleanups
Original commit message from CVS: Some cleanups Fix EOS on the src
parent
bb5a2fc4
Changes
2
Hide whitespace changes
Inline
Side-by-side
ext/gnomevfs/gstgnomevfssink.c
View file @
169d6b64
...
...
@@ -24,6 +24,8 @@
#include <gst/gst.h>
#include <libgnomevfs/gnome-vfs.h>
#include <string.h>
#include <errno.h>
GstElementDetails
gst_gnomevfssink_details
;
...
...
@@ -243,8 +245,7 @@ gst_gnomevfssink_open_file (GstGnomeVFSSink *sink)
/* create the GnomeVFSURI from the url */
sink
->
uri
=
gnome_vfs_uri_new
(
sink
->
filename
);
if
(
!
sink
->
uri
)
{
perror
(
"open"
);
gst_element_error
(
GST_ELEMENT
(
sink
),
g_strconcat
(
"opening file
\"
"
,
sink
->
filename
,
"
\"
"
,
NULL
));
gst_element_error
(
GST_ELEMENT
(
sink
),
"opening file
\"
%s
\"
(%s)"
,
sink
->
filename
,
strerror
(
errno
));
return
FALSE
;
}
...
...
@@ -260,8 +261,7 @@ gst_gnomevfssink_open_file (GstGnomeVFSSink *sink)
gst_gnomevfssink_signals
[
SIGNAL_ERASE_ASK
],
0
,
sink
->
erase
);
}
perror
(
"open"
);
gst_element_error
(
GST_ELEMENT
(
sink
),
g_strconcat
(
"opening file
\"
"
,
sink
->
filename
,
"
\"
"
,
NULL
));
gst_element_error
(
GST_ELEMENT
(
sink
),
"opening file
\"
%s
\"
(%s)"
,
sink
->
filename
,
strerror
(
errno
));
return
FALSE
;
}
...
...
@@ -286,8 +286,7 @@ gst_gnomevfssink_close_file (GstGnomeVFSSink *sink)
if
(
result
!=
GNOME_VFS_OK
)
{
perror
(
"close"
);
gst_element_error
(
GST_ELEMENT
(
sink
),
g_strconcat
(
"closing file
\"
"
,
sink
->
filename
,
"
\"
"
,
NULL
));
gst_element_error
(
GST_ELEMENT
(
sink
),
"closing file
\"
%s
\"
(%s)"
,
sink
->
filename
,
strerror
(
errno
));
}
else
{
GST_FLAG_UNSET
(
sink
,
GST_GNOMEVFSSINK_OPEN
);
...
...
ext/gnomevfs/gstgnomevfssrc.c
View file @
169d6b64
...
...
@@ -29,6 +29,8 @@
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#include <errno.h>
#include <string.h>
#include <gst/gst.h>
#include <libgnomevfs/gnome-vfs.h>
...
...
@@ -86,9 +88,6 @@ struct _GstGnomeVFSSrc {
struct
_GstGnomeVFSSrcClass
{
GstElementClass
parent_class
;
#ifdef BROKEN_SIG
void
(
*
eos_hack
)
(
GstGnomeVFSSrc
*
src
);
#endif
};
GstElementDetails
gst_gnomevfssrc_details
=
{
...
...
@@ -102,9 +101,6 @@ GstElementDetails gst_gnomevfssrc_details = {
/* GnomeVFSSrc signals and args */
enum
{
#ifdef BROKEN_SIG
EOS_HACK
,
#endif
LAST_SIGNAL
};
...
...
@@ -133,9 +129,6 @@ static gboolean gst_gnomevfssrc_open_file(GstGnomeVFSSrc *src);
static
GstElementClass
*
parent_class
=
NULL
;
#ifdef BROKEN_SIG
static
guint
gst_gnomevfssrc_signals
[
LAST_SIGNAL
]
=
{
0
};
#endif
GType
gst_gnomevfssrc_get_type
(
void
)
{
...
...
@@ -176,14 +169,6 @@ static void gst_gnomevfssrc_class_init(GstGnomeVFSSrcClass *klass)
"location"
,
ARG_LOCATION
,
G_PARAM_READWRITE
,
NULL
);
#ifdef BROKEN_SIG
gst_gnomevfssrc_signals
[
EOS_HACK
]
=
g_signal_new
(
"eos-hack"
,
G_TYPE_FROM_CLASS
(
klass
),
G_SIGNAL_RUN_FIRST
,
G_STRUCT_OFFSET
(
GstGnomeVFSSrcClass
,
eos_hack
),
NULL
,
NULL
,
g_cclosure_marshal_VOID__VOID
,
G_TYPE_NONE
,
0
);
#endif
/* BROKEN_SIG */
gstelement_class
->
set_property
=
gst_gnomevfssrc_set_property
;
gstelement_class
->
get_property
=
gst_gnomevfssrc_get_property
;
...
...
@@ -196,7 +181,6 @@ static void gst_gnomevfssrc_class_init(GstGnomeVFSSrcClass *klass)
static
void
gst_gnomevfssrc_init
(
GstGnomeVFSSrc
*
gnomevfssrc
)
{
/* GST_FLAG_SET (gnomevfssrc, GST_SRC_); */
gnomevfssrc
->
srcpad
=
gst_pad_new
(
"src"
,
GST_PAD_SRC
);
gst_pad_set_get_function
(
gnomevfssrc
->
srcpad
,
gst_gnomevfssrc_get
);
...
...
@@ -308,12 +292,8 @@ static GstBuffer *gst_gnomevfssrc_get(GstPad *pad)
/* deal with EOF state */
if
((
src
->
curoffset
>=
src
->
size
)
&&
(
src
->
size
!=
0
))
{
#ifdef BROKEN_SIG
g_signal_emit
(
G_OBJECT
(
src
),
gst_gnomevfssrc_signals
[
EOS_HACK
],
0
);
#endif
/* BROKEN_SIG */
/*gst_pad_set_eos (pad); */
return
NULL
;
gst_element_set_state
(
GST_ELEMENT
(
src
),
GST_STATE_PAUSED
);
return
GST_BUFFER
(
gst_event_new
(
GST_EVENT_EOS
));
}
/* create the buffer */
...
...
@@ -333,12 +313,6 @@ static GstBuffer *gst_gnomevfssrc_get(GstPad *pad)
if
((
src
->
curoffset
+
src
->
bytes_per_read
)
>
src
->
size
)
{
GST_BUFFER_SIZE
(
buf
)
=
src
->
size
-
src
->
curoffset
;
/* set the buffer's EOF bit here */
#ifdef BROKEN_SIG
g_signal_emit
(
G_OBJECT
(
src
),
gst_gnomevfssrc_signals
[
EOS_HACK
],
0
);
#endif
/* BROKEN_SIG */
GST_BUFFER_FLAG_SET
(
buf
,
GST_BUFFER_EOS
);
}
else
{
GST_BUFFER_SIZE
(
buf
)
=
src
->
bytes_per_read
;
}
...
...
@@ -375,30 +349,15 @@ static GstBuffer *gst_gnomevfssrc_get(GstPad *pad)
if
(
readbytes
==
0
)
{
gst_buffer_unref
(
buf
);
GST_BUFFER_FLAG_SET
(
buf
,
GST_BUFFER_EOS
);
gst_element_signal_eos
(
GST_ELEMENT
(
src
));
#ifdef BROKEN_SIG
g_signal_emit
(
G_OBJECT
(
src
),
gst_gnomevfssrc_signals
[
EOS_HACK
],
0
);
#endif
/* BROKEN_SIG */
return
NULL
;
gst_element_set_state
(
GST_ELEMENT
(
src
),
GST_STATE_PAUSED
);
return
GST_BUFFER
(
gst_event_new
(
GST_EVENT_EOS
));
}
/* if we didn't get as many bytes as we asked for, we're at
* EOF */
if
(
readbytes
<
src
->
bytes_per_read
)
{
/* set the buffer's EOF bit here */
GST_BUFFER_FLAG_SET
(
buf
,
GST_BUFFER_EOS
);
#ifdef BROKEN_SIG
g_signal_emit
(
G_OBJECT
(
src
),
gst_gnomevfssrc_signals
[
EOS_HACK
],
0
);
#endif
/* BROKEN_SIG */
}
GST_BUFFER_OFFSET
(
buf
)
=
src
->
curoffset
;
GST_BUFFER_SIZE
(
buf
)
=
readbytes
;
src
->
curoffset
+=
readbytes
;
}
/* we're done, return the buffer */
...
...
@@ -416,10 +375,9 @@ static gboolean gst_gnomevfssrc_open_file(GstGnomeVFSSrc *src)
/* create the uri */
src
->
uri
=
gnome_vfs_uri_new
(
src
->
filename
);
if
(
!
src
->
uri
)
{
perror
(
"open"
);
gst_element_error
(
GST_ELEMENT
(
src
),
g_strconcat
(
"creating uri
\"
"
,
src
->
filename
,
"
\"
"
,
NULL
));
"creating uri
\"
%s
\"
(%s)
"
,
src
->
filename
,
strerror
(
errno
));
return
FALSE
;
}
...
...
@@ -432,11 +390,9 @@ static gboolean gst_gnomevfssrc_open_file(GstGnomeVFSSrc *src)
src
->
fd
=
open
(
src
->
local_name
,
O_RDONLY
);
if
(
src
->
fd
<
0
)
{
perror
(
"open"
);
gst_element_error
(
GST_ELEMENT
(
src
),
g_strconcat
(
"opening local file
\"
"
,
src
->
filename
,
"
\"
"
,
NULL
));
"opening local file
\"
%s
\"
(%s)"
,
src
->
filename
,
strerror
(
errno
));
return
FALSE
;
}
...
...
@@ -461,12 +417,10 @@ static gboolean gst_gnomevfssrc_open_file(GstGnomeVFSSrc *src)
GNOME_VFS_OPEN_READ
);
if
(
result
!=
GNOME_VFS_OK
)
{
perror
(
"open"
);
gst_element_error
(
GST_ELEMENT
(
src
),
g_strconcat
(
"opening vfs file
\"
"
,
src
->
filename
,
"
\"
: "
,
gnome_vfs_result_to_string
(
result
),
NULL
));
"opening vfs file
\"
%s
\"
(%s)"
,
src
->
filename
,
gnome_vfs_result_to_string
(
result
));
return
FALSE
;
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment