From: Stephane L. <ler...@pd...> - 2004-05-31 14:17:09
|
CVS Root: /cvs/gstreamer Module: gst-plugins Changes by: leroutier Date: Tue Jun 01 2004 00:17:06 EST Log message: * gst-libs/gst/tuner/tunerchannel.h: - add a freq_multiplicator field to make the conversion between internal frequency unit and Hz * sys/v4l/gstv4lelement.c: * sys/v4l2/gstv4l2element.c: - change default video device to /dev/video0 * sys/v4l/v4l_calls.c: * sys/v4l2/v4l2_calls.c: - we only expose frequency to the user in Hz instead of bastard v4lX unit (either 62.5kHz or 62.5Hz) Modified files: . : ChangeLog gst-libs/gst/tuner: tunerchannel.h sys/v4l : gstv4lelement.c v4l_calls.c sys/v4l2 : gstv4l2element.c v4l2_calls.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ChangeLog.diff?r1=1.717&r2=1.718 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/gst-libs/gst/tuner/tunerchannel.h.diff?r1=1.5&r2=1.6 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/sys/v4l/gstv4lelement.c.diff?r1=1.33&r2=1.34 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/sys/v4l/v4l_calls.c.diff?r1=1.31&r2=1.32 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/sys/v4l2/gstv4l2element.c.diff?r1=1.14&r2=1.15 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/sys/v4l2/v4l2_calls.c.diff?r1=1.19&r2=1.20 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins/ChangeLog,v retrieving revision 1.717 retrieving revision 1.718 diff -u -d -r1.717 -r1.718 --- a/ChangeLog 31 May 2004 04:56:55 -0000 1.717 +++ b/ChangeLog 31 May 2004 14:16:54 -0000 1.718 @@ -1,3 +1,16 @@ +2004-05-31 Stephane Loeuillet <ste...@ti...> + + * gst-libs/gst/tuner/tunerchannel.h: + - add a freq_multiplicator field to make the conversion + between internal frequency unit and Hz + * sys/v4l/gstv4lelement.c: + * sys/v4l2/gstv4l2element.c: + - change default video device to /dev/video0 + * sys/v4l/v4l_calls.c: + * sys/v4l2/v4l2_calls.c: + - we only expose frequency to the user in Hz instead of + bastard v4lX unit (either 62.5kHz or 62.5Hz) 2004-05-31 Jan Schmidt <th...@ma...> * ext/vorbis/vorbisdec.c: (vorbis_dec_chain): Initialise b_o_s and e_o_s variables Index: tunerchannel.h RCS file: /cvs/gstreamer/gst-plugins/gst-libs/gst/tuner/tunerchannel.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- a/tunerchannel.h 15 Mar 2004 16:32:52 -0000 1.5 +++ b/tunerchannel.h 31 May 2004 14:16:54 -0000 1.6 @@ -43,7 +43,7 @@ GST_TUNER_CHANNEL_INPUT = (1<<0), GST_TUNER_CHANNEL_OUTPUT = (1<<1), GST_TUNER_CHANNEL_FREQUENCY = (1<<2), - GST_TUNER_CHANNEL_AUDIO = (1<<3), + GST_TUNER_CHANNEL_AUDIO = (1<<3) } GstTunerChannelFlags; #define GST_TUNER_CHANNEL_HAS_FLAG(channel, flag) \ @@ -54,6 +54,7 @@ gchar *label; GstTunerChannelFlags flags; + gfloat freq_multiplicator; gulong min_frequency, max_frequency; gint min_signal, Index: gstv4lelement.c RCS file: /cvs/gstreamer/gst-plugins/sys/v4l/gstv4lelement.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- a/gstv4lelement.c 21 May 2004 23:53:07 -0000 1.33 +++ b/gstv4lelement.c 31 May 2004 14:16:54 -0000 1.34 @@ -394,7 +394,7 @@ /* some default values */ v4lelement->video_fd = -1; v4lelement->buffer = NULL; - v4lelement->videodev = g_strdup ("/dev/video"); + v4lelement->videodev = g_strdup ("/dev/video0"); v4lelement->display = g_strdup (g_getenv ("DISPLAY")); v4lelement->norms = NULL; Index: v4l_calls.c RCS file: /cvs/gstreamer/gst-plugins/sys/v4l/v4l_calls.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- a/v4l_calls.c 3 May 2004 17:26:43 -0000 1.31 +++ b/v4l_calls.c 31 May 2004 14:16:54 -0000 1.32 @@ -284,6 +284,8 @@ if (!strcmp (vtun.name, vchan.name)) { v4lchannel->tuner = n; channel->flags |= GST_TUNER_CHANNEL_FREQUENCY; + channel->freq_multiplicator = + 62.5 * ((vtun.flags & VIDEO_TUNER_LOW) ? 1 : 1000); channel->min_frequency = vtun.rangelow; channel->max_frequency = vtun.rangehigh; channel->min_signal = 0; @@ -408,10 +410,13 @@ gint tunernum, gulong * frequency) { struct video_tuner vtun; + GstTunerChannel *channel; DEBUG ("getting tuner frequency"); GST_V4L_CHECK_OPEN (v4lelement); + channel = gst_tuner_get_channel (GST_TUNER (v4lelement)); /* check that this is the current input */ vtun.tuner = tunernum; if (ioctl (v4lelement->video_fd, VIDIOCGTUNER, &vtun) < 0) @@ -425,6 +430,8 @@ return FALSE; } + *frequency = *frequency * channel->freq_multiplicator; return TRUE; } @@ -440,10 +447,13 @@ gint tunernum, gulong frequency) DEBUG ("setting tuner frequency to %lu", frequency); @@ -451,6 +461,8 @@ if (strcmp (vtun.name, v4lelement->vchan.name)) + frequency = frequency / channel->freq_multiplicator; if (ioctl (v4lelement->video_fd, VIDIOCSFREQ, &frequency) < 0) { GST_ELEMENT_ERROR (v4lelement, RESOURCE, SETTINGS, (NULL), ("Error setting tuner frequency: %s", g_strerror (errno))); Index: gstv4l2element.c RCS file: /cvs/gstreamer/gst-plugins/sys/v4l2/gstv4l2element.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- a/gstv4l2element.c 15 Mar 2004 19:32:27 -0000 1.14 +++ b/gstv4l2element.c 31 May 2004 14:16:54 -0000 1.15 @@ -383,7 +383,7 @@ "input/output to switch to", NULL, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, ARG_FREQUENCY, g_param_spec_ulong ("frequency", "frequency", - "frequency to tune to", 0, G_MAXULONG, 0, G_PARAM_READWRITE)); + "frequency to tune to (in Hz)", 0, G_MAXULONG, 0, G_PARAM_READWRITE)); /* signals */ gst_v4l2element_signals[SIGNAL_OPEN] = @@ -411,7 +411,7 @@ v4l2element->video_fd = -1; v4l2element->buffer = NULL; - v4l2element->device = g_strdup ("/dev/video"); + v4l2element->device = g_strdup ("/dev/video0"); v4l2element->display = g_strdup (g_getenv ("DISPLAY")); v4l2element->channels = NULL; Index: v4l2_calls.c RCS file: /cvs/gstreamer/gst-plugins/sys/v4l2/v4l2_calls.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- a/v4l2_calls.c 15 Mar 2004 19:32:27 -0000 1.19 +++ b/v4l2_calls.c 31 May 2004 14:16:54 -0000 1.20 @@ -123,8 +123,10 @@ g_object_unref (G_OBJECT (channel)); return FALSE; } - channel->min_frequency = vtun.rangelow; - channel->max_frequency = vtun.rangehigh; + channel->freq_multiplicator = + 62.5 * ((vtun.capability & V4L2_TUNER_CAP_LOW) ? 1 : 1000); + channel->min_frequency = vtun.rangelow * channel->freq_multiplicator; + channel->max_frequency = vtun.rangehigh * channel->freq_multiplicator; channel->min_signal = 0; channel->max_signal = 0xffff; } @@ -620,10 +622,13 @@ struct v4l2_frequency freq; DEBUG ("getting current tuner frequency"); GST_V4L2_CHECK_OPEN (v4l2element); + channel = gst_tuner_get_channel (GST_TUNER (v4l2element)); freq.tuner = tunernum; if (ioctl (v4l2element->video_fd, VIDIOC_G_FREQUENCY, &freq) < 0) { GST_ELEMENT_ERROR (v4l2element, RESOURCE, SETTINGS, (NULL), @@ -632,7 +637,7 @@ - *frequency = freq.frequency; + *frequency = freq.frequency * channel->freq_multiplicator; @@ -649,15 +654,18 @@ DEBUG ("setting current tuner frequency to %lu", frequency); GST_V4L2_CHECK_NOT_ACTIVE (v4l2element); /* fill in type - ignore error */ ioctl (v4l2element->video_fd, VIDIOC_G_FREQUENCY, &freq); - freq.frequency = frequency; + freq.frequency = frequency / channel->freq_multiplicator; if (ioctl (v4l2element->video_fd, VIDIOC_S_FREQUENCY, &freq) < 0) { |