mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-13 15:12:58 +00:00
use new error signal and classification
Original commit message from CVS: use new error signal and classification
This commit is contained in:
parent
1abf388f85
commit
b95a710d41
28 changed files with 383 additions and 273 deletions
141
ChangeLog
141
ChangeLog
|
@ -1,3 +1,144 @@
|
|||
2004-01-18 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* examples/gstplay/player.c: (main):
|
||||
* ext/aalib/gstaasink.c: (gst_aasink_open):
|
||||
* ext/alsa/gstalsa.c: (gst_alsa_link), (gst_alsa_xrun_recovery):
|
||||
* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
|
||||
* ext/alsa/gstalsasrc.c: (gst_alsa_src_loop):
|
||||
* ext/audiofile/gstafsink.c: (gst_afsink_open_file),
|
||||
(gst_afsink_close_file):
|
||||
* ext/audiofile/gstafsrc.c: (gst_afsrc_open_file),
|
||||
(gst_afsrc_close_file):
|
||||
* ext/divx/gstdivxdec.c: (gst_divxdec_setup), (gst_divxdec_chain):
|
||||
* ext/dv/gstdvdec.c: (gst_dvdec_loop):
|
||||
* ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_user_op), (dvdnavsrc_get):
|
||||
* ext/esd/esdmon.c: (gst_esdmon_get):
|
||||
* ext/esd/esdsink.c: (gst_esdsink_chain):
|
||||
* ext/faac/gstfaac.c: (gst_faac_chain):
|
||||
* ext/faad/gstfaad.c: (gst_faad_chain):
|
||||
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
|
||||
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
|
||||
* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_loop):
|
||||
* ext/flac/gstflacdec.c: (gst_flacdec_error_callback),
|
||||
(gst_flacdec_loop):
|
||||
* ext/flac/gstflacenc.c: (gst_flacenc_chain):
|
||||
* ext/flac/gstflactag.c: (gst_flac_tag_chain):
|
||||
* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_chain):
|
||||
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file),
|
||||
(gst_gnomevfssink_close_file):
|
||||
* ext/gnomevfs/gstgnomevfssrc.c: (audiocast_init),
|
||||
(gst_gnomevfssrc_open_file):
|
||||
* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop):
|
||||
* ext/lame/gstlame.c: (gst_lame_sink_link), (gst_lame_chain):
|
||||
* ext/lcs/gstcolorspace.c: (gst_colorspace_srcconnect_func):
|
||||
* ext/mad/gstid3tag.c: (gst_id3_tag_handle_event),
|
||||
(gst_id3_tag_do_typefind), (gst_id3_tag_chain):
|
||||
* ext/mad/gstmad.c: (gst_mad_chain):
|
||||
* ext/mikmod/gstmikmod.c: (gst_mikmod_loop):
|
||||
* ext/mpeg2dec/gstmpeg2dec.c:
|
||||
* ext/mpeg2enc/gstmpeg2enc.cc:
|
||||
* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
|
||||
* ext/mplex/gstmplex.cc:
|
||||
* ext/mplex/gstmplexibitstream.cc:
|
||||
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain),
|
||||
(gst_ogg_demux_push), (gst_ogg_pad_push):
|
||||
* ext/raw1394/gstdv1394src.c:
|
||||
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_lock),
|
||||
(gst_sdlvideosink_initsdl), (gst_sdlvideosink_create):
|
||||
* ext/sidplay/gstsiddec.cc:
|
||||
* ext/sndfile/gstsf.c: (gst_sf_open_file), (gst_sf_close_file),
|
||||
(gst_sf_loop):
|
||||
* ext/speex/gstspeexenc.c: (gst_speexenc_chain):
|
||||
* ext/tarkin/gsttarkindec.c: (gst_tarkindec_chain):
|
||||
* ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_chain):
|
||||
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain):
|
||||
* ext/vorbis/vorbisfile.c: (gst_vorbisfile_loop):
|
||||
* ext/xvid/gstxviddec.c: (gst_xviddec_setup), (gst_xviddec_chain):
|
||||
* ext/xvid/gstxvidenc.c: (gst_xvidenc_setup), (gst_xvidenc_chain):
|
||||
* gst-libs/gst/Makefile.am:
|
||||
* gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head),
|
||||
(gst_riff_read_element_data), (gst_riff_read_seek),
|
||||
(gst_riff_peek_list), (gst_riff_read_list), (gst_riff_read_header):
|
||||
* gst/adder/gstadder.c: (gst_adder_parse_caps), (gst_adder_loop):
|
||||
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_segment),
|
||||
(gst_asf_demux_process_stream), (gst_asf_demux_get_stream):
|
||||
* gst/avi/gstavidemux.c: (gst_avi_demux_stream_init),
|
||||
(gst_avi_demux_add_stream), (gst_avi_demux_stream_header):
|
||||
* gst/avi/gstavimux.c: (gst_avimux_stop_file):
|
||||
* gst/flx/gstflxdec.c: (gst_flxdec_loop):
|
||||
* gst/goom/gstgoom.c: (gst_goom_chain):
|
||||
* gst/id3/gstid3types.c: (gst_id3types_loop):
|
||||
* gst/intfloat/gstfloat2int.c: (gst_float2int_loop):
|
||||
* gst/intfloat/gstint2float.c: (gst_int2float_chain_gint16):
|
||||
* gst/matroska/ebml-read.c: (gst_ebml_read_element_id),
|
||||
(gst_ebml_read_element_length), (gst_ebml_read_element_data),
|
||||
(gst_ebml_read_seek), (gst_ebml_read_uint), (gst_ebml_read_sint),
|
||||
(gst_ebml_read_float), (gst_ebml_read_header):
|
||||
* gst/matroska/matroska-demux.c: (gst_matroska_demux_init_stream),
|
||||
(gst_matroska_demux_parse_blockgroup):
|
||||
* gst/modplug/gstmodplug.cc:
|
||||
* gst/monoscope/gstmonoscope.c: (gst_monoscope_chain):
|
||||
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop):
|
||||
* gst/oneton/gstoneton.c: (gst_oneton_chain):
|
||||
* gst/silence/gstsilence.c: (gst_silence_get):
|
||||
* gst/sine/gstsinesrc.c: (gst_sinesrc_get):
|
||||
* gst/smpte/gstsmpte.c: (gst_smpte_loop):
|
||||
* gst/speed/gstspeed.c: (speed_loop):
|
||||
* gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain):
|
||||
* gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get):
|
||||
* gst/volenv/gstvolenv.c: (gst_volenv_chain):
|
||||
* gst/wavenc/gstwavenc.c: (gst_wavenc_chain):
|
||||
* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt),
|
||||
(gst_wavparse_loop):
|
||||
* sys/dxr3/dxr3audiosink.c: (dxr3audiosink_open),
|
||||
(dxr3audiosink_set_mode_pcm), (dxr3audiosink_set_mode_ac3),
|
||||
(dxr3audiosink_close):
|
||||
* sys/dxr3/dxr3spusink.c: (dxr3spusink_open), (dxr3spusink_close):
|
||||
* sys/dxr3/dxr3videosink.c: (dxr3videosink_open),
|
||||
(dxr3videosink_close), (dxr3videosink_write_data):
|
||||
* sys/oss/gstosselement.c: (gst_osselement_open_audio):
|
||||
* sys/oss/gstosselement.h:
|
||||
* sys/oss/gstosssink.c: (gst_osssink_get_type), (gst_osssink_init),
|
||||
(gst_osssink_chain):
|
||||
* sys/oss/gstosssrc.c: (gst_osssrc_get):
|
||||
* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_chain):
|
||||
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_buffer_free):
|
||||
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_buffer_free):
|
||||
* sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_window),
|
||||
(gst_v4l_enable_overlay):
|
||||
* sys/v4l/v4l_calls.c: (gst_v4l_get_capabilities), (gst_v4l_open),
|
||||
(gst_v4l_set_chan_norm), (gst_v4l_get_signal),
|
||||
(gst_v4l_get_frequency), (gst_v4l_set_frequency),
|
||||
(gst_v4l_get_picture), (gst_v4l_set_picture), (gst_v4l_get_audio),
|
||||
(gst_v4l_set_audio):
|
||||
* sys/v4l/v4l_calls.h:
|
||||
* sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_sync_thread),
|
||||
(gst_v4lmjpegsink_queue_frame), (gst_v4lmjpegsink_set_playback),
|
||||
(gst_v4lmjpegsink_playback_init),
|
||||
(gst_v4lmjpegsink_playback_start):
|
||||
* sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_queue_frame),
|
||||
(gst_v4lmjpegsrc_sync_next_frame), (gst_v4lmjpegsrc_set_capture),
|
||||
(gst_v4lmjpegsrc_set_capture_m), (gst_v4lmjpegsrc_capture_init),
|
||||
(gst_v4lmjpegsrc_requeue_frame):
|
||||
* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame),
|
||||
(gst_v4lsrc_sync_frame), (gst_v4lsrc_capture_init),
|
||||
(gst_v4lsrc_requeue_frame), (gst_v4lsrc_try_palette):
|
||||
* sys/v4l2/gstv4l2src.c: (gst_v4l2src_get):
|
||||
* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list),
|
||||
(gst_v4l2src_queue_frame), (gst_v4l2src_grab_frame),
|
||||
(gst_v4l2src_get_capture), (gst_v4l2src_set_capture),
|
||||
(gst_v4l2src_capture_init), (gst_v4l2src_capture_start),
|
||||
(gst_v4l2src_capture_stop):
|
||||
* sys/vcd/vcdsrc.c: (vcdsrc_open_file):
|
||||
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
|
||||
(gst_ximagesink_chain):
|
||||
* sys/xvideo/xvideosink.c: (gst_xvideosink_buffer_new),
|
||||
(gst_xvideosink_sinkconnect), (gst_xvideosink_chain),
|
||||
(gst_xvideosink_xwindow_new):
|
||||
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get),
|
||||
(gst_xvimagesink_chain):
|
||||
use new error signal, function and categories
|
||||
|
||||
2004-01-18 Jeremy Simon <jesimon@libertysurf.fr>
|
||||
|
||||
* configure.ac:
|
||||
|
|
|
@ -115,7 +115,7 @@ main (int argc, char *argv[])
|
|||
|
||||
/* Getting default audio and video plugins from GConf */
|
||||
audio_sink = gst_element_factory_make ("osssink", "audio_sink");
|
||||
video_sink = gst_element_factory_make ("xvimagesink", "video_sink");
|
||||
video_sink = gst_element_factory_make ("ximagesink", "video_sink");
|
||||
vis_element = gst_element_factory_make ("goom", "vis_element");
|
||||
data_src = gst_element_factory_make ("gnomevfssrc", "source");
|
||||
|
||||
|
|
|
@ -658,7 +658,8 @@ gst_alsa_link (GstPad *pad, const GstCaps *caps)
|
|||
GstCaps *old = gst_alsa_caps (this->format->format, this->format->rate, this->format->channels);
|
||||
for (--i; i >= 0; i--) {
|
||||
if (gst_pad_try_set_caps (this->pad[i], old) == GST_PAD_LINK_REFUSED) {
|
||||
gst_element_error (GST_ELEMENT (this), "error resetting caps to sane value");
|
||||
gst_element_error (this, CORE, NEGOTIATION, NULL,
|
||||
("could not reset caps to a sane value"));
|
||||
gst_caps_free (old);
|
||||
break;
|
||||
} else {
|
||||
|
@ -679,7 +680,7 @@ gst_alsa_link (GstPad *pad, const GstCaps *caps)
|
|||
g_free (this->format);
|
||||
this->format = format;
|
||||
if (! gst_alsa_start_audio (this)) {
|
||||
gst_element_error (GST_ELEMENT (this), "Probed format doesn't work");
|
||||
gst_element_error (this, RESOURCE, SETTINGS, NULL, NULL);
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
}
|
||||
|
||||
|
@ -872,7 +873,8 @@ gst_alsa_xrun_recovery (GstAlsa *this)
|
|||
}
|
||||
|
||||
if (!(gst_alsa_stop_audio (this) && gst_alsa_start_audio (this))) {
|
||||
gst_element_error (GST_ELEMENT (this), "alsasink: Error restarting audio after xrun");
|
||||
gst_element_error (this, RESOURCE, FAILED, NULL,
|
||||
("Error restarting audio after xrun"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -342,8 +342,8 @@ sink_restart:
|
|||
}
|
||||
/* caps nego failed somewhere */
|
||||
if (this->format == NULL) {
|
||||
gst_element_error (GST_ELEMENT (this), "alsasink: No caps available");
|
||||
return;
|
||||
gst_element_error (this, CORE, NEGOTIATION, NULL,
|
||||
("ALSA format not negotiated"));
|
||||
}
|
||||
samplestamp = gst_alsa_timestamp_to_samples (this, GST_BUFFER_TIMESTAMP (sink->buf[i]));
|
||||
max_discont = gst_alsa_timestamp_to_samples (this, this->max_discont);
|
||||
|
|
|
@ -311,7 +311,8 @@ gst_alsa_src_loop (GstElement *element)
|
|||
/* set the caps on all pads */
|
||||
if (!this->format) {
|
||||
if (!gst_alsa_src_set_caps (src, FALSE)) {
|
||||
gst_element_error (element, "Could not set caps");
|
||||
gst_element_error (element, CORE, NEGOTIATION, NULL,
|
||||
("ALSA format not negotiated"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "gst-libs/gst/gst-i18n-plugin.h"
|
||||
|
||||
#include "gstgnomevfs.h"
|
||||
|
||||
#include <gst/gst.h>
|
||||
|
@ -280,7 +282,9 @@ gst_gnomevfssink_open_file (GstGnomeVFSSink *sink)
|
|||
gst_gnomevfssink_signals[SIGNAL_ERASE_ASK], 0,
|
||||
sink->erase);
|
||||
}
|
||||
gst_element_error (GST_ELEMENT (sink), "opening file \"%s\" (%s)", sink->filename, strerror (errno));
|
||||
gst_element_error (sink, RESOURCE, OPEN_WRITE,
|
||||
(_("Error opening vfs file \"%s\""), sink->filename),
|
||||
GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
} else
|
||||
|
@ -303,7 +307,9 @@ gst_gnomevfssink_close_file (GstGnomeVFSSink *sink)
|
|||
result = gnome_vfs_close(sink->handle);
|
||||
|
||||
if (result != GNOME_VFS_OK)
|
||||
gst_element_error (GST_ELEMENT (sink), "closing file \"%s\" (%s)", sink->filename, strerror (errno));
|
||||
gst_element_error (sink, RESOURCE, CLOSE,
|
||||
(_("Error closing file \"%s\""), sink->filename),
|
||||
GST_ERROR_SYSTEM);
|
||||
}
|
||||
|
||||
GST_FLAG_UNSET (sink, GST_GNOMEVFSSINK_OPEN);
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "gst-libs/gst/gst-i18n-plugin.h"
|
||||
|
||||
#include "gstgnomevfs.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -525,7 +527,8 @@ static int audiocast_init(GstGnomeVFSSrc *src)
|
|||
return TRUE;
|
||||
GST_DEBUG ("audiocast: registering listener");
|
||||
if (audiocast_register_listener(&src->audiocast_port, &src->audiocast_fd) < 0) {
|
||||
gst_element_error(GST_ELEMENT(src), "unable to register UDP port");
|
||||
gst_element_error (src, RESOURCE, OPEN_READ, NULL,
|
||||
("Unable to listen on UDP port %d", src->audiocast_port));
|
||||
close(src->audiocast_fd);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -541,8 +544,8 @@ static int audiocast_init(GstGnomeVFSSrc *src)
|
|||
GST_DEBUG ("audiocast: creating audiocast thread");
|
||||
src->audiocast_thread = g_thread_create((GThreadFunc) audiocast_thread_run, src, TRUE, &error);
|
||||
if (error != NULL) {
|
||||
gst_element_error(GST_ELEMENT(src),
|
||||
"unable to create thread: %s", error->message);
|
||||
gst_element_error (src, RESOURCE, TOO_LAZY, NULL,
|
||||
("Unable to create thread: %s", error->message));
|
||||
close(src->audiocast_fd);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1048,8 +1051,8 @@ static gboolean gst_gnomevfssrc_open_file(GstGnomeVFSSrc *src)
|
|||
/* create the uri */
|
||||
src->uri = gnome_vfs_uri_new(src->filename);
|
||||
if (!src->uri) {
|
||||
gst_element_error(GST_ELEMENT(src), "creating uri \"%s\" (%s)",
|
||||
src->filename, strerror (errno));
|
||||
gst_element_error (src, RESOURCE, OPEN_READ,
|
||||
(_("Error opening URI \"%s\" for reading"), src->filename), GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -1066,19 +1069,18 @@ static gboolean gst_gnomevfssrc_open_file(GstGnomeVFSSrc *src)
|
|||
result = GNOME_VFS_OK;
|
||||
if (result != GNOME_VFS_OK) {
|
||||
char *escaped;
|
||||
|
||||
|
||||
gst_gnomevfssrc_pop_callbacks (src);
|
||||
audiocast_thread_kill(src);
|
||||
|
||||
escaped = gnome_vfs_unescape_string_for_display (src->filename);
|
||||
gst_element_error(GST_ELEMENT(src),
|
||||
"opening vfs file \"%s\" (%s)",
|
||||
escaped,
|
||||
gnome_vfs_result_to_string(result));
|
||||
gst_element_error (src, RESOURCE, OPEN_READ,
|
||||
(_("Error opening vfs file \"%s\""), escaped),
|
||||
(gnome_vfs_result_to_string (result)));
|
||||
g_free (escaped);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
info = gnome_vfs_file_info_new ();
|
||||
if (gnome_vfs_get_file_info_from_handle (src->handle, info,
|
||||
GNOME_VFS_FILE_INFO_DEFAULT)
|
||||
|
|
|
@ -313,7 +313,7 @@ gst_ogg_demux_chain (GstPad *pad, GstData *buffer)
|
|||
memcpy (data, GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer));
|
||||
if (ogg_sync_wrote (&ogg->sync, GST_BUFFER_SIZE (buffer)) != 0) {
|
||||
gst_data_unref (buffer);
|
||||
gst_element_error (GST_ELEMENT (ogg), "ogg_sync_wrote failed");
|
||||
gst_element_error (ogg, LIBRARY, TOO_LAZY, NULL, ("ogg_sync_wrote failed"));
|
||||
return;
|
||||
}
|
||||
gst_data_unref (buffer);
|
||||
|
@ -394,13 +394,13 @@ br:
|
|||
/* FIXME: monitor if we are still in creation stage? */
|
||||
cur = gst_ogg_pad_new (ogg, ogg_page_serialno (page));
|
||||
if (!cur) {
|
||||
gst_element_error (GST_ELEMENT (ogg), "Creating ogg_stream struct failed.");
|
||||
gst_element_error (ogg, LIBRARY, TOO_LAZY, NULL, ("Creating ogg_stream struct failed."));
|
||||
}
|
||||
ogg->srcpads = g_slist_prepend (ogg->srcpads, cur);
|
||||
}
|
||||
}
|
||||
if (cur == NULL) {
|
||||
gst_element_error (GST_ELEMENT (ogg), "invalid ogg stream serial no");
|
||||
gst_element_error (ogg, LIBRARY, TOO_LAZY, NULL, ("invalid ogg stream serial no"));
|
||||
return;
|
||||
}
|
||||
if (ogg_stream_pagein (&cur->stream, page) != 0) {
|
||||
|
@ -438,8 +438,7 @@ gst_ogg_pad_push (GstOggDemux *ogg, GstOggPad *pad)
|
|||
gchar *name = g_strdup_printf ("serial %d", pad->serial);
|
||||
|
||||
if (caps == NULL) {
|
||||
gst_element_error (GST_ELEMENT (ogg),
|
||||
"couldn't determine stream type from media");
|
||||
gst_element_error (ogg, STREAM, TYPE_NOT_FOUND, NULL, NULL);
|
||||
return;
|
||||
}
|
||||
pad->pad = gst_pad_new_from_template (
|
||||
|
|
|
@ -783,7 +783,7 @@ gst_vorbisenc_chain (GstPad * pad, GstData *_data)
|
|||
|
||||
if (!vorbisenc->setup) {
|
||||
gst_buffer_unref (buf);
|
||||
gst_element_error (GST_ELEMENT (vorbisenc), "encoder not initialized (input is not audio?)");
|
||||
gst_element_error (vorbisenc, CORE, NEGOTIATION, NULL, ("encoder not initialized (input is not audio?)"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -550,7 +550,7 @@ gst_vorbisfile_loop (GstElement *element)
|
|||
/* open our custom vorbisfile data object with the callbacks we provide */
|
||||
if (ov_open_callbacks (vorbisfile, &vorbisfile->vf, NULL, 0,
|
||||
vorbisfile_ov_callbacks) < 0) {
|
||||
gst_element_error (element, "this is not a vorbis file");
|
||||
gst_element_error (element, STREAM, WRONG_TYPE, NULL, NULL);
|
||||
return;
|
||||
}
|
||||
vorbisfile->need_discont = TRUE;
|
||||
|
|
|
@ -65,3 +65,4 @@ libgstinterfaces_@GST_MAJORMINOR@_la_LIBADD = \
|
|||
|
||||
libgstinterfaces_@GST_MAJORMINOR@_la_LDFLAGS = @GST_PLUGINS_LT_LDFLAGS@ -version-info @GST_PLUGINS_LIBVERSION@
|
||||
|
||||
noinst_HEADERS = gst-i18n-plugin.h
|
||||
|
|
|
@ -199,7 +199,7 @@ gst_riff_peek_head (GstRiffRead *riff,
|
|||
gst_pad_event_default (riff->sinkpad, event);
|
||||
} else {
|
||||
gst_event_unref (event);
|
||||
gst_element_error (GST_ELEMENT (riff), "Read error");
|
||||
gst_element_error (riff, RESOURCE, READ, NULL, NULL);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ gst_riff_read_element_data (GstRiffRead *riff,
|
|||
GstBuffer *buf = NULL;
|
||||
|
||||
if (gst_bytestream_peek (riff->bs, &buf, length) != length) {
|
||||
gst_element_error (GST_ELEMENT (riff), "Read error");
|
||||
gst_element_error (riff, RESOURCE, READ, NULL, NULL);
|
||||
if (buf)
|
||||
gst_buffer_unref (buf);
|
||||
return NULL;
|
||||
|
@ -271,7 +271,7 @@ gst_riff_read_seek (GstRiffRead *riff,
|
|||
|
||||
/* now seek */
|
||||
if (!gst_bytestream_seek (riff->bs, offset, GST_SEEK_METHOD_SET)) {
|
||||
gst_element_error (GST_ELEMENT (riff), "Seek failed");
|
||||
gst_element_error (riff, RESOURCE, SEEK, NULL, NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -283,8 +283,8 @@ gst_riff_read_seek (GstRiffRead *riff,
|
|||
/* get the discont event and return */
|
||||
gst_bytestream_get_status (riff->bs, &remaining, &event);
|
||||
if (!event || GST_EVENT_TYPE (event) != GST_EVENT_DISCONTINUOUS) {
|
||||
gst_element_error (GST_ELEMENT (riff),
|
||||
"No discontinuity event after seek");
|
||||
gst_element_error (riff, CORE, EVENT, NULL,
|
||||
("No discontinuity event after seek"));
|
||||
if (event)
|
||||
gst_event_unref (event);
|
||||
return NULL;
|
||||
|
@ -327,7 +327,7 @@ gst_riff_peek_list (GstRiffRead *riff)
|
|||
}
|
||||
|
||||
if (gst_bytestream_peek_bytes (riff->bs, &data, 12) != 12) {
|
||||
gst_element_error (GST_ELEMENT (riff), "Read error");
|
||||
gst_element_error (riff, RESOURCE, READ, NULL, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -687,7 +687,7 @@ gst_riff_read_list (GstRiffRead *riff,
|
|||
}
|
||||
gst_bytestream_flush_fast (riff->bs, 8);
|
||||
if (gst_bytestream_peek_bytes (riff->bs, &data, 4) != 4) {
|
||||
gst_element_error (GST_ELEMENT (riff), "Read error");
|
||||
gst_element_error (riff, RESOURCE, READ, NULL, NULL);
|
||||
return FALSE;
|
||||
}
|
||||
gst_bytestream_flush_fast (riff->bs, 4);
|
||||
|
@ -845,15 +845,14 @@ gst_riff_read_header (GstRiffRead *riff,
|
|||
if (!gst_riff_peek_head (riff, &tag, &length, NULL))
|
||||
return FALSE;
|
||||
if (tag != GST_RIFF_TAG_RIFF) {
|
||||
gst_element_error (GST_ELEMENT (riff),
|
||||
"Not a RIFF file");
|
||||
gst_element_error (riff, STREAM, WRONG_TYPE, NULL, NULL);
|
||||
return FALSE;
|
||||
}
|
||||
gst_bytestream_flush_fast (riff->bs, 8);
|
||||
|
||||
/* doctype */
|
||||
if (gst_bytestream_peek_bytes (riff->bs, &data, 4) != 4) {
|
||||
gst_element_error (GST_ELEMENT (riff), "Read error");
|
||||
gst_element_error (riff, RESOURCE, READ, NULL, NULL);
|
||||
return FALSE;
|
||||
}
|
||||
gst_bytestream_flush_fast (riff->bs, 4);
|
||||
|
|
|
@ -148,29 +148,29 @@ gst_adder_parse_caps (GstAdder *adder, GstStructure *structure)
|
|||
|
||||
/* provide an error message if we can't link */
|
||||
if (adder->format != GST_ADDER_FORMAT_INT) {
|
||||
gst_element_error (el, "can't link a non-int pad to an int adder");
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL, ("can't link a non-int pad to an int adder"));
|
||||
return FALSE;
|
||||
}
|
||||
if (adder->channels != channels) {
|
||||
gst_element_error (el,
|
||||
"can't link %d-channel pad with %d-channel adder",
|
||||
channels, adder->channels);
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL,
|
||||
("can't link %d-channel pad with %d-channel adder",
|
||||
channels, adder->channels));
|
||||
return FALSE;
|
||||
}
|
||||
if (adder->rate != rate) {
|
||||
gst_element_error (el, "can't link %d Hz pad with %d Hz adder",
|
||||
rate, adder->rate);
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL, ("can't link %d Hz pad with %d Hz adder",
|
||||
rate, adder->rate));
|
||||
return FALSE;
|
||||
}
|
||||
if (adder->width != width) {
|
||||
gst_element_error (el, "can't link %d-bit pad with %d-bit adder",
|
||||
width, adder->width);
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL, ("can't link %d-bit pad with %d-bit adder",
|
||||
width, adder->width));
|
||||
return FALSE;
|
||||
}
|
||||
if (adder->is_signed != is_signed) {
|
||||
gst_element_error (el, "can't link %ssigned pad with %ssigned adder",
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL, ("can't link %ssigned pad with %ssigned adder",
|
||||
adder->is_signed ? "" : "un",
|
||||
is_signed ? "" : "un");
|
||||
is_signed ? "" : "un"));
|
||||
return FALSE;
|
||||
}
|
||||
} else if (strcmp (mimetype, "audio/x-raw-float") == 0) {
|
||||
|
@ -181,23 +181,23 @@ gst_adder_parse_caps (GstAdder *adder, GstStructure *structure)
|
|||
gst_structure_get_int (structure, "rate", &rate);
|
||||
|
||||
if (adder->format != GST_ADDER_FORMAT_FLOAT) {
|
||||
gst_element_error (el, "can't link a non-float pad to a float adder");
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL, ("can't link a non-float pad to a float adder"));
|
||||
return FALSE;
|
||||
}
|
||||
if (adder->channels != channels) {
|
||||
gst_element_error (el,
|
||||
"can't link %d-channel pad with %d-channel adder",
|
||||
channels, adder->channels);
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL,
|
||||
("can't link %d-channel pad with %d-channel adder",
|
||||
channels, adder->channels));
|
||||
return FALSE;
|
||||
}
|
||||
if (adder->rate != rate) {
|
||||
gst_element_error (el, "can't link %d Hz pad with %d Hz adder",
|
||||
rate, adder->rate);
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL, ("can't link %d Hz pad with %d Hz adder",
|
||||
rate, adder->rate));
|
||||
return FALSE;
|
||||
}
|
||||
if (adder->width != width) {
|
||||
gst_element_error (el, "can't link %d bit float pad with %d bit adder",
|
||||
width, adder->width);
|
||||
gst_element_error (el, CORE, NEGOTIATION, NULL, ("can't link %d bit float pad with %d bit adder",
|
||||
width, adder->width));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -400,7 +400,7 @@ gst_adder_loop (GstElement *element)
|
|||
buf_out = gst_buffer_new_and_alloc (1024);
|
||||
|
||||
if (buf_out == NULL) {
|
||||
gst_element_error (GST_ELEMENT (adder), "could not get new output buffer");
|
||||
gst_element_error (adder, CORE, TOO_LAZY, NULL, ("could not get new output buffer"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -488,9 +488,9 @@ gst_adder_loop (GstElement *element)
|
|||
for (i = 0; i < GST_BUFFER_SIZE (buf_out); i++)
|
||||
out[i] = CLAMP(out[i] + in[i], 0x80, 0x7f);
|
||||
} else {
|
||||
gst_element_error (GST_ELEMENT (adder),
|
||||
"invalid width (%u) for integer audio in gstadder",
|
||||
adder->width);
|
||||
gst_element_error (adder, STREAM, FORMAT, NULL,
|
||||
("invalid width (%u) for integer audio in gstadder",
|
||||
adder->width));
|
||||
return;
|
||||
}
|
||||
} else if (adder->format == GST_ADDER_FORMAT_FLOAT) {
|
||||
|
@ -505,15 +505,15 @@ gst_adder_loop (GstElement *element)
|
|||
for (i = 0; i < GST_BUFFER_SIZE (buf_out) / sizeof (gfloat); i++)
|
||||
out[i] = CLAMP(out[i] + in[i], -1.0, 1.0);
|
||||
} else {
|
||||
gst_element_error (GST_ELEMENT (adder),
|
||||
"invalid width (%u) for float audio in gstadder",
|
||||
adder->width);
|
||||
gst_element_error (adder, STREAM, FORMAT, NULL,
|
||||
("invalid width (%u) for float audio in gstadder",
|
||||
adder->width));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
gst_element_error (GST_ELEMENT (adder),
|
||||
"invalid audio format (%d) in gstadder",
|
||||
adder->format);
|
||||
gst_element_error (adder, STREAM, FORMAT, NULL,
|
||||
("invalid audio format (%d) in gstadder",
|
||||
adder->format));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -527,9 +527,8 @@ gst_adder_loop (GstElement *element)
|
|||
GstCaps *caps = gst_caps_from_string (GST_AUDIO_INT_PAD_TEMPLATE_CAPS);
|
||||
|
||||
if (gst_pad_try_set_caps (adder->srcpad, caps) < 0) {
|
||||
gst_element_error (GST_ELEMENT (adder),
|
||||
"Couldn't set the default caps, "
|
||||
"use link_filtered instead");
|
||||
gst_element_error (adder, CORE, NEGOTIATION, NULL,
|
||||
("Couldn't set the default caps, use link_filtered instead"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -383,7 +383,7 @@ gst_sinesrc_get (GstPad *pad)
|
|||
if (!GST_PAD_CAPS (src->srcpad)) {
|
||||
if (gst_sinesrc_link (src->srcpad,
|
||||
gst_pad_get_allowed_caps (src->srcpad)) <= 0) {
|
||||
gst_element_error (GST_ELEMENT (src), "Could not set caps");
|
||||
gst_element_error (src, CORE, NEGOTIATION, NULL, NULL);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -526,7 +526,7 @@ gst_vorbis_tag_chain (GstPad *pad, GstData *data)
|
|||
}
|
||||
|
||||
if (GST_BUFFER_SIZE (buffer) == 0)
|
||||
gst_element_error (GST_ELEMENT (tag), "empty buffers are not allowed in vorbis data");
|
||||
gst_element_error (tag, CORE, TAG, NULL, ("empty buffers are not allowed in vorbis data"));
|
||||
|
||||
if (GST_BUFFER_DATA (buffer)[0] == 3) {
|
||||
gchar *vendor;
|
||||
|
@ -534,7 +534,7 @@ gst_vorbis_tag_chain (GstPad *pad, GstData *data)
|
|||
|
||||
gst_data_unref (data);
|
||||
if (list == NULL) {
|
||||
gst_element_error (GST_ELEMENT (tag), "invalid data in vorbis comments");
|
||||
gst_element_error (tag, CORE, TAG, NULL, ("invalid data in vorbis comments"));
|
||||
return;
|
||||
}
|
||||
gst_element_found_tags_for_pad (GST_ELEMENT (tag), tag->srcpad, 0,
|
||||
|
|
|
@ -406,8 +406,8 @@ gst_videotestsrc_get (GstPad * pad)
|
|||
videotestsrc = GST_VIDEOTESTSRC (gst_pad_get_parent (pad));
|
||||
|
||||
if (videotestsrc->fourcc == NULL) {
|
||||
gst_element_error (GST_ELEMENT (videotestsrc),
|
||||
"No color format set - aborting");
|
||||
gst_element_error (videotestsrc, CORE, NEGOTIATION, NULL,
|
||||
("format wasn't negotiated before get function"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -269,9 +269,9 @@ gst_v4lmjpegsink_chain (GstPad *pad,
|
|||
/* check size */
|
||||
if (GST_BUFFER_SIZE(buf) > v4lmjpegsink->breq.size)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Buffer too big (%d KB), max. buffersize is %d KB",
|
||||
GST_BUFFER_SIZE(buf)/1024, v4lmjpegsink->breq.size/1024);
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, WRITE, NULL,
|
||||
("Buffer too big (%d KB), max. buffersize is %ld KB",
|
||||
GST_BUFFER_SIZE(buf)/1024, v4lmjpegsink->breq.size/1024));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -811,6 +811,6 @@ gst_v4lmjpegsrc_buffer_free (GstBuffer *buf)
|
|||
}
|
||||
|
||||
if (n == v4lmjpegsrc->breq.count)
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Couldn't find the buffer");
|
||||
gst_element_error(v4lmjpegsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Couldn't find the buffer"));
|
||||
}
|
||||
|
|
|
@ -829,8 +829,8 @@ gst_v4lsrc_buffer_free (GstBuffer *buf)
|
|||
}
|
||||
|
||||
if (n == v4lsrc->mbuf.frames)
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Couldn\'t find the buffer");
|
||||
gst_element_error (v4lsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Couldn\'t find the buffer"));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -124,9 +124,8 @@ gst_v4l_set_window (GstElement *element,
|
|||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCSWIN, &vwin) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Failed to set the video window: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, TOO_LAZY, NULL,
|
||||
("Failed to set the video window: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -152,9 +151,9 @@ gst_v4l_enable_overlay (GstV4lElement *v4lelement,
|
|||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCCAPTURE, &doit) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Failed to %s overlay display: %s",
|
||||
enable?"enable":"disable", g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, TOO_LAZY, NULL,
|
||||
("Failed to %s overlay display: %s",
|
||||
enable?"enable":"disable", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -84,9 +84,9 @@ gst_v4l_get_capabilities (GstV4lElement *v4lelement)
|
|||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCGCAP, &(v4lelement->vcap)) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting \'%s\' capabilities: %s",
|
||||
v4lelement->videodev, g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("error getting capabilities %s of from device %s",
|
||||
g_strerror (errno), v4lelement->videodev));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -111,8 +111,8 @@ gst_v4l_open (GstV4lElement *v4lelement)
|
|||
|
||||
/* be sure we have a device */
|
||||
if (!v4lelement->videodev) {
|
||||
gst_element_error (GST_ELEMENT (v4lelement),
|
||||
"No device given - open failed");
|
||||
gst_element_error (v4lelement, RESOURCE, NOT_FOUND,
|
||||
(_("No device specified")), NULL);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -120,9 +120,9 @@ gst_v4l_open (GstV4lElement *v4lelement)
|
|||
v4lelement->video_fd = open(v4lelement->videodev, O_RDWR);
|
||||
if (!GST_V4L_IS_OPEN(v4lelement))
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Failed to open device (\'%s\'): %s",
|
||||
v4lelement->videodev, g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, OPEN_READ_WRITE,
|
||||
(_("Could not open device \"%s\" for reading"), v4lelement->videodev),
|
||||
GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -141,9 +141,9 @@ gst_v4l_open (GstV4lElement *v4lelement)
|
|||
!(v4lelement->vcap.type & VID_TYPE_MJPEG_ENCODER)) ||
|
||||
(GST_IS_V4LMJPEGSINK(v4lelement) &&
|
||||
!(v4lelement->vcap.type & VID_TYPE_MJPEG_DECODER))) {
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Device opened, but wrong type (0x%x)",
|
||||
v4lelement->vcap.type);
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Device opened, but wrong type (0x%x)",
|
||||
v4lelement->vcap.type));
|
||||
close(v4lelement->video_fd);
|
||||
v4lelement->video_fd = -1;
|
||||
return FALSE;
|
||||
|
@ -354,17 +354,17 @@ gst_v4l_set_chan_norm (GstV4lElement *v4lelement,
|
|||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCSCHAN, &(v4lelement->vchan)) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error setting the channel/norm settings: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error setting the channel/norm settings: %s",
|
||||
g_strerror(errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCGCHAN, &(v4lelement->vchan)) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting the channel/norm settings: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting the channel/norm settings: %s",
|
||||
g_strerror(errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -391,9 +391,8 @@ gst_v4l_get_signal (GstV4lElement *v4lelement,
|
|||
tuner.tuner = tunernum;
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCGTUNER, &tuner) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting tuner signal: %s",
|
||||
sys_errlist[errno]);
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting tuner signal: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -428,9 +427,8 @@ gst_v4l_get_frequency (GstV4lElement *v4lelement,
|
|||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCGFREQ, frequency) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting tuner frequency: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting tuner frequency: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -463,9 +461,8 @@ gst_v4l_set_frequency (GstV4lElement *v4lelement,
|
|||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCSFREQ, &frequency) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error setting tuner frequency: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error setting tuner frequency: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -492,9 +489,8 @@ gst_v4l_get_picture (GstV4lElement *v4lelement,
|
|||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCGPICT, &vpic) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting picture parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting picture parameters: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -513,9 +509,8 @@ gst_v4l_get_picture (GstV4lElement *v4lelement,
|
|||
*value = vpic.colour;
|
||||
break;
|
||||
default:
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting picture parameters: unknown type %d",
|
||||
type);
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting picture parameters: unknown type %d", type));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -542,9 +537,8 @@ gst_v4l_set_picture (GstV4lElement *v4lelement,
|
|||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCGPICT, &vpic) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting picture parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting picture parameters: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -563,17 +557,15 @@ gst_v4l_set_picture (GstV4lElement *v4lelement,
|
|||
vpic.colour = value;
|
||||
break;
|
||||
default:
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error setting picture parameters: unknown type %d",
|
||||
type);
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error setting picture parameters: unknown type %d", type));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCSPICT, &vpic) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error setting picture parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error setting picture parameters: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -602,9 +594,8 @@ gst_v4l_get_audio (GstV4lElement *v4lelement,
|
|||
vau.audio = audionum;
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCGAUDIO, &vau) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting audio parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting audio parameters: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -620,9 +611,8 @@ gst_v4l_get_audio (GstV4lElement *v4lelement,
|
|||
*value = vau.mode;
|
||||
break;
|
||||
default:
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting audio parameters: unknown type %d",
|
||||
type);
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting audio parameters: unknown type %d", type));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -651,9 +641,8 @@ gst_v4l_set_audio (GstV4lElement *v4lelement,
|
|||
vau.audio = audionum;
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCGAUDIO, &vau) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error getting audio parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error getting audio parameters: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -662,8 +651,8 @@ gst_v4l_set_audio (GstV4lElement *v4lelement,
|
|||
case V4L_AUDIO_MUTE:
|
||||
if (!(vau.flags & VIDEO_AUDIO_MUTABLE))
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error setting audio mute: (un)setting mute is not supported");
|
||||
gst_element_error (v4lelement, CORE, NOT_IMPLEMENTED, NULL,
|
||||
("Error setting audio mute: (un)setting mute is not supported"));
|
||||
return FALSE;
|
||||
}
|
||||
if (value)
|
||||
|
@ -674,8 +663,8 @@ gst_v4l_set_audio (GstV4lElement *v4lelement,
|
|||
case V4L_AUDIO_VOLUME:
|
||||
if (!(vau.flags & VIDEO_AUDIO_VOLUME))
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error setting audio volume: setting volume is not supported");
|
||||
gst_element_error (v4lelement, CORE, NOT_IMPLEMENTED, NULL,
|
||||
("Error setting audio volume: setting volume is not supported"));
|
||||
return FALSE;
|
||||
}
|
||||
vau.volume = value;
|
||||
|
@ -684,17 +673,15 @@ gst_v4l_set_audio (GstV4lElement *v4lelement,
|
|||
vau.mode = value;
|
||||
break;
|
||||
default:
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error setting audio parameters: unknown type %d",
|
||||
type);
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error setting audio parameters: unknown type %d", type));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (ioctl(v4lelement->video_fd, VIDIOCSAUDIO, &vau) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lelement),
|
||||
"Error setting audio parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, NULL,
|
||||
("Error setting audio parameters: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#define __V4L_CALLS_H__
|
||||
|
||||
#include "gstv4lelement.h"
|
||||
#include "gst-libs/gst/gst-i18n-plugin.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -39,38 +40,38 @@ extern "C" {
|
|||
(v4lelement->vcap.type & VID_TYPE_OVERLAY)
|
||||
|
||||
/* checks whether the current v4lelement has already been open()'ed or not */
|
||||
#define GST_V4L_CHECK_OPEN(v4lelement) \
|
||||
if (v4lelement->video_fd <= 0) \
|
||||
{ \
|
||||
gst_element_error(GST_ELEMENT(v4lelement), \
|
||||
"Device is not open"); \
|
||||
return FALSE; \
|
||||
#define GST_V4L_CHECK_OPEN(v4lelement) \
|
||||
if (v4lelement->video_fd <= 0) \
|
||||
{ \
|
||||
gst_element_error (v4lelement, RESOURCE, TOO_LAZY, \
|
||||
(_("Device is not open")), NULL); \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
/* checks whether the current v4lelement is close()'ed or whether it is still open */
|
||||
#define GST_V4L_CHECK_NOT_OPEN(v4lelement) \
|
||||
if (v4lelement->video_fd != -1) \
|
||||
{ \
|
||||
gst_element_error(GST_ELEMENT(v4lelement), \
|
||||
"Device is open"); \
|
||||
return FALSE; \
|
||||
gst_element_error (v4lelement, RESOURCE, TOO_LAZY, \
|
||||
(_("Device is open")), NULL); \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
/* checks whether the current v4lelement does video overlay */
|
||||
#define GST_V4L_CHECK_OVERLAY(v4lelement) \
|
||||
if (!(v4lelement->vcap.type & VID_TYPE_OVERLAY)) \
|
||||
{ \
|
||||
gst_element_error(GST_ELEMENT(v4lelement), \
|
||||
"Device doesn't do overlay"); \
|
||||
return FALSE; \
|
||||
gst_element_error (v4lelement, RESOURCE, TOO_LAZY, \
|
||||
NULL, ("Device cannot handle overlay")); \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
/* checks whether we're in capture mode or not */
|
||||
#define GST_V4L_CHECK_ACTIVE(v4lelement) \
|
||||
if (v4lelement->buffer == NULL) \
|
||||
{ \
|
||||
gst_element_error(GST_ELEMENT(v4lelement), \
|
||||
"Device is not in streaming mode"); \
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, \
|
||||
NULL, ("Device is not in streaming mode")); \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
|
@ -78,8 +79,8 @@ extern "C" {
|
|||
#define GST_V4L_CHECK_NOT_ACTIVE(v4lelement) \
|
||||
if (v4lelement->buffer != NULL) \
|
||||
{ \
|
||||
gst_element_error(GST_ELEMENT(v4lelement), \
|
||||
"Device is in streaming mode"); \
|
||||
gst_element_error (v4lelement, RESOURCE, SETTINGS, \
|
||||
NULL, ("Device is in streaming mode")); \
|
||||
return FALSE; \
|
||||
}
|
||||
|
||||
|
|
|
@ -80,9 +80,9 @@ gst_v4lmjpegsink_sync_thread (void *arg)
|
|||
if (ioctl(GST_V4LELEMENT(v4lmjpegsink)->video_fd, MJPIOC_SYNC,
|
||||
&(v4lmjpegsink->bsync)) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Failed to sync on frame %d: %s",
|
||||
frame, g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, SYNC, NULL,
|
||||
("Failed to sync on frame %d: %s",
|
||||
frame, g_strerror (errno)));
|
||||
g_mutex_lock(v4lmjpegsink->mutex_queued_frames);
|
||||
v4lmjpegsink->isqueued_queued_frames[frame] = -1;
|
||||
g_cond_broadcast(v4lmjpegsink->cond_queued_frames[frame]);
|
||||
|
@ -94,8 +94,8 @@ gst_v4lmjpegsink_sync_thread (void *arg)
|
|||
/* be sure that we're not confusing */
|
||||
if (frame != v4lmjpegsink->bsync.frame)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Internal error: frame number confusion");
|
||||
gst_element_error (v4lmjpegsink, CORE, TOO_LAZY, NULL,
|
||||
("Internal error: frame number confusion"));
|
||||
goto end;
|
||||
}
|
||||
g_mutex_lock(v4lmjpegsink->mutex_queued_frames);
|
||||
|
@ -129,9 +129,9 @@ gst_v4lmjpegsink_queue_frame (GstV4lMjpegSink *v4lmjpegsink,
|
|||
/* queue on this frame */
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsink)->video_fd, MJPIOC_QBUF_PLAY, &num) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Failed to queue frame %d: %s",
|
||||
num, g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, WRITE, NULL,
|
||||
("Failed to queue frame %d: %s",
|
||||
num, g_strerror(errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -226,9 +226,7 @@ gst_v4lmjpegsink_set_playback (GstV4lMjpegSink *v4lmjpegsink,
|
|||
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsink)->video_fd, MJPIOC_G_PARAMS, &bparm) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Error getting playback parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, SETTINGS, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -244,9 +242,9 @@ gst_v4lmjpegsink_set_playback (GstV4lMjpegSink *v4lmjpegsink,
|
|||
|
||||
if (width > mw || height > mh)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Video dimensions (%dx%d) are larger than device max (%dx%d)",
|
||||
width, height, mw, mh);
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, TOO_LAZY, NULL,
|
||||
("Video dimensions (%dx%d) are larger than device max (%dx%d)",
|
||||
width, height, mw, mh));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -274,9 +272,9 @@ gst_v4lmjpegsink_set_playback (GstV4lMjpegSink *v4lmjpegsink,
|
|||
{
|
||||
if (height > mh/2)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Video dimensions (%dx%d) too large for non-interlaced playback (%dx%d)",
|
||||
width, height, mw, mh/2);
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, TOO_LAZY, NULL,
|
||||
("Video dimensions (%dx%d) too large for non-interlaced playback (%dx%d)",
|
||||
width, height, mw, mh/2));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -321,9 +319,7 @@ gst_v4lmjpegsink_set_playback (GstV4lMjpegSink *v4lmjpegsink,
|
|||
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsink)->video_fd, MJPIOC_S_PARAMS, &bparm) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Error setting playback parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, SETTINGS, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -349,9 +345,7 @@ gst_v4lmjpegsink_playback_init (GstV4lMjpegSink *v4lmjpegsink)
|
|||
/* Request buffers */
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsink)->video_fd, MJPIOC_REQBUFS, &(v4lmjpegsink->breq)) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Error requesting video buffers: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, READ, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -364,9 +358,9 @@ gst_v4lmjpegsink_playback_init (GstV4lMjpegSink *v4lmjpegsink)
|
|||
PROT_READ|PROT_WRITE, MAP_SHARED, GST_V4LELEMENT(v4lmjpegsink)->video_fd, 0);
|
||||
if (GST_V4LELEMENT(v4lmjpegsink)->buffer == MAP_FAILED)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Error mapping video buffers: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, TOO_LAZY, NULL,
|
||||
("Error mapping video buffers: %s",
|
||||
g_strerror(errno)));
|
||||
GST_V4LELEMENT(v4lmjpegsink)->buffer = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -377,18 +371,18 @@ gst_v4lmjpegsink_playback_init (GstV4lMjpegSink *v4lmjpegsink)
|
|||
malloc(sizeof(gint8) * v4lmjpegsink->breq.count);
|
||||
if (!v4lmjpegsink->isqueued_queued_frames)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Failed to create queue tracker: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, TOO_LAZY, NULL,
|
||||
("Failed to create queue tracker: %s",
|
||||
g_strerror(errno)));
|
||||
return FALSE;
|
||||
}
|
||||
v4lmjpegsink->cond_queued_frames = (GCond **)
|
||||
malloc(sizeof(GCond *) * v4lmjpegsink->breq.count);
|
||||
if (!v4lmjpegsink->cond_queued_frames)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Failed to create queue condition holders: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, TOO_LAZY, NULL,
|
||||
("Failed to create queue condition holders: %s",
|
||||
g_strerror(errno)));
|
||||
return FALSE;
|
||||
}
|
||||
for (n=0;n<v4lmjpegsink->breq.count;n++)
|
||||
|
@ -425,8 +419,8 @@ gst_v4lmjpegsink_playback_start (GstV4lMjpegSink *v4lmjpegsink)
|
|||
gst_v4lmjpegsink_sync_thread, (void *) v4lmjpegsink, TRUE, &error);
|
||||
if(!v4lmjpegsink->thread_queued_frames)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsink),
|
||||
"Failed to create sync thread: %s", error->message);
|
||||
gst_element_error (v4lmjpegsink, RESOURCE, TOO_LAZY, NULL,
|
||||
("Failed to create sync thread: %s", error->message));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -67,9 +67,9 @@ gst_v4lmjpegsrc_queue_frame (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsrc)->video_fd, MJPIOC_QBUF_CAPT, &num) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Error queueing a buffer (%d): %s",
|
||||
num, g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, READ, NULL,
|
||||
("Error queueing a buffer (%d): %s",
|
||||
num, g_strerror(errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -99,9 +99,7 @@ gst_v4lmjpegsrc_sync_next_frame (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
while (ioctl(GST_V4LELEMENT(v4lmjpegsrc)->video_fd,
|
||||
MJPIOC_SYNC, &(v4lmjpegsrc->bsync)) < 0) {
|
||||
if (errno != EINTR) {
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Error syncing on a buffer: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, SYNC, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
DEBUG("Sync got interrupted");
|
||||
|
@ -163,9 +161,7 @@ gst_v4lmjpegsrc_set_capture (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
/* Query params for capture */
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsrc)->video_fd, MJPIOC_G_PARAMS, &bparm) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Error getting video parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, SETTINGS, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -191,9 +187,7 @@ gst_v4lmjpegsrc_set_capture (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
/* Set params for capture */
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsrc)->video_fd, MJPIOC_S_PARAMS, &bparm) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Error setting video parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, SETTINGS, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -237,9 +231,7 @@ gboolean gst_v4lmjpegsrc_set_capture_m (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
/* Query params for capture */
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsrc)->video_fd, MJPIOC_G_PARAMS, &bparm) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Error getting video parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, SETTINGS, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -274,23 +266,23 @@ gboolean gst_v4lmjpegsrc_set_capture_m (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
|
||||
if (width + x_offset > maxwidth)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Image width+offset (%d) bigger than maximum (%d)",
|
||||
width + x_offset, maxwidth);
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Image width+offset (%d) bigger than maximum (%d)",
|
||||
width + x_offset, maxwidth));
|
||||
return FALSE;
|
||||
}
|
||||
if ((width%(bparm.HorDcm*16))!=0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Image width (%d) not multiple of %d (required for JPEG)",
|
||||
width, bparm.HorDcm*16);
|
||||
gst_element_error (v4lmjpegsrc, STREAM, FORMAT, NULL,
|
||||
("Image width (%d) not multiple of %d (required for JPEG)",
|
||||
width, bparm.HorDcm*16));
|
||||
return FALSE;
|
||||
}
|
||||
if (height + y_offset > (norm==VIDEO_MODE_NTSC ? 480 : 576))
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Image height+offset (%d) bigger than maximum (%d)",
|
||||
height + y_offset, (norm==VIDEO_MODE_NTSC ? 480 : 576));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Image height+offset (%d) bigger than maximum (%d)",
|
||||
height + y_offset, (norm==VIDEO_MODE_NTSC ? 480 : 576)));
|
||||
return FALSE;
|
||||
}
|
||||
/* RJ: Image height must only be a multiple of 8, but geom_height
|
||||
|
@ -298,9 +290,9 @@ gboolean gst_v4lmjpegsrc_set_capture_m (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
*/
|
||||
if ((height%(bparm.VerDcm*16))!=0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Image height (%d) not multiple of %d (required for JPEG)",
|
||||
height, bparm.VerDcm*16);
|
||||
gst_element_error (v4lmjpegsrc, STREAM, FORMAT, NULL,
|
||||
("Image height (%d) not multiple of %d (required for JPEG)",
|
||||
height, bparm.VerDcm*16));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -321,9 +313,7 @@ gboolean gst_v4lmjpegsrc_set_capture_m (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
/* Set params for capture */
|
||||
if (ioctl(GST_V4LELEMENT(v4lmjpegsrc)->video_fd, MJPIOC_S_PARAMS, &bparm) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Error setting video parameters: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, SETTINGS, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -348,17 +338,15 @@ gst_v4lmjpegsrc_capture_init (GstV4lMjpegSrc *v4lmjpegsrc)
|
|||
if (ioctl(GST_V4LELEMENT(v4lmjpegsrc)->video_fd,
|
||||
MJPIOC_REQBUFS, &(v4lmjpegsrc->breq)) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Error requesting video buffers: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, READ, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (v4lmjpegsrc->breq.count < MIN_BUFFERS_QUEUED)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Too little buffers. We got %d, we want at least %d",
|
||||
v4lmjpegsrc->breq.count, MIN_BUFFERS_QUEUED);
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, READ, NULL,
|
||||
("Too little buffers. We got %ld, we want at least %d",
|
||||
v4lmjpegsrc->breq.count, MIN_BUFFERS_QUEUED));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -383,9 +371,8 @@ gst_v4lmjpegsrc_capture_init (GstV4lMjpegSrc *v4lmjpegsrc)
|
|||
PROT_READ|PROT_WRITE, MAP_SHARED, GST_V4LELEMENT(v4lmjpegsrc)->video_fd, 0);
|
||||
if (GST_V4LELEMENT(v4lmjpegsrc)->buffer == MAP_FAILED)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Error mapping video buffers: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Error mapping video buffers: %s", g_strerror (errno)));
|
||||
GST_V4LELEMENT(v4lmjpegsrc)->buffer = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -526,10 +513,10 @@ gst_v4lmjpegsrc_requeue_frame (GstV4lMjpegSrc *v4lmjpegsrc,
|
|||
g_mutex_lock(v4lmjpegsrc->mutex_queue_state);
|
||||
|
||||
if (v4lmjpegsrc->frame_queue_state[num] != QUEUE_STATE_SYNCED) {
|
||||
gst_element_error(GST_ELEMENT(v4lmjpegsrc),
|
||||
"Invalid state %d (expected %d), can't requeue",
|
||||
gst_element_error (v4lmjpegsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Invalid state %d (expected %d), can't requeue",
|
||||
v4lmjpegsrc->frame_queue_state[num],
|
||||
QUEUE_STATE_SYNCED);
|
||||
QUEUE_STATE_SYNCED));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -95,9 +95,8 @@ gst_v4lsrc_queue_frame (GstV4lSrc *v4lsrc,
|
|||
if (ioctl(GST_V4LELEMENT(v4lsrc)->video_fd,
|
||||
VIDIOCMCAPTURE, &(v4lsrc->mmap)) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Error queueing a buffer (%d): %s",
|
||||
num, g_strerror(errno));
|
||||
gst_element_error (v4lsrc, RESOURCE, WRITE, NULL,
|
||||
("Error queueing a buffer (%d): %s", num, g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -126,9 +125,7 @@ gst_v4lsrc_sync_frame (GstV4lSrc *v4lsrc, gint num)
|
|||
/* if the sync() got interrupted, we can retry */
|
||||
if (errno != EINTR) {
|
||||
v4lsrc->frame_queue_state[num] = QUEUE_STATE_ERROR;
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Error syncing on a buffer (%d): %s",
|
||||
num, g_strerror(errno));
|
||||
gst_element_error (v4lsrc, RESOURCE, SYNC, NULL, GST_ERROR_SYSTEM);
|
||||
return FALSE;
|
||||
}
|
||||
DEBUG("Sync got interrupted");
|
||||
|
@ -190,17 +187,16 @@ gst_v4lsrc_capture_init (GstV4lSrc *v4lsrc)
|
|||
/* request buffer info */
|
||||
if (ioctl(GST_V4LELEMENT(v4lsrc)->video_fd, VIDIOCGMBUF, &(v4lsrc->mbuf)) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Error getting buffer information: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lsrc, RESOURCE, READ, NULL,
|
||||
("Error getting buffer information: %s", g_strerror (errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (v4lsrc->mbuf.frames < MIN_BUFFERS_QUEUED)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Too little buffers. We got %d, we want at least %d",
|
||||
v4lsrc->mbuf.frames, MIN_BUFFERS_QUEUED);
|
||||
gst_element_error (v4lsrc, RESOURCE, READ, NULL,
|
||||
("Not enough buffers. We got %d, we want at least %d",
|
||||
v4lsrc->mbuf.frames, MIN_BUFFERS_QUEUED));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -225,9 +221,8 @@ gst_v4lsrc_capture_init (GstV4lSrc *v4lsrc)
|
|||
PROT_READ|PROT_WRITE, MAP_SHARED, GST_V4LELEMENT(v4lsrc)->video_fd, 0);
|
||||
if (GST_V4LELEMENT(v4lsrc)->buffer == MAP_FAILED)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Error mapping video buffers: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Error mapping video buffers: %s", g_strerror (errno)));
|
||||
GST_V4LELEMENT(v4lsrc)->buffer = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -364,10 +359,10 @@ gst_v4lsrc_requeue_frame (GstV4lSrc *v4lsrc, gint num)
|
|||
g_mutex_lock(v4lsrc->mutex_queue_state);
|
||||
|
||||
if (v4lsrc->frame_queue_state[num] != QUEUE_STATE_SYNCED) {
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Invalid state %d (expected %d), can't requeue",
|
||||
gst_element_error (v4lsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Invalid state %d (expected %d), can't requeue",
|
||||
v4lsrc->frame_queue_state[num],
|
||||
QUEUE_STATE_SYNCED);
|
||||
QUEUE_STATE_SYNCED));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -478,9 +473,8 @@ gst_v4lsrc_try_palette (GstV4lSrc *v4lsrc,
|
|||
/* let's start by requesting a buffer and mmap()'ing it */
|
||||
if (ioctl(GST_V4LELEMENT(v4lsrc)->video_fd, VIDIOCGMBUF, &vmbuf) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Error getting buffer information: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lsrc, RESOURCE, READ, NULL,
|
||||
("Error getting buffer information: %s", g_strerror(errno)));
|
||||
return FALSE;
|
||||
}
|
||||
/* Map the buffers */
|
||||
|
@ -488,9 +482,8 @@ gst_v4lsrc_try_palette (GstV4lSrc *v4lsrc,
|
|||
MAP_SHARED, GST_V4LELEMENT(v4lsrc)->video_fd, 0);
|
||||
if (buffer == MAP_FAILED)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Error mapping our try-out buffer: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Error mapping our try-out buffer: %s", g_strerror(errno)));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -502,18 +495,15 @@ gst_v4lsrc_try_palette (GstV4lSrc *v4lsrc,
|
|||
if (ioctl(GST_V4LELEMENT(v4lsrc)->video_fd, VIDIOCMCAPTURE, &vmmap) < 0)
|
||||
{
|
||||
if (errno != EINVAL) /* our format failed! */
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Error queueing our try-out buffer: %s",
|
||||
g_strerror(errno));
|
||||
gst_element_error (v4lsrc, RESOURCE, TOO_LAZY, NULL,
|
||||
("Error queueing our try-out buffer: %s", g_strerror(errno)));
|
||||
munmap(buffer, vmbuf.size);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (ioctl(GST_V4LELEMENT(v4lsrc)->video_fd, VIDIOCSYNC, &frame) < 0)
|
||||
{
|
||||
gst_element_error(GST_ELEMENT(v4lsrc),
|
||||
"Error syncing on a buffer (%d): %s",
|
||||
frame, g_strerror(errno));
|
||||
gst_element_error (v4lsrc, RESOURCE, SYNC, NULL, GST_ERROR_SYSTEM);
|
||||
munmap(buffer, vmbuf.size);
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -449,7 +449,8 @@ gst_ximagesink_xcontext_get (GstXImageSink *ximagesink)
|
|||
{
|
||||
g_mutex_unlock (ximagesink->x_lock);
|
||||
g_free (xcontext);
|
||||
gst_element_error (GST_ELEMENT (ximagesink), "Could not open display");
|
||||
gst_element_error (ximagesink, RESOURCE, TOO_LAZY, NULL,
|
||||
("Could not open display"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -748,7 +749,7 @@ gst_ximagesink_chain (GstPad *pad, GstData *data)
|
|||
else /* No image available. Something went wrong during capsnego ! */
|
||||
{
|
||||
gst_buffer_unref (buf);
|
||||
gst_element_error (GST_ELEMENT (ximagesink), "no image to draw");
|
||||
gst_element_error (ximagesink, CORE, NEGOTIATION, NULL, ("no format defined before chain function"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -634,7 +634,8 @@ gst_xvimagesink_xcontext_get (GstXvImageSink *xvimagesink)
|
|||
{
|
||||
g_mutex_unlock (xvimagesink->x_lock);
|
||||
g_free (xcontext);
|
||||
gst_element_error (GST_ELEMENT (xvimagesink), "Could not open display");
|
||||
gst_element_error (xvimagesink, RESOURCE, TOO_LAZY, NULL,
|
||||
("Could not open display"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -1036,7 +1037,7 @@ gst_xvimagesink_chain (GstPad *pad, GstData *data)
|
|||
else /* No image available. Something went wrong during capsnego ! */
|
||||
{
|
||||
gst_buffer_unref (buf);
|
||||
gst_element_error (GST_ELEMENT (xvimagesink), "no image to draw");
|
||||
gst_element_error (xvimagesink, CORE, NEGOTIATION, NULL, ("no format defined before chain function"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,7 +115,7 @@ main (int argc, char *argv[])
|
|||
|
||||
/* Getting default audio and video plugins from GConf */
|
||||
audio_sink = gst_element_factory_make ("osssink", "audio_sink");
|
||||
video_sink = gst_element_factory_make ("xvimagesink", "video_sink");
|
||||
video_sink = gst_element_factory_make ("ximagesink", "video_sink");
|
||||
vis_element = gst_element_factory_make ("goom", "vis_element");
|
||||
data_src = gst_element_factory_make ("gnomevfssrc", "source");
|
||||
|
||||
|
|
Loading…
Reference in a new issue