Camerabin - how to specify size of image for capture

classic Classic list List threaded Threaded
32 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Camerabin - how to specify size of image for capture

Ian Davidson
How do I specify what size I would like to have camerabin create the
still image?

I have attempted to set caps into image-capture-caps but each time I
have tried, it complains.

Ian
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Thiago Santos
On 01/27/2014 05:09 PM, Ian Davidson wrote:
> How do I specify what size I would like to have camerabin create the
> still image?
>
> I have attempted to set caps into image-capture-caps but each time I
> have tried, it complains.

how are you setting those caps? How exactly does it complain?

--
Thiago

>
> Ian
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
Here is a section of my code

   g_print ("Set the picture size\n");
   caps = gst_caps_from_string("width=800,height=600");
/*  caps = gst_caps_from_string("image-width=800,image-height=600");*/
/*  caps = gst_caps_from_string("video/x-raw, width=(int)800,
height=(int)600");*/
   g_object_set (G_OBJECT (cambin), "image-capture-caps", caps, NULL);
   gst_caps_unref (caps);

If I use the code as shown, I get the message
GStreamer-CRITICAL **: gst_mini_object_unref: assertion `mini_object !=
NULL' failed
and the image size of the captured image is 320x200 (when using a
camcorder connected via a video capture card) or 640x480 (on a different
machine using a webcam connected via USB)

If I use the line with "image-width=800,image-height=600" I see a debug
line which reads
0:00:02.977347248  2366      0x249cec0 WARN               structure
gststructure.c:2302:gst_structure_from_string: Failed to find delimiter,
r==800,image-height=600

If I use the line with "video/x-raw, width=(int)800, height=(int)600" I
get the following lines of debug and the program crashes.
0:00:30.977458927  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for YUYV@48x32
0:00:30.977515862  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat YUYV
0:00:30.977548658  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for UYVY@48x32
0:00:30.977609933  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat UYVY
0:00:30.977640572  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for 422P@48x32
0:00:30.977664194  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat 422P
0:00:30.977705154  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for YU12@48x32
0:00:30.977727494  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat YU12
0:00:30.977776921  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for YV12@48x32
0:00:30.977799358  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat YV12
0:00:30.977841487  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for 411P@48x32
0:00:30.977864044  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat 411P
0:00:30.977893595  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for YVU9@48x32
0:00:30.977915896  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat YVU9
0:00:30.977945491  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for YUV9@48x32
0:00:30.977967889  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat YUV9
0:00:30.977997207  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for RGB4@48x32
0:00:30.978019500  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat RGB4
0:00:30.978047946  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for BGR4@48x32
0:00:30.978067621  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat BGR4
0:00:30.978105236  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for BGR3@48x32
0:00:30.978124920  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat BGR3
0:00:30.978162857  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for RGBP@48x32
0:00:30.978182517  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat RGBP
0:00:30.978210633  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for RGBO@48x32
0:00:30.978230058  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat RGBO
0:00:30.978257530  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for GREY@48x32
0:00:30.978276898  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat GREY
0:00:30.978314197  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:2127:gst_v4l2_object_get_nearest_size:<camerasrc-real-src-actual-src-v4l>
Unsupported field type for RGB3@48x32
0:00:30.978341073  2702       0x7daec0 WARN                    v4l2
gstv4l2object.c:1976:gst_v4l2_object_probe_caps_for_format:<camerasrc-real-src-actual-src-v4l>
Could not probe minimum capture size for pixelformat RGB3
0:00:30.995724907  2702       0xbb0b20 FIXME                default
gstutils.c:3636:gst_pad_create_stream_id_printf_valist:<preview-appsrc:src>
Creating random stream-id, consider implementing a deterministic way of
creating a stream-id
0:00:30.996063792  2702       0x7daec0 WARN                     bin
gstbin.c:2474:gst_bin_do_latency_func:<camera> failed to query latency
0:00:31.097600597  2702       0xbb0720 WARN                GST_PADS
gstpad.c:3577:gst_pad_peer_query:<src-capsfilter:src> could not send
sticky events
0:00:31.243561506  2702       0xbb0720 WARN           basetransform
gstbasetransform.c:1348:gst_base_transform_setcaps:<src-videoconvert>
transform could not transform video/x-raw, format=(string)YUY2,
framerate=(fraction)25/1, width=(int)320, height=(int)200,
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1 in
anything we support
0:00:31.243634555  2702       0xbb0720 WARN           basetransform
gstbasetransform.c:2090:gst_base_transform_handle_buffer:<src-videoconvert>
warning: not negotiated
0:00:31.243651535  2702       0xbb0720 WARN           basetransform
gstbasetransform.c:2090:gst_base_transform_handle_buffer:<src-videoconvert>
warning: not negotiated
0:00:31.243724430  2702       0xbb0720 WARN              bufferpool
gstbufferpool.c:632:gst_buffer_pool_set_config:<v4l2bufferpool0> can't
change config, we are active
0:00:31.243754155  2702       0xbb0720 WARN              bufferpool
gstbufferpool.c:632:gst_buffer_pool_set_config:<v4l2bufferpool0> can't
change config, we are active
0:00:31.279181015  2702       0xbb0720 WARN           basetransform
gstbasetransform.c:1348:gst_base_transform_setcaps:<src-capsfilter>
transform could not transform video/x-raw, format=(string)YUY2,
framerate=(fraction)25/1, width=(int)320, height=(int)200,
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1 in
anything we support
0:00:31.279243205  2702       0xbb0720 WARN           basetransform
gstbasetransform.c:2090:gst_base_transform_handle_buffer:<src-capsfilter> warning:
not negotiated
0:00:31.279262486  2702       0xbb0720 WARN           basetransform
gstbasetransform.c:2090:gst_base_transform_handle_buffer:<src-capsfilter> warning:
not negotiated
0:00:31.279348313  2702       0xbb0720 WARN                 basesrc
gstbasesrc.c:2812:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l>
error: Internal data flow error.
0:00:31.279384520  2702       0xbb0720 WARN                 basesrc
gstbasesrc.c:2812:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l>
error: streaming task paused, reason not-negotiated (-4)
Error: Internal data flow error.

Ian

On 28/01/2014 13:19, Thiago Santos wrote:

> On 01/27/2014 05:09 PM, Ian Davidson wrote:
>> How do I specify what size I would like to have camerabin create the
>> still image?
>>
>> I have attempted to set caps into image-capture-caps but each time I
>> have tried, it complains.
>
> how are you setting those caps? How exactly does it complain?
>
> --
> Thiago
>
>>
>> Ian
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Tim Müller
On Tue, 2014-01-28 at 16:45 +0000, Ian Davidson wrote:

Hi Ian,

>    caps = gst_caps_from_string("width=800,height=600");

These are not valid caps, there is no media type.

> /*  caps = gst_caps_from_string("image-width=800,image-height=600");*/

Same here.

> /*  caps = gst_caps_from_string("video/x-raw, width=(int)800,
> height=(int)600");*/

This looks better.

>    g_object_set (G_OBJECT (cambin), "image-capture-caps", caps, NULL);
>    gst_caps_unref (caps);
>
> If I use the code as shown, I get the message
> GStreamer-CRITICAL **: gst_mini_object_unref: assertion `mini_object !=
> NULL' failed

This would indicate a refcount error somewhere, possibly in camerabin
(maybe for the caps you pass - does it also happen if you remove the
[correct] gst_caps_unref that's there?)

You can run your app with G_DEBUG=fatal_warnings gdb --args ./yourapp

and then it will abort at the critical and you can get a stack trace in
gdb to see where it comes from exactly.

 Cheers
  -Tim

--
Tim Müller, Centricular Ltd - http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
I commented out the unref, but the program fails with an "not
negotiated" error.  I ran the program with --gst-debug=9 and picked out
this section of the resulting trace.

I have a whole lot more of the trace if you can suggest what I might
want to look at.

I have tried setting video-capture-caps, viewfinder-caps and
preview-caps to the same values as image-capture-caps - but it did not
seem to make any difference.

0:01:20.035570850  2648       0xe30320 DEBUG             capsfilter
gstcapsfilter.c:220:gst_capsfilter_transform_caps:<zoom-capsfilter>
input:     video/x-raw, format=(string)YUY2, width=(int)800,
height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw,
format=(string)YV12, width=(int)800, height=(int)600,
framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw,
format=(string)I420, width=(int)800, height=(int)600,
framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw,
format=(string)UYVY, width=(int)800, height=(int)600,
framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, width=(int)800,
height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1 ],
format=(string){ I420, YV12, YUY2, UYVY, RGBx, BGRx, xRGB, xBGR, RGB,
BGR, Y41B, Y42B, YVYU, Y444, GRAY8 }; video/x-raw, width=(int)800,
height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1 ],
format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR,
RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8,
GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64 }; video/x-raw,
width=(int)800, height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1
], format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB,
xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210,
v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16,
RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210,
I420_10LE, I420_10BE, I422_10LE, I422_10BE }
0:01:20.064991803  2648       0xe30320 DEBUG             capsfilter
gstcapsfilter.c:221:gst_capsfilter_transform_caps:<zoom-capsfilter>
filter:    (NULL)
0:01:20.065004220  2648       0xe30320 DEBUG             capsfilter
gstcapsfilter.c:223:gst_capsfilter_transform_caps:<zoom-capsfilter> caps
filter:    video/x-raw, format=(string)YUY2, framerate=(fraction)25/1,
width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)UYVY, framerate=(fraction)25/1, width=(int)[
48, 924 ], height=(int)[ 32, 576 ], interlace-mode=(string)mixed,
pixel-aspect-ratio=(fraction)1/1; video/x-raw, format=(string)Y42B,
framerate=(fraction)25/1, width=(int)[ 48, 924 ], height=(int)[ 32, 576
], interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)I420, framerate=(fraction)25/1, width=(int)[
48, 920 ], height=(int)[ 32, 576 ], interlace-mode=(string)mixed,
pixel-aspect-ratio=(fraction)1/1; video/x-raw, format=(string)YV12,
framerate=(fraction)25/1, width=(int)[ 48, 920 ], height=(int)[ 32, 576
], interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)Y41B, framerate=(fraction)25/1, width=(int)[
48, 924 ], height=(int)[ 32, 576 ], interlace-mode=(string)mixed,
pixel-aspect-ratio=(fraction)1/1; video/x-raw, format=(string)YVU9,
framerate=(fraction)25/1, width=(int)[ 48, 924 ], height=(int)[ 32, 576
], interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)YUV9, framerate=(fraction)25/1, width=(int)[
48, 924 ], height=(int)[ 32, 576 ], interlace-mode=(string)mixed,
pixel-aspect-ratio=(fraction)1/1; video/x-raw, format=(string)RGBx,
framerate=(fraction)25/1, width=(int)[ 48, 924 ], height=(int)[ 32, 576
], interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)BGRx, framerate=(fraction)25/1, width=(int)[
48, 924 ], height=(int)[ 32, 576 ], interlace-mode=(string)mixed,
pixel-aspect-ratio=(fraction)1/1; video/x-raw, format=(string)BGR,
framerate=(fraction)25/1, width=(int)[ 48, 920 ], height=(int)[ 32, 576
], interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)RGB16, framerate=(fraction)25/1,
width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)RGB15, framerate=(fraction)25/1,
width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)GRAY8, framerate=(fraction)25/1,
width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
video/x-raw, format=(string)RGB, framerate=(fraction)25/1, width=(int)[
48, 920 ], height=(int)[ 32, 576 ], interlace-mode=(string)mixed,
pixel-aspect-ratio=(fraction)1/1; video/x-raw, framerate=(fraction)25/1,
width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1,
format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR,
RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216,
NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15,
BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210,
I420_10LE, I420_10BE, I422_10LE, I422_10BE }
0:01:20.065166894  2648       0xe30320 DEBUG             capsfilter
gstcapsfilter.c:224:gst_capsfilter_transform_caps:<zoom-capsfilter>
intersect: EMPTY
0:01:20.065179278  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d050 unref 2->1
0:01:20.065194207  2648       0xe30320 LOG            basetransform
gstbasetransform.c:520:gst_base_transform_transform_caps:<zoom-capsfilter>
to: EMPTY
0:01:20.065206903  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:543:gst_base_transform_transform_caps:<zoom-capsfilter>
to: EMPTY
0:01:20.065219188  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:715:gst_base_transform_query_caps:<zoom-capsfilter:sink>
transformed  EMPTY
0:01:20.065230302  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d0f0 unref 2->1
0:01:20.065244139  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:722:gst_base_transform_query_caps:<zoom-capsfilter:sink>
our template  ANY
0:01:20.065255603  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 1->2
0:01:20.065269120  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:725:gst_base_transform_query_caps:<zoom-capsfilter:sink>
intersected EMPTY
0:01:20.065280118  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec0002b20 unref 1->0
0:01:20.065293010  2648       0xe30320 TRACE               GST_CAPS
gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec0002b20
0:01:20.065305818  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:749:gst_base_transform_query_caps:<zoom-capsfilter>
returning  EMPTY
0:01:20.065328648  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d0f0 unref 1->0
0:01:20.065344040  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec400d740
0:01:20.065356033  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001cc0
0:01:20.065367394  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0xe35c00
0:01:20.065378370  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001d60
0:01:20.065391037  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec400d440
0:01:20.065404898  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001f80
0:01:20.065419745  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec400d880
0:01:20.065430601  2648       0xe30320 TRACE               GST_CAPS
gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec400d0f0
0:01:20.065442152  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xd638f0 unref 3->2
0:01:20.065454656  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xd638a0 unref 3->2
0:01:20.065467452  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.065480621  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.065494517  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<zoom-capsfilter> 0xd73910 unref 2->1
0:01:20.065508354  2648       0xe30320 DEBUG               GST_PADS
gstpad.c:3424:gst_pad_query:<zoom-capsfilter:sink> sent query
0x7f3ec400d1e0 (caps), result 1
0:01:20.095073144  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<zoom-capsfilter:sink> 0xe2ee30 unref 2->1
0:01:20.095087194  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.095098351  2648       0xe30320 DEBUG               GST_CAPS
gstutils.c:2815:gst_pad_peer_query_caps:<zoom-scale:src> peer query
returned EMPTY
0:01:20.095108187  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d1e0 unref 1->0
0:01:20.095118209  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.095128752  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001c40
0:01:20.095138321  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:702:gst_base_transform_query_caps:<zoom-scale:sink>
peer caps  EMPTY
0:01:20.095147336  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:705:gst_base_transform_query_caps:<zoom-scale:sink>
our template  video/x-raw, format=(string){ I420, YV12, YUY2, UYVY,
AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B,
Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15,
ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767
], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:01:20.095175316  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.095186091  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:707:gst_base_transform_query_caps:<zoom-scale:sink>
intersected EMPTY
0:01:20.095195487  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:516:gst_base_transform_transform_caps:<zoom-scale>
transform caps (direction = 1)
0:01:20.095204211  2648       0xe30320 LOG            basetransform
gstbasetransform.c:518:gst_base_transform_transform_caps:<zoom-scale>
from: EMPTY
0:01:20.095213722  2648       0xe30320 DEBUG             videoscale
gstvideoscale.c:446:gst_video_scale_transform_caps:<zoom-scale>
Transforming caps EMPTY in direction src
0:01:20.095223194  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 3->4
0:01:20.095233171  2648       0xe30320 TRACE               GST_CAPS
gstcaps.c:220:gst_caps_new_empty: created caps 0x7f3ec400d320
0:01:20.095242183  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 4->3
0:01:20.095252188  2648       0xe30320 DEBUG             videoscale
gstvideoscale.c:494:gst_video_scale_transform_caps:<zoom-scale>
returning caps: EMPTY
0:01:20.095261197  2648       0xe30320 LOG            basetransform
gstbasetransform.c:520:gst_base_transform_transform_caps:<zoom-scale>
to: EMPTY
0:01:20.095270034  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:543:gst_base_transform_transform_caps:<zoom-scale>
to: EMPTY
0:01:20.095278835  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:715:gst_base_transform_query_caps:<zoom-scale:sink>
transformed  EMPTY
0:01:20.095287183  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.095297223  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:722:gst_base_transform_query_caps:<zoom-scale:sink>
our template  video/x-raw, format=(string){ I420, YV12, YUY2, UYVY,
AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B,
Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15,
ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767
], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:01:20.095321428  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.095332116  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:725:gst_base_transform_query_caps:<zoom-scale:sink>
intersected EMPTY
0:01:20.095340655  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d320 unref 1->0
0:01:20.095350164  2648       0xe30320 TRACE               GST_CAPS
gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec400d320
0:01:20.095359681  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 3->4
0:01:20.095369111  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 4->3
0:01:20.095379161  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:749:gst_base_transform_query_caps:<zoom-scale>
returning  EMPTY
0:01:20.095397377  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.095407568  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xdad230 unref 6->5
0:01:20.095416631  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xdad230 unref 5->4
0:01:20.095425950  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.095435813  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.095445905  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<zoom-scale> 0xe34dd0 unref 2->1
0:01:20.095456123  2648       0xe30320 DEBUG               GST_PADS
gstpad.c:3424:gst_pad_query:<zoom-scale:sink> sent query 0xe30190
(caps), result 1
0:01:20.095467054  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<zoom-scale:sink> 0xe2e9d0 unref 2->1
0:01:20.095476974  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.095487412  2648       0xe30320 DEBUG               GST_CAPS
gstutils.c:2815:gst_pad_peer_query_caps:<zoom-crop:src> peer query
returned EMPTY
0:01:20.095496490  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xe30190 unref 1->0
0:01:20.095506070  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.095515530  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0xe62720
0:01:20.095524705  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:702:gst_base_transform_query_caps:<zoom-crop:sink>
peer caps  EMPTY
0:01:20.095533756  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:705:gst_base_transform_query_caps:<zoom-crop:sink>
our template  video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR,
RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16,
RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1,
2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:01:20.095556231  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.095566891  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:707:gst_base_transform_query_caps:<zoom-crop:sink>
intersected EMPTY
0:01:20.095576336  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:516:gst_base_transform_transform_caps:<zoom-crop>
transform caps (direction = 1)
0:01:20.095584948  2648       0xe30320 LOG            basetransform
gstbasetransform.c:518:gst_base_transform_transform_caps:<zoom-crop>
from: EMPTY
0:01:20.095594935  2648       0xe30320 LOG                videocrop
gstvideocrop.c:466:gst_video_crop_transform_caps:<zoom-crop> l=0,r=0,b=0,t=0
0:01:20.095604287  2648       0xe30320 LOG                videocrop
gstvideocrop.c:477:gst_video_crop_transform_caps:<zoom-crop>
transforming caps EMPTY
0:01:20.125687599  2648       0xe30320 TRACE               GST_CAPS
gstcaps.c:220:gst_caps_new_empty: created caps 0x7f3ec4003190
0:01:20.125706516  2648       0xe30320 LOG            basetransform
gstbasetransform.c:520:gst_base_transform_transform_caps:<zoom-crop> to:
EMPTY
0:01:20.125719872  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:543:gst_base_transform_transform_caps:<zoom-crop> to:
EMPTY
0:01:20.125732000  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:715:gst_base_transform_query_caps:<zoom-crop:sink>
transformed  EMPTY
0:01:20.125743274  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.125756882  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:722:gst_base_transform_query_caps:<zoom-crop:sink>
our template  video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR,
RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16,
RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1,
2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
0:01:20.125788718  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.125803115  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:725:gst_base_transform_query_caps:<zoom-crop:sink>
intersected EMPTY
0:01:20.125814190  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003190 unref 1->0
0:01:20.125826721  2648       0xe30320 TRACE               GST_CAPS
gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec4003190
0:01:20.125838149  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 3->4
0:01:20.125850821  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 4->3
0:01:20.125864149  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:749:gst_base_transform_query_caps:<zoom-crop>
returning  EMPTY
0:01:20.125875249  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.125887416  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xe11a80 unref 3->2
0:01:20.125899373  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xe30400 unref 3->2
0:01:20.125911964  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.125925440  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.125939066  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<zoom-crop> 0xe345b0 unref 3->2
0:01:20.125952921  2648       0xe30320 DEBUG               GST_PADS
gstpad.c:3424:gst_pad_query:<zoom-crop:sink> sent query 0x7f3ec4003720
(caps), result 1
0:01:20.125966722  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
0:01:20.125980360  2648       0xe30320 DEBUG               GST_CAPS
gstutils.c:2769:gst_pad_query_caps:<zoom-crop:sink> query returned EMPTY
0:01:20.125992407  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003720 unref 1->0
0:01:20.126004917  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
0:01:20.126017562  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001c20
0:01:20.126036883  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:1249:gst_base_transform_acceptcaps_default:<zoom-crop> allowed
caps EMPTY
0:01:20.126048969  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 2->1
0:01:20.126062447  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:1286:gst_base_transform_acceptcaps_default:<zoom-crop> transform
could not transform video/x-raw, format=(string)YUY2,
framerate=(fraction)25/1, width=(int)320, height=(int)200,
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1 in
anything we support
0:01:20.126089537  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<zoom-crop> 0xe345b0 unref 2->1
0:01:20.126117854  2648       0xe30320 DEBUG               GST_PADS
gstpad.c:3424:gst_pad_query:<zoom-crop:sink> sent query 0x7f3ec4003140
(accept-caps), result 1
0:01:20.126134771  2648       0xe30320 DEBUG                default
gstutils.c:2850:gst_pad_query_accept_caps:<zoom-crop:sink> query returned 0
0:01:20.126145895  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003140 unref 1->0
0:01:20.126158694  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003680 unref 2->1
0:01:20.126171625  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec4002080
0:01:20.126183841  2648       0xe30320 DEBUG          basetransform
gstbasetransform.c:1203:gst_base_transform_find_transform:<src-capsfilter>
FAILED to get peer of <src-capsfilter:src> to accept video/x-raw,
format=(string)YUY2, framerate=(fraction)25/1, width=(int)320,
height=(int)200, interlace-mode=(string)mixed,
pixel-aspect-ratio=(fraction)1/1
0:01:20.126210223  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<zoom-crop:sink> 0xe2e570 unref 2->1
0:01:20.126223242  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003680 unref 1->0
0:01:20.126236937  2648       0xe30320 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001a60
0:01:20.126248163  2648       0xe30320 TRACE               GST_CAPS
gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec4003680
0:01:20.126260568  2648       0xe30320 WARN           basetransform
gstbasetransform.c:1348:gst_base_transform_setcaps:<src-capsfilter>
transform could not transform video/x-raw, format=(string)YUY2,
framerate=(fraction)25/1, width=(int)320, height=(int)200,
interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1 in
anything we support
0:01:20.126284512  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec0002ad0 unref 5->4
0:01:20.126297677  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400f190 unref 1->0
0:01:20.126310118  2648       0xe30320 TRACE        GST_REFCOUNTING
gstminiobject.c:360:gst_mini_object_ref: 0x7f3ec400f190 ref 0->1
0:01:20.126322632  2648       0xe30320 LOG               GST_BUFFER
gstbuffer.c:492:_gst_buffer_dispose: release 0x7f3ec400f190 to pool
0x7f3ec4006100
0:01:20.126346362  2648       0xe30320 DEBUG                   v4l2
gstv4l2bufferpool.c:823:gst_v4l2_buffer_pool_release_buffer:<v4l2bufferpool0>
release buffer 0x7f3ec400f190
0:01:20.126360201  2648       0xe30320 LOG                     v4l2
gstv4l2bufferpool.c:571:gst_v4l2_buffer_pool_qbuf:<v4l2bufferpool0>
enqueue buffer 0x7f3ec400f190, index:1, queued:3, flags:00002000
0:01:20.126373295  2648       0xe30320 LOG                     v4l2
gstv4l2bufferpool.c:576:gst_v4l2_buffer_pool_qbuf:<v4l2bufferpool0>
doing QBUF
0:01:20.126399383  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<v4l2bufferpool0> 0x7f3ec4006100 unref 3->2
0:01:20.126416502  2648       0xe30320 WARN           basetransform
gstbasetransform.c:2090:gst_base_transform_handle_buffer:<src-capsfilter> warning:
not negotiated
0:01:20.126428663  2648       0xe30320 WARN           basetransform
gstbasetransform.c:2090:gst_base_transform_handle_buffer:<src-capsfilter> warning:
not negotiated
0:01:20.155810156  2648       0xe30320 DEBUG            GST_MESSAGE
gstelement.c:1797:gst_element_message_full:<src-capsfilter> start
0:01:20.155828661  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<src-capsfilter> 0xd735f0 ref 1->2
0:01:20.155844592  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<camerasrc> 0xdf61f0 ref 5->6
0:01:20.155858829  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<cambin1> 0xd66010 ref 2->3
0:01:20.155873131  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<camera> 0xa442d0 ref 1->2
0:01:20.155889167  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<camera> 0xa442d0 unref 2->1
0:01:20.155906331  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<cambin1> 0xd66010 unref 3->2
0:01:20.155922333  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<camerasrc> 0xdf61f0 unref 6->5
0:01:20.155938784  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<src-capsfilter> 0xd735f0 unref 2->1
0:01:20.155956753  2648       0xe30320 INFO        GST_ERROR_SYSTEM
gstelement.c:1828:gst_element_message_full:<src-capsfilter> posting
message: not negotiated
0:01:20.155970647  2648       0xe30320 TRACE              structure
gststructure.c:148:gst_structure_new_id_empty_with_size: created
structure 0x7f3ec4001c40
0:01:20.155985868  2648       0xe30320 LOG              GST_MESSAGE
gstmessage.c:282:gst_message_new_custom: source src-capsfilter: creating
new message 0x7f3ec4002810 warning
0:01:20.156001464  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<src-capsfilter> 0xd735f0 ref 1->2
0:01:20.156016335  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<bus7> 0xd6a090 ref 9->10
0:01:20.156038249  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:316:gst_bus_post:<bus7> [msg 0x7f3ec4002810] posting on bus
warning message from element 'src-capsfilter': GstMessageWarning,
gerror=(GError)NULL, debug=(string)"gstbasetransform.c\(2090\):\
gst_base_transform_handle_buffer\ \(\):\
/GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
negotiated";
0:01:20.156073066  2648       0xe30320 DEBUG                    bin
gstbin.c:3270:gst_bin_handle_message_func:<camerasrc> [msg
0x7f3ec4002810] handling child src-capsfilter message of type warning
0:01:20.156087709  2648       0xe30320 DEBUG                    bin
gstbin.c:3563:gst_bin_handle_message_func:<camerasrc> posting message upward
0:01:20.156099975  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<bus2> 0xcf2330 ref 14->15
0:01:20.156113875  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:316:gst_bus_post:<bus2> [msg 0x7f3ec4002810] posting on bus
warning message from element 'src-capsfilter': GstMessageWarning,
gerror=(GError)NULL, debug=(string)"gstbasetransform.c\(2090\):\
gst_base_transform_handle_buffer\ \(\):\
/GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
negotiated";
0:01:20.156144545  2648       0xe30320 DEBUG                    bin
gstbin.c:3270:gst_bin_handle_message_func:<cambin1> [msg 0x7f3ec4002810]
handling child src-capsfilter message of type warning
0:01:20.156158041  2648       0xe30320 DEBUG                    bin
gstbin.c:3563:gst_bin_handle_message_func:<cambin1> posting message upward
0:01:20.156169818  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<bus0> 0xcf2170 ref 2->3
0:01:20.156183636  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:316:gst_bus_post:<bus0> [msg 0x7f3ec4002810] posting on bus
warning message from element 'src-capsfilter': GstMessageWarning,
gerror=(GError)NULL, debug=(string)"gstbasetransform.c\(2090\):\
gst_base_transform_handle_buffer\ \(\):\
/GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
negotiated";
0:01:20.156210140  2648       0xe30320 DEBUG                    bin
gstbin.c:3270:gst_bin_handle_message_func:<camera> [msg 0x7f3ec4002810]
handling child src-capsfilter message of type warning
0:01:20.156222969  2648       0xe30320 DEBUG                    bin
gstbin.c:3563:gst_bin_handle_message_func:<camera> posting message upward
0:01:20.156234772  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:247:gst_object_ref:<bus1> 0xcf2250 ref 3->4
0:01:20.156248260  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:316:gst_bus_post:<bus1> [msg 0x7f3ec4002810] posting on bus
warning message from element 'src-capsfilter': GstMessageWarning,
gerror=(GError)NULL, debug=(string)"gstbasetransform.c\(2090\):\
gst_base_transform_handle_buffer\ \(\):\
/GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
negotiated";
0:01:20.156290796  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:351:gst_bus_post:<bus1> [msg 0x7f3ec4002810] pushing on async queue
0:01:20.156305156  2648       0xe30320 LOG                 GST_POLL
gstpoll.c:186:raise_wakeup: 0xd56d40: raise
0:01:20.156333723  2648       0xa56ec0 LOG                  GST_BUS
gstbus.c:502:gst_bus_timed_pop_filtered:<bus1> have 1 messages
0:01:20.156347989  2648       0xa56ec0 LOG                 GST_POLL
gstpoll.c:201:release_wakeup: 0xd56d40: release
0:01:20.156362527  2648       0xa56ec0 DEBUG                GST_BUS
gstbus.c:510:gst_bus_timed_pop_filtered:<bus1> got message
0x7f3ec4002810, warning from src-capsfilter, type mask is 4294967295
0:01:20.156377191  2648       0xa56ec0 DEBUG                GST_BUS
gstbus.c:771:gst_bus_source_dispatch:<bus1> source 0xd79960 calling
dispatch with warning message from element 'src-capsfilter':
GstMessageWarning, gerror=(GError)NULL,
debug=(string)"gstbasetransform.c\(2090\):\
gst_base_transform_handle_buffer\ \(\):\
/GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
negotiated";
0:01:20.156405827  2648       0xa56ec0 TRACE        GST_REFCOUNTING
gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4002810 unref 1->0
0:01:20.156419369  2648       0xa56ec0 LOG              GST_MESSAGE
gstmessage.c:184:_gst_message_free: finalize message 0x7f3ec4002810,
warning from src-capsfilter
0:01:20.156433461  2648       0xa56ec0 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<src-capsfilter> 0xd735f0 unref 2->1
0:01:20.156447232  2648       0xa56ec0 TRACE              structure
gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001c40
0:01:20.156459393  2648       0xa56ec0 DEBUG                GST_BUS
gstbus.c:776:gst_bus_source_dispatch:<bus1> source 0xd79960 handler
returns 1
0:01:20.156492703  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:354:gst_bus_post:<bus1> [msg 0x7f3ec4002810] pushed on async queue
0:01:20.156506850  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<bus1> 0xcf2250 unref 4->3
0:01:20.156520620  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:347:gst_bus_post:<bus0> [msg 0x7f3ec4002810] dropped
0:01:20.156533146  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<bus0> 0xcf2170 unref 3->2
0:01:20.156546751  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:347:gst_bus_post:<bus2> [msg 0x7f3ec4002810] dropped
0:01:20.156558903  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<bus2> 0xcf2330 unref 15->14
0:01:20.156572298  2648       0xe30320 DEBUG                GST_BUS
gstbus.c:347:gst_bus_post:<bus7> [msg 0x7f3ec4002810] dropped
0:01:20.156584495  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<bus7> 0xd6a090 unref 10->9
0:01:20.156597862  2648       0xe30320 INFO        GST_ERROR_SYSTEM
gstelement.c:1851:gst_element_message_full:<src-capsfilter> posted
warning message: not negotiated
0:01:20.156614175  2648       0xe30320 LOG           GST_SCHEDULING
gstpad.c:3659:gst_pad_chain_data_unchecked:<src-capsfilter:sink> called
chainfunction &gst_base_transform_chain with buffer 0x7f3ec400f190,
returned not-negotiated
0:01:20.186711542  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<src-capsfilter:sink> 0xe2e110 unref 2->1
0:01:20.186726230  2648       0xe30320 LOG           GST_SCHEDULING
gstpad.c:3659:gst_pad_chain_data_unchecked:<src-videoconvert:sink>
called chainfunction &gst_base_transform_chain with buffer
0x7f3ec400f190, returned not-negotiated
0:01:20.186737820  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<src-videoconvert:sink> 0xdfba40 unref 2->1
0:01:20.186749121  2648       0xe30320 LOG           GST_SCHEDULING
gstpad.c:3128:do_probe_callbacks:<camerasrc-real-src:src> do probes
cookie 69
0:01:20.186759038  2648       0xe30320 LOG           GST_SCHEDULING
gstpad.c:3072:probe_hook_marshal:<camerasrc-real-src:src> hook 1, cookie
69 with flags 0x00003040 does not match 00001001
0:01:20.186770228  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<camerasrc-real-src:src> 0xd6da30 unref
2->1
0:01:20.186781541  2648       0xe30320 LOG           GST_SCHEDULING
gstpad.c:3659:gst_pad_chain_data_unchecked:<src:proxypad11> called
chainfunction &gst_proxy_pad_chain_default with buffer 0x7f3ec400f190,
returned not-negotiated
0:01:20.186794000  2648       0xe30320 TRACE        GST_REFCOUNTING
gstobject.c:273:gst_object_unref:<src:proxypad11> 0xd6f8e0 unref 2->1
0:01:20.186805686  2648       0xe30320 DEBUG               GST_PADS
gstpad.c:1386:gst_pad_needs_reconfigure:<camerasrc-real-src-actual-src-v4l:src>
peeking RECONFIGURE flag 0
0:01:20.186816941  2648       0xe30320 DEBUG                basesrc
gstbasesrc.c:2757:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l>
Not negotiated
0:01:20.186826128  2648       0xe30320 DEBUG                basesrc
gstbasesrc.c:2773:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l>
pausing task, reason not-negotiated
0:01:20.186835522  2648       0xe30320 DEBUG               GST_PADS
gstpad.c:5251:gst_pad_pause_task:<camerasrc-real-src-actual-src-v4l:src>
pause task
0:01:20.186846101  2648       0xe30320 DEBUG                   task
gsttask.c:662:gst_task_set_state:<camerasrc-real-src-actual-src-v4l:src>
Changing task 0xe58240 to state 2
0:01:20.186856475  2648       0xe30320 DEBUG              GST_EVENT
gstevent.c:300:gst_event_new_custom: creating new event 0x7f3ec4004120
eos 28174
0:01:20.186881066  2648       0xe30320 WARN                 basesrc
gstbasesrc.c:2812:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l>
error: Internal data flow error.
0:01:20.186890745  2648       0xe30320 WARN                 basesrc
gstbasesrc.c:2812:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l>
error: streaming task paused, reason not-negotiated (-4)


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Thiago Santos
On 01/29/2014 07:47 AM, Ian Davidson wrote:

> I commented out the unref, but the program fails with an "not
> negotiated" error.  I ran the program with --gst-debug=9 and picked
> out this section of the resulting trace.
>
> I have a whole lot more of the trace if you can suggest what I might
> want to look at.
>
> I have tried setting video-capture-caps, viewfinder-caps and
> preview-caps to the same values as image-capture-caps - but it did not
> seem to make any difference.

Some fixes have been pushed to gstreamer core and -base that are related
to camerabin issues (yesterday and today). Can you give it a try with
latest git gstreamer?

If it still doesn't work for you, can you provide a small sample
application to reproduce the issue in a bug filled at
https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer

--
Thiago

>
> 0:01:20.035570850  2648       0xe30320 DEBUG capsfilter
> gstcapsfilter.c:220:gst_capsfilter_transform_caps:<zoom-capsfilter>
> input:     video/x-raw, format=(string)YUY2, width=(int)800,
> height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1 ];
> video/x-raw, format=(string)YV12, width=(int)800, height=(int)600,
> framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw,
> format=(string)I420, width=(int)800, height=(int)600,
> framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw,
> format=(string)UYVY, width=(int)800, height=(int)600,
> framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw,
> width=(int)800, height=(int)600, framerate=(fraction)[ 0/1,
> 2147483647/1 ], format=(string){ I420, YV12, YUY2, UYVY, RGBx, BGRx,
> xRGB, xBGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8 }; video/x-raw,
> width=(int)800, height=(int)600, framerate=(fraction)[ 0/1,
> 2147483647/1 ], format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx,
> BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU,
> Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64
> }; video/x-raw, width=(int)800, height=(int)600, framerate=(fraction)[
> 0/1, 2147483647/1 ], format=(string){ I420, YV12, YUY2, UYVY, AYUV,
> RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B,
> YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308,
> RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1,
> ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE }
> 0:01:20.064991803  2648       0xe30320 DEBUG capsfilter
> gstcapsfilter.c:221:gst_capsfilter_transform_caps:<zoom-capsfilter>
> filter:    (NULL)
> 0:01:20.065004220  2648       0xe30320 DEBUG capsfilter
> gstcapsfilter.c:223:gst_capsfilter_transform_caps:<zoom-capsfilter>
> caps filter:    video/x-raw, format=(string)YUY2,
> framerate=(fraction)25/1, width=(int)[ 48, 924 ], height=(int)[ 32,
> 576 ], interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)UYVY, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)Y42B, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)I420, framerate=(fraction)25/1,
> width=(int)[ 48, 920 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)YV12, framerate=(fraction)25/1,
> width=(int)[ 48, 920 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)Y41B, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)YVU9, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)YUV9, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)RGBx, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)BGRx, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)BGR, framerate=(fraction)25/1,
> width=(int)[ 48, 920 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)RGB16, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)RGB15, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)GRAY8, framerate=(fraction)25/1,
> width=(int)[ 48, 924 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, format=(string)RGB, framerate=(fraction)25/1,
> width=(int)[ 48, 920 ], height=(int)[ 32, 576 ],
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1;
> video/x-raw, framerate=(fraction)25/1, width=(int)[ 48, 924 ],
> height=(int)[ 32, 576 ], interlace-mode=(string)mixed,
> pixel-aspect-ratio=(fraction)1/1, format=(string){ I420, YV12, YUY2,
> UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR,
> Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE,
> GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9,
> YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE,
> I422_10BE }
> 0:01:20.065166894  2648       0xe30320 DEBUG capsfilter
> gstcapsfilter.c:224:gst_capsfilter_transform_caps:<zoom-capsfilter>
> intersect: EMPTY
> 0:01:20.065179278  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d050 unref 2->1
> 0:01:20.065194207  2648       0xe30320 LOG basetransform
> gstbasetransform.c:520:gst_base_transform_transform_caps:<zoom-capsfilter>
> to: EMPTY
> 0:01:20.065206903  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:543:gst_base_transform_transform_caps:<zoom-capsfilter>
> to: EMPTY
> 0:01:20.065219188  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:715:gst_base_transform_query_caps:<zoom-capsfilter:sink>
> transformed  EMPTY
> 0:01:20.065230302  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d0f0 unref 2->1
> 0:01:20.065244139  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:722:gst_base_transform_query_caps:<zoom-capsfilter:sink>
> our template  ANY
> 0:01:20.065255603  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 1->2
> 0:01:20.065269120  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:725:gst_base_transform_query_caps:<zoom-capsfilter:sink>
> intersected EMPTY
> 0:01:20.065280118  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec0002b20 unref 1->0
> 0:01:20.065293010  2648       0xe30320 TRACE GST_CAPS
> gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec0002b20
> 0:01:20.065305818  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:749:gst_base_transform_query_caps:<zoom-capsfilter>
> returning  EMPTY
> 0:01:20.065328648  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d0f0 unref 1->0
> 0:01:20.065344040  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec400d740
> 0:01:20.065356033  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001cc0
> 0:01:20.065367394  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0xe35c00
> 0:01:20.065378370  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001d60
> 0:01:20.065391037  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec400d440
> 0:01:20.065404898  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001f80
> 0:01:20.065419745  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec400d880
> 0:01:20.065430601  2648       0xe30320 TRACE GST_CAPS
> gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec400d0f0
> 0:01:20.065442152  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xd638f0 unref 3->2
> 0:01:20.065454656  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xd638a0 unref 3->2
> 0:01:20.065467452  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.065480621  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.065494517  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<zoom-capsfilter> 0xd73910 unref 2->1
> 0:01:20.065508354  2648       0xe30320 DEBUG GST_PADS
> gstpad.c:3424:gst_pad_query:<zoom-capsfilter:sink> sent query
> 0x7f3ec400d1e0 (caps), result 1
> 0:01:20.095073144  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<zoom-capsfilter:sink> 0xe2ee30 unref
> 2->1
> 0:01:20.095087194  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.095098351  2648       0xe30320 DEBUG GST_CAPS
> gstutils.c:2815:gst_pad_peer_query_caps:<zoom-scale:src> peer query
> returned EMPTY
> 0:01:20.095108187  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d1e0 unref 1->0
> 0:01:20.095118209  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.095128752  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001c40
> 0:01:20.095138321  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:702:gst_base_transform_query_caps:<zoom-scale:sink>
> peer caps  EMPTY
> 0:01:20.095147336  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:705:gst_base_transform_query_caps:<zoom-scale:sink>
> our template  video/x-raw, format=(string){ I420, YV12, YUY2, UYVY,
> AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B,
> Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15,
> ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1,
> 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
> 0:01:20.095175316  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.095186091  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:707:gst_base_transform_query_caps:<zoom-scale:sink>
> intersected EMPTY
> 0:01:20.095195487  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:516:gst_base_transform_transform_caps:<zoom-scale>
> transform caps (direction = 1)
> 0:01:20.095204211  2648       0xe30320 LOG basetransform
> gstbasetransform.c:518:gst_base_transform_transform_caps:<zoom-scale>
> from: EMPTY
> 0:01:20.095213722  2648       0xe30320 DEBUG videoscale
> gstvideoscale.c:446:gst_video_scale_transform_caps:<zoom-scale>
> Transforming caps EMPTY in direction src
> 0:01:20.095223194  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 3->4
> 0:01:20.095233171  2648       0xe30320 TRACE GST_CAPS
> gstcaps.c:220:gst_caps_new_empty: created caps 0x7f3ec400d320
> 0:01:20.095242183  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 4->3
> 0:01:20.095252188  2648       0xe30320 DEBUG videoscale
> gstvideoscale.c:494:gst_video_scale_transform_caps:<zoom-scale>
> returning caps: EMPTY
> 0:01:20.095261197  2648       0xe30320 LOG basetransform
> gstbasetransform.c:520:gst_base_transform_transform_caps:<zoom-scale>
> to: EMPTY
> 0:01:20.095270034  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:543:gst_base_transform_transform_caps:<zoom-scale>
> to: EMPTY
> 0:01:20.095278835  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:715:gst_base_transform_query_caps:<zoom-scale:sink>
> transformed  EMPTY
> 0:01:20.095287183  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.095297223  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:722:gst_base_transform_query_caps:<zoom-scale:sink>
> our template  video/x-raw, format=(string){ I420, YV12, YUY2, UYVY,
> AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B,
> Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15,
> ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1,
> 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
> 0:01:20.095321428  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.095332116  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:725:gst_base_transform_query_caps:<zoom-scale:sink>
> intersected EMPTY
> 0:01:20.095340655  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400d320 unref 1->0
> 0:01:20.095350164  2648       0xe30320 TRACE GST_CAPS
> gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec400d320
> 0:01:20.095359681  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 3->4
> 0:01:20.095369111  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 4->3
> 0:01:20.095379161  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:749:gst_base_transform_query_caps:<zoom-scale>
> returning  EMPTY
> 0:01:20.095397377  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.095407568  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xdad230 unref 6->5
> 0:01:20.095416631  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xdad230 unref 5->4
> 0:01:20.095425950  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.095435813  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.095445905  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<zoom-scale> 0xe34dd0 unref 2->1
> 0:01:20.095456123  2648       0xe30320 DEBUG GST_PADS
> gstpad.c:3424:gst_pad_query:<zoom-scale:sink> sent query 0xe30190
> (caps), result 1
> 0:01:20.095467054  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<zoom-scale:sink> 0xe2e9d0 unref 2->1
> 0:01:20.095476974  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.095487412  2648       0xe30320 DEBUG GST_CAPS
> gstutils.c:2815:gst_pad_peer_query_caps:<zoom-crop:src> peer query
> returned EMPTY
> 0:01:20.095496490  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xe30190 unref 1->0
> 0:01:20.095506070  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.095515530  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0xe62720
> 0:01:20.095524705  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:702:gst_base_transform_query_caps:<zoom-crop:sink>
> peer caps  EMPTY
> 0:01:20.095533756  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:705:gst_base_transform_query_caps:<zoom-crop:sink>
> our template  video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR,
> RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16,
> RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1,
> 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
> 0:01:20.095556231  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.095566891  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:707:gst_base_transform_query_caps:<zoom-crop:sink>
> intersected EMPTY
> 0:01:20.095576336  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:516:gst_base_transform_transform_caps:<zoom-crop>
> transform caps (direction = 1)
> 0:01:20.095584948  2648       0xe30320 LOG basetransform
> gstbasetransform.c:518:gst_base_transform_transform_caps:<zoom-crop>
> from: EMPTY
> 0:01:20.095594935  2648       0xe30320 LOG videocrop
> gstvideocrop.c:466:gst_video_crop_transform_caps:<zoom-crop>
> l=0,r=0,b=0,t=0
> 0:01:20.095604287  2648       0xe30320 LOG videocrop
> gstvideocrop.c:477:gst_video_crop_transform_caps:<zoom-crop>
> transforming caps EMPTY
> 0:01:20.125687599  2648       0xe30320 TRACE GST_CAPS
> gstcaps.c:220:gst_caps_new_empty: created caps 0x7f3ec4003190
> 0:01:20.125706516  2648       0xe30320 LOG basetransform
> gstbasetransform.c:520:gst_base_transform_transform_caps:<zoom-crop>
> to: EMPTY
> 0:01:20.125719872  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:543:gst_base_transform_transform_caps:<zoom-crop>
> to: EMPTY
> 0:01:20.125732000  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:715:gst_base_transform_query_caps:<zoom-crop:sink>
> transformed  EMPTY
> 0:01:20.125743274  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.125756882  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:722:gst_base_transform_query_caps:<zoom-crop:sink>
> our template  video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR,
> RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16,
> RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1,
> 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
> 0:01:20.125788718  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.125803115  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:725:gst_base_transform_query_caps:<zoom-crop:sink>
> intersected EMPTY
> 0:01:20.125814190  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003190 unref 1->0
> 0:01:20.125826721  2648       0xe30320 TRACE GST_CAPS
> gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec4003190
> 0:01:20.125838149  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 3->4
> 0:01:20.125850821  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 4->3
> 0:01:20.125864149  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:749:gst_base_transform_query_caps:<zoom-crop>
> returning  EMPTY
> 0:01:20.125875249  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.125887416  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xe11a80 unref 3->2
> 0:01:20.125899373  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xe30400 unref 3->2
> 0:01:20.125911964  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.125925440  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.125939066  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<zoom-crop> 0xe345b0 unref 3->2
> 0:01:20.125952921  2648       0xe30320 DEBUG GST_PADS
> gstpad.c:3424:gst_pad_query:<zoom-crop:sink> sent query 0x7f3ec4003720
> (caps), result 1
> 0:01:20.125966722  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0xb696d0 ref 2->3
> 0:01:20.125980360  2648       0xe30320 DEBUG GST_CAPS
> gstutils.c:2769:gst_pad_query_caps:<zoom-crop:sink> query returned EMPTY
> 0:01:20.125992407  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003720 unref 1->0
> 0:01:20.126004917  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 3->2
> 0:01:20.126017562  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001c20
> 0:01:20.126036883  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:1249:gst_base_transform_acceptcaps_default:<zoom-crop>
> allowed caps EMPTY
> 0:01:20.126048969  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0xb696d0 unref 2->1
> 0:01:20.126062447  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:1286:gst_base_transform_acceptcaps_default:<zoom-crop>
> transform could not transform video/x-raw, format=(string)YUY2,
> framerate=(fraction)25/1, width=(int)320, height=(int)200,
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1 in
> anything we support
> 0:01:20.126089537  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<zoom-crop> 0xe345b0 unref 2->1
> 0:01:20.126117854  2648       0xe30320 DEBUG GST_PADS
> gstpad.c:3424:gst_pad_query:<zoom-crop:sink> sent query 0x7f3ec4003140
> (accept-caps), result 1
> 0:01:20.126134771  2648       0xe30320 DEBUG default
> gstutils.c:2850:gst_pad_query_accept_caps:<zoom-crop:sink> query
> returned 0
> 0:01:20.126145895  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003140 unref 1->0
> 0:01:20.126158694  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003680 unref 2->1
> 0:01:20.126171625  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec4002080
> 0:01:20.126183841  2648       0xe30320 DEBUG basetransform
> gstbasetransform.c:1203:gst_base_transform_find_transform:<src-capsfilter>
> FAILED to get peer of <src-capsfilter:src> to accept video/x-raw,
> format=(string)YUY2, framerate=(fraction)25/1, width=(int)320,
> height=(int)200, interlace-mode=(string)mixed,
> pixel-aspect-ratio=(fraction)1/1
> 0:01:20.126210223  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<zoom-crop:sink> 0xe2e570 unref 2->1
> 0:01:20.126223242  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4003680 unref 1->0
> 0:01:20.126236937  2648       0xe30320 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001a60
> 0:01:20.126248163  2648       0xe30320 TRACE GST_CAPS
> gstcaps.c:180:_gst_caps_free: freeing caps 0x7f3ec4003680
> 0:01:20.126260568  2648       0xe30320 WARN basetransform
> gstbasetransform.c:1348:gst_base_transform_setcaps:<src-capsfilter>
> transform could not transform video/x-raw, format=(string)YUY2,
> framerate=(fraction)25/1, width=(int)320, height=(int)200,
> interlace-mode=(string)mixed, pixel-aspect-ratio=(fraction)1/1 in
> anything we support
> 0:01:20.126284512  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec0002ad0 unref 5->4
> 0:01:20.126297677  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec400f190 unref 1->0
> 0:01:20.126310118  2648       0xe30320 TRACE GST_REFCOUNTING
> gstminiobject.c:360:gst_mini_object_ref: 0x7f3ec400f190 ref 0->1
> 0:01:20.126322632  2648       0xe30320 LOG GST_BUFFER
> gstbuffer.c:492:_gst_buffer_dispose: release 0x7f3ec400f190 to pool
> 0x7f3ec4006100
> 0:01:20.126346362  2648       0xe30320 DEBUG v4l2
> gstv4l2bufferpool.c:823:gst_v4l2_buffer_pool_release_buffer:<v4l2bufferpool0>
> release buffer 0x7f3ec400f190
> 0:01:20.126360201  2648       0xe30320 LOG v4l2
> gstv4l2bufferpool.c:571:gst_v4l2_buffer_pool_qbuf:<v4l2bufferpool0>
> enqueue buffer 0x7f3ec400f190, index:1, queued:3, flags:00002000
> 0:01:20.126373295  2648       0xe30320 LOG v4l2
> gstv4l2bufferpool.c:576:gst_v4l2_buffer_pool_qbuf:<v4l2bufferpool0>
> doing QBUF
> 0:01:20.126399383  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<v4l2bufferpool0> 0x7f3ec4006100
> unref 3->2
> 0:01:20.126416502  2648       0xe30320 WARN basetransform
> gstbasetransform.c:2090:gst_base_transform_handle_buffer:<src-capsfilter>
> warning: not negotiated
> 0:01:20.126428663  2648       0xe30320 WARN basetransform
> gstbasetransform.c:2090:gst_base_transform_handle_buffer:<src-capsfilter>
> warning: not negotiated
> 0:01:20.155810156  2648       0xe30320 DEBUG GST_MESSAGE
> gstelement.c:1797:gst_element_message_full:<src-capsfilter> start
> 0:01:20.155828661  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<src-capsfilter> 0xd735f0 ref 1->2
> 0:01:20.155844592  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<camerasrc> 0xdf61f0 ref 5->6
> 0:01:20.155858829  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<cambin1> 0xd66010 ref 2->3
> 0:01:20.155873131  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<camera> 0xa442d0 ref 1->2
> 0:01:20.155889167  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<camera> 0xa442d0 unref 2->1
> 0:01:20.155906331  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<cambin1> 0xd66010 unref 3->2
> 0:01:20.155922333  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<camerasrc> 0xdf61f0 unref 6->5
> 0:01:20.155938784  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<src-capsfilter> 0xd735f0 unref 2->1
> 0:01:20.155956753  2648       0xe30320 INFO GST_ERROR_SYSTEM
> gstelement.c:1828:gst_element_message_full:<src-capsfilter> posting
> message: not negotiated
> 0:01:20.155970647  2648       0xe30320 TRACE structure
> gststructure.c:148:gst_structure_new_id_empty_with_size: created
> structure 0x7f3ec4001c40
> 0:01:20.155985868  2648       0xe30320 LOG GST_MESSAGE
> gstmessage.c:282:gst_message_new_custom: source src-capsfilter:
> creating new message 0x7f3ec4002810 warning
> 0:01:20.156001464  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<src-capsfilter> 0xd735f0 ref 1->2
> 0:01:20.156016335  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<bus7> 0xd6a090 ref 9->10
> 0:01:20.156038249  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:316:gst_bus_post:<bus7> [msg 0x7f3ec4002810] posting on bus
> warning message from element 'src-capsfilter': GstMessageWarning,
> gerror=(GError)NULL, debug=(string)"gstbasetransform.c\(2090\):\
> gst_base_transform_handle_buffer\ \(\):\
> /GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
> negotiated";
> 0:01:20.156073066  2648       0xe30320 DEBUG bin
> gstbin.c:3270:gst_bin_handle_message_func:<camerasrc> [msg
> 0x7f3ec4002810] handling child src-capsfilter message of type warning
> 0:01:20.156087709  2648       0xe30320 DEBUG bin
> gstbin.c:3563:gst_bin_handle_message_func:<camerasrc> posting message
> upward
> 0:01:20.156099975  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<bus2> 0xcf2330 ref 14->15
> 0:01:20.156113875  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:316:gst_bus_post:<bus2> [msg 0x7f3ec4002810] posting on bus
> warning message from element 'src-capsfilter': GstMessageWarning,
> gerror=(GError)NULL, debug=(string)"gstbasetransform.c\(2090\):\
> gst_base_transform_handle_buffer\ \(\):\
> /GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
> negotiated";
> 0:01:20.156144545  2648       0xe30320 DEBUG bin
> gstbin.c:3270:gst_bin_handle_message_func:<cambin1> [msg
> 0x7f3ec4002810] handling child src-capsfilter message of type warning
> 0:01:20.156158041  2648       0xe30320 DEBUG bin
> gstbin.c:3563:gst_bin_handle_message_func:<cambin1> posting message
> upward
> 0:01:20.156169818  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<bus0> 0xcf2170 ref 2->3
> 0:01:20.156183636  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:316:gst_bus_post:<bus0> [msg 0x7f3ec4002810] posting on bus
> warning message from element 'src-capsfilter': GstMessageWarning,
> gerror=(GError)NULL, debug=(string)"gstbasetransform.c\(2090\):\
> gst_base_transform_handle_buffer\ \(\):\
> /GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
> negotiated";
> 0:01:20.156210140  2648       0xe30320 DEBUG bin
> gstbin.c:3270:gst_bin_handle_message_func:<camera> [msg
> 0x7f3ec4002810] handling child src-capsfilter message of type warning
> 0:01:20.156222969  2648       0xe30320 DEBUG bin
> gstbin.c:3563:gst_bin_handle_message_func:<camera> posting message upward
> 0:01:20.156234772  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:247:gst_object_ref:<bus1> 0xcf2250 ref 3->4
> 0:01:20.156248260  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:316:gst_bus_post:<bus1> [msg 0x7f3ec4002810] posting on bus
> warning message from element 'src-capsfilter': GstMessageWarning,
> gerror=(GError)NULL, debug=(string)"gstbasetransform.c\(2090\):\
> gst_base_transform_handle_buffer\ \(\):\
> /GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
> negotiated";
> 0:01:20.156290796  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:351:gst_bus_post:<bus1> [msg 0x7f3ec4002810] pushing on async
> queue
> 0:01:20.156305156  2648       0xe30320 LOG GST_POLL
> gstpoll.c:186:raise_wakeup: 0xd56d40: raise
> 0:01:20.156333723  2648       0xa56ec0 LOG GST_BUS
> gstbus.c:502:gst_bus_timed_pop_filtered:<bus1> have 1 messages
> 0:01:20.156347989  2648       0xa56ec0 LOG GST_POLL
> gstpoll.c:201:release_wakeup: 0xd56d40: release
> 0:01:20.156362527  2648       0xa56ec0 DEBUG GST_BUS
> gstbus.c:510:gst_bus_timed_pop_filtered:<bus1> got message
> 0x7f3ec4002810, warning from src-capsfilter, type mask is 4294967295
> 0:01:20.156377191  2648       0xa56ec0 DEBUG GST_BUS
> gstbus.c:771:gst_bus_source_dispatch:<bus1> source 0xd79960 calling
> dispatch with warning message from element 'src-capsfilter':
> GstMessageWarning, gerror=(GError)NULL,
> debug=(string)"gstbasetransform.c\(2090\):\
> gst_base_transform_handle_buffer\ \(\):\
> /GstPipeline:camera/GstCameraBin:cambin1/GstWrapperCameraBinSrc:camerasrc/GstCapsFilter:src-capsfilter:\012not\
> negotiated";
> 0:01:20.156405827  2648       0xa56ec0 TRACE GST_REFCOUNTING
> gstminiobject.c:440:gst_mini_object_unref: 0x7f3ec4002810 unref 1->0
> 0:01:20.156419369  2648       0xa56ec0 LOG GST_MESSAGE
> gstmessage.c:184:_gst_message_free: finalize message 0x7f3ec4002810,
> warning from src-capsfilter
> 0:01:20.156433461  2648       0xa56ec0 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<src-capsfilter> 0xd735f0 unref 2->1
> 0:01:20.156447232  2648       0xa56ec0 TRACE structure
> gststructure.c:386:gst_structure_free: free structure 0x7f3ec4001c40
> 0:01:20.156459393  2648       0xa56ec0 DEBUG GST_BUS
> gstbus.c:776:gst_bus_source_dispatch:<bus1> source 0xd79960 handler
> returns 1
> 0:01:20.156492703  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:354:gst_bus_post:<bus1> [msg 0x7f3ec4002810] pushed on async
> queue
> 0:01:20.156506850  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<bus1> 0xcf2250 unref 4->3
> 0:01:20.156520620  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:347:gst_bus_post:<bus0> [msg 0x7f3ec4002810] dropped
> 0:01:20.156533146  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<bus0> 0xcf2170 unref 3->2
> 0:01:20.156546751  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:347:gst_bus_post:<bus2> [msg 0x7f3ec4002810] dropped
> 0:01:20.156558903  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<bus2> 0xcf2330 unref 15->14
> 0:01:20.156572298  2648       0xe30320 DEBUG GST_BUS
> gstbus.c:347:gst_bus_post:<bus7> [msg 0x7f3ec4002810] dropped
> 0:01:20.156584495  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<bus7> 0xd6a090 unref 10->9
> 0:01:20.156597862  2648       0xe30320 INFO GST_ERROR_SYSTEM
> gstelement.c:1851:gst_element_message_full:<src-capsfilter> posted
> warning message: not negotiated
> 0:01:20.156614175  2648       0xe30320 LOG GST_SCHEDULING
> gstpad.c:3659:gst_pad_chain_data_unchecked:<src-capsfilter:sink>
> called chainfunction &gst_base_transform_chain with buffer
> 0x7f3ec400f190, returned not-negotiated
> 0:01:20.186711542  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<src-capsfilter:sink> 0xe2e110 unref
> 2->1
> 0:01:20.186726230  2648       0xe30320 LOG GST_SCHEDULING
> gstpad.c:3659:gst_pad_chain_data_unchecked:<src-videoconvert:sink>
> called chainfunction &gst_base_transform_chain with buffer
> 0x7f3ec400f190, returned not-negotiated
> 0:01:20.186737820  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<src-videoconvert:sink> 0xdfba40
> unref 2->1
> 0:01:20.186749121  2648       0xe30320 LOG GST_SCHEDULING
> gstpad.c:3128:do_probe_callbacks:<camerasrc-real-src:src> do probes
> cookie 69
> 0:01:20.186759038  2648       0xe30320 LOG GST_SCHEDULING
> gstpad.c:3072:probe_hook_marshal:<camerasrc-real-src:src> hook 1,
> cookie 69 with flags 0x00003040 does not match 00001001
> 0:01:20.186770228  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<camerasrc-real-src:src> 0xd6da30
> unref 2->1
> 0:01:20.186781541  2648       0xe30320 LOG GST_SCHEDULING
> gstpad.c:3659:gst_pad_chain_data_unchecked:<src:proxypad11> called
> chainfunction &gst_proxy_pad_chain_default with buffer 0x7f3ec400f190,
> returned not-negotiated
> 0:01:20.186794000  2648       0xe30320 TRACE GST_REFCOUNTING
> gstobject.c:273:gst_object_unref:<src:proxypad11> 0xd6f8e0 unref 2->1
> 0:01:20.186805686  2648       0xe30320 DEBUG GST_PADS
> gstpad.c:1386:gst_pad_needs_reconfigure:<camerasrc-real-src-actual-src-v4l:src>
> peeking RECONFIGURE flag 0
> 0:01:20.186816941  2648       0xe30320 DEBUG basesrc
> gstbasesrc.c:2757:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l> Not
> negotiated
> 0:01:20.186826128  2648       0xe30320 DEBUG basesrc
> gstbasesrc.c:2773:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l> pausing
> task, reason not-negotiated
> 0:01:20.186835522  2648       0xe30320 DEBUG GST_PADS
> gstpad.c:5251:gst_pad_pause_task:<camerasrc-real-src-actual-src-v4l:src>
> pause task
> 0:01:20.186846101  2648       0xe30320 DEBUG task
> gsttask.c:662:gst_task_set_state:<camerasrc-real-src-actual-src-v4l:src>
> Changing task 0xe58240 to state 2
> 0:01:20.186856475  2648       0xe30320 DEBUG GST_EVENT
> gstevent.c:300:gst_event_new_custom: creating new event 0x7f3ec4004120
> eos 28174
> 0:01:20.186881066  2648       0xe30320 WARN basesrc
> gstbasesrc.c:2812:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l> error:
> Internal data flow error.
> 0:01:20.186890745  2648       0xe30320 WARN basesrc
> gstbasesrc.c:2812:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l> error:
> streaming task paused, reason not-negotiated (-4)
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
OK.  What do I have to download from which website?

Ian

> Some fixes have been pushed to gstreamer core and -base that are
> related to camerabin issues (yesterday and today). Can you give it a
> try with latest git gstreamer?
>
> If it still doesn't work for you, can you provide a small sample
> application to reproduce the issue in a bug filled at
> https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
To clarify - I have not used the git master before and I don't know the
process.

On 30/01/2014 21:59, Ian Davidson wrote:

> OK. What do I have to download from which website?
>
> Ian
>
>> Some fixes have been pushed to gstreamer core and -base that are
>> related to camerabin issues (yesterday and today). Can you give it a
>> try with latest git gstreamer?
>>
>> If it still doesn't work for you, can you provide a small sample
>> application to reproduce the issue in a bug filled at
>> https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Thiago Santos
On 01/31/2014 05:15 AM, Ian Davidson wrote:
To clarify - I have not used the git master before and I don't know the process.

You will need to clone and build the gstreamer modules. Check the developer instructions at http://gstreamer.freedesktop.org/dev/

and use git to clone the modules you need, I'd recommend using a gst-uninstalled setup so that you don't have to install the binaries to your system. You can find instructions about it at the 'scripts' dir on the core gstreamer module or at http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts, look for gst-uninstalled and create-uninstalled-setup.sh

Then you just need to build the modules from the uninstalled setup. Build by running './autogen.sh' from the module, remember to check the final output listing the plugins that are enabled and the ones that aren't. If a plugin you need/want is disabled, check if its build dependencies are installed on your system and run autogen.sh again. Then just run make and it should build.

If you have a sample application/script that shows the problem, you can send it to the list for other devels to look if it is correctly using camerabin.

--
Thiago


On 30/01/2014 21:59, Ian Davidson wrote:
OK. What do I have to download from which website?

Ian

Some fixes have been pushed to gstreamer core and -base that are related to camerabin issues (yesterday and today). Can you give it a try with latest git gstreamer?

If it still doesn't work for you, can you provide a small sample application to reproduce the issue in a bug filled at https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
Thanks Thiago,

I am running Fedora 18 (I know it is a little bit old)

I installed git, got the create-uninstalled-setup.sh and ran it.  I did not find any 'instructions' other than the scripts - perhaps I looked in the wrong place.

The first problem I had was that the script told me that I was missing "some very basic tools or dependencies" but didn't say what.  It recommended I visited http://gstreamer.freedesktop.org/wiki/Fedora for instructions on how to install - but that came up "This page does not exist yet. You can create a new empty page, or use one of the page templates."  So I looked at the tests the script had performed and installed bison and flex.
I then tried to run autogen.sh.  This reported that
  checking for autopoint >= 0.17 ... autopoint not found !
You must have autopoint installed to compile gstreamer.
Download the appropriate package for your distribution,
or get the source tarball at ftp://ftp.gnu.org/pub/gnu/gettext/
  checking for libtoolize >= 2.2.6 ... found 2.4.2, ok.
  checking for pkg-config >= 0.8.0 ... found 0.27, ok.

- Please get the right tools before proceeding.
- Alternatively, if you're sure we're wrong, run with --nocheck.

I have read that autopoint is part of gettext (which I have installed - I also have gettext-libs, but not gettext-devel, gettext-common-javadoc, gettext-commons or gettext-common-devel).  I have tried running autopoint from a command line and it is NOT found.

Do I need to install one or more of those packages?

Ian

On 31/01/2014 14:51, Thiago Santos wrote:
On 01/31/2014 05:15 AM, Ian Davidson wrote:
To clarify - I have not used the git master before and I don't know the process.

You will need to clone and build the gstreamer modules. Check the developer instructions at http://gstreamer.freedesktop.org/dev/

and use git to clone the modules you need, I'd recommend using a gst-uninstalled setup so that you don't have to install the binaries to your system. You can find instructions about it at the 'scripts' dir on the core gstreamer module or at http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts, look for gst-uninstalled and create-uninstalled-setup.sh

Then you just need to build the modules from the uninstalled setup. Build by running './autogen.sh' from the module, remember to check the final output listing the plugins that are enabled and the ones that aren't. If a plugin you need/want is disabled, check if its build dependencies are installed on your system and run autogen.sh again. Then just run make and it should build.

If you have a sample application/script that shows the problem, you can send it to the list for other devels to look if it is correctly using camerabin.

--
Thiago


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
In reply to this post by Thiago Santos
Here is my program.  It creates 3 buttons - one to launch Camerabin, one to take snapshots, and one to close the camerabin.

The program works OK if you exclude the 4 lines from 104 to 107.

/* JustTheCamera.c */

#include <gtk/gtk.h>
#include <gst/gst.h>
#include <glib.h>




    GtkWidget *startsnapbutton;
    GtkWidget *snapbutton;
    GtkWidget *stopsnapbutton;

   
static  GstElement *camPipeline;
  GstElement *cambin;
  GstBus *cambus;
  GMainLoop *camloop;
  guint cam_bus_watch_id;



static gboolean
bus_call (GstBus     *bus,
          GstMessage *msg,
          gpointer    data)
{
  GMainLoop *loop = (GMainLoop *) data;
  switch (GST_MESSAGE_TYPE (msg)) {

    case GST_MESSAGE_EOS:
      g_print ("End of stream\n");
      g_main_loop_quit (loop);
      break;

    case GST_MESSAGE_ERROR: {
      gchar  *debug;
      GError *error;

      gst_message_parse_error (msg, &error, &debug);
      g_free (debug);

      g_printerr ("Error: %s\n", error->message);
      g_error_free (error);

      g_main_loop_quit (loop);
      break;
    }

      case GST_MESSAGE_APPLICATION:{
        const GstStructure *s;

        s = gst_message_get_structure (msg);

        if (gst_structure_has_name (s, "GstLaunchInterrupt")) {
          /* this application message is posted when we caught an interrupt and
           * we need to stop the pipeline. */
          g_print ("Interrupt: Stopping pipeline ...\n");
/*          gst_element_send_event (camPipeline, gst_event_new_eos ()); */
          gst_element_set_state (camPipeline, GST_STATE_NULL);
          g_main_loop_quit (loop);
        }
        break;
      }


    default:
      break;
  }

  return TRUE;
}

gint delete_event( GtkWidget *widget,
                   GdkEvent  *event,
                   gpointer   data )
{
  g_print ("Delete_Event called\n");
      return(FALSE);
}

/* Start the Camera - Set up camerabin.  */
void snapButtonPressed( GtkWidget *widget,
               gpointer   data )
{

 GstCaps *caps;

  gtk_widget_set_sensitive(startsnapbutton, FALSE);
  gtk_widget_set_sensitive(snapbutton, TRUE);
  gtk_widget_set_sensitive(stopsnapbutton, TRUE);
 
  camPipeline     = gst_pipeline_new ("camera");
  cambin          = gst_element_factory_make ("camerabin",       "cambin1");
 
  camloop = g_main_loop_new (NULL, FALSE);
  if (!camPipeline || !cambin ) {
    g_printerr ("One element could not be created. Exiting.\n");
    return;
  }
  /* Set up the pipeline */
 
  g_print ("Watch for the bus\n");
  cambus = gst_pipeline_get_bus (GST_PIPELINE (camPipeline));
  cam_bus_watch_id =  gst_bus_add_watch (cambus, bus_call, camloop);

  g_print ("Set the picture size\n");
  caps = gst_caps_from_string("video/x-raw, width=(int)800, height=(int)600");
  g_object_set (G_OBJECT (cambin), "image-capture-caps", caps, NULL);
  gst_caps_unref (caps);    /*  This unref seems to cause problems and may need to be commented out */

  g_print ("Add the element to the pipeline\n");
  gst_bin_add_many (GST_BIN (camPipeline), cambin, NULL);


  gst_element_set_state (camPipeline, GST_STATE_PLAYING);

  /* Iterate */
  g_main_loop_run (camloop);


  /* Out of the main loop, clean up nicely */
  g_print ("Returned, Camera Off\n");
  gst_element_set_state (camPipeline, GST_STATE_NULL);

  gst_object_unref (GST_OBJECT (camPipeline));
  g_source_remove (cam_bus_watch_id);
  g_main_loop_unref (camloop);
 
  gtk_main_quit();

  return;

}

void snapNow( GtkWidget *widget,
               gpointer   data )
{
  guint lbIdle;
 
  g_print ("Take a picture\n");
 
  g_object_get(cambin, "idle", &lbIdle, NULL);
  if (lbIdle) {
    g_print("Camera is Idle\n");
  } else {
    g_print("Camera is Busy\n");
  }
 
  g_signal_emit_by_name (cambin, "start-capture", NULL);
}


void snapOff( GtkWidget *widget,
               gpointer   data )
{
  g_print ("We want to stop\n");

  gst_element_post_message (GST_ELEMENT (camPipeline),
      gst_message_new_application (GST_OBJECT (camPipeline),
          gst_structure_new ("GstLaunchInterrupt",
              "message", G_TYPE_STRING, "Pipeline interrupted", NULL)));    
}


int main( int   argc,
          char *argv[] )
{
    /* GtkWidget is the storage type for widgets */
    GtkWidget *window;
    GtkWidget *grid;
   

    /* This is called in all GTK applications. Arguments are parsed
     * from the command line and are returned to the application. */
    gtk_init (&argc, &argv);
    gst_init (&argc, &argv);

    /* Create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title (GTK_WINDOW (window), "Camera");

    /* Here we just set a handler for delete_event that immediately
     * exits GTK. */
    g_signal_connect (window, "destroy",
                        G_CALLBACK (delete_event), NULL);

    /* Sets the border width of the window. */
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);

    /* Use a grid for the buttons */
    grid = gtk_grid_new();

    /* Put the grid into the main window. */
    gtk_container_add (GTK_CONTAINER (window), grid);
   
     /* Snapshot Buttons. */
    startsnapbutton = gtk_button_new_with_label ("Start Camera");
    g_signal_connect (startsnapbutton, "clicked",
                        G_CALLBACK (snapButtonPressed), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), startsnapbutton, 0, 1, 1, 1);
    gtk_widget_show(startsnapbutton);

    snapbutton = gtk_button_new_with_label ("Take Snap");
    g_signal_connect (snapbutton, "clicked",
                        G_CALLBACK (snapNow), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), snapbutton, 0, 2, 1, 1);
    gtk_widget_show(snapbutton);
    gtk_widget_set_sensitive(snapbutton, FALSE);


    stopsnapbutton = gtk_button_new_with_label ("Stop Camera");
    g_signal_connect (stopsnapbutton, "clicked",
                        G_CALLBACK (snapOff), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), stopsnapbutton, 0, 3, 1, 1);
    gtk_widget_show(stopsnapbutton);
    gtk_widget_set_sensitive(stopsnapbutton, FALSE);


    gtk_widget_show(grid);



    gtk_widget_show (window);

    /* Rest in gtk_main and wait for the fun to begin! */
    gtk_main ();

    return(0);
}
/* JustTheCamera-end */



On 31/01/2014 14:51, Thiago Santos wrote:


If you have a sample application/script that shows the problem, you can send it to the list for other devels to look if it is correctly using camerabin.

--
Thiago


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
When I said "works OK", I meant "does not crash" - but you cannot change the image size.  As is, the program fails because it cannot negotiate.
I am running version 1.0.10

Ian

On 02/02/2014 14:45, Ian Davidson wrote:
Here is my program.  It creates 3 buttons - one to launch Camerabin, one to take snapshots, and one to close the camerabin.

The program works OK if you exclude the 4 lines from 104 to 107.

/* JustTheCamera.c */

#include <gtk/gtk.h>
#include <gst/gst.h>
#include <glib.h>




    GtkWidget *startsnapbutton;
    GtkWidget *snapbutton;
    GtkWidget *stopsnapbutton;

   
static  GstElement *camPipeline;
  GstElement *cambin;
  GstBus *cambus;
  GMainLoop *camloop;
  guint cam_bus_watch_id;



static gboolean
bus_call (GstBus     *bus,
          GstMessage *msg,
          gpointer    data)
{
  GMainLoop *loop = (GMainLoop *) data;
  switch (GST_MESSAGE_TYPE (msg)) {

    case GST_MESSAGE_EOS:
      g_print ("End of stream\n");
      g_main_loop_quit (loop);
      break;

    case GST_MESSAGE_ERROR: {
      gchar  *debug;
      GError *error;

      gst_message_parse_error (msg, &error, &debug);
      g_free (debug);

      g_printerr ("Error: %s\n", error->message);
      g_error_free (error);

      g_main_loop_quit (loop);
      break;
    }

      case GST_MESSAGE_APPLICATION:{
        const GstStructure *s;

        s = gst_message_get_structure (msg);

        if (gst_structure_has_name (s, "GstLaunchInterrupt")) {
          /* this application message is posted when we caught an interrupt and
           * we need to stop the pipeline. */
          g_print ("Interrupt: Stopping pipeline ...\n");
/*          gst_element_send_event (camPipeline, gst_event_new_eos ()); */
          gst_element_set_state (camPipeline, GST_STATE_NULL);
          g_main_loop_quit (loop);
        }
        break;
      }


    default:
      break;
  }

  return TRUE;
}

gint delete_event( GtkWidget *widget,
                   GdkEvent  *event,
                   gpointer   data )
{
  g_print ("Delete_Event called\n");
      return(FALSE);
}

/* Start the Camera - Set up camerabin.  */
void snapButtonPressed( GtkWidget *widget,
               gpointer   data )
{

 GstCaps *caps;

  gtk_widget_set_sensitive(startsnapbutton, FALSE);
  gtk_widget_set_sensitive(snapbutton, TRUE);
  gtk_widget_set_sensitive(stopsnapbutton, TRUE);
 
  camPipeline     = gst_pipeline_new ("camera");
  cambin          = gst_element_factory_make ("camerabin",       "cambin1");
 
  camloop = g_main_loop_new (NULL, FALSE);
  if (!camPipeline || !cambin ) {
    g_printerr ("One element could not be created. Exiting.\n");
    return;
  }
  /* Set up the pipeline */
 
  g_print ("Watch for the bus\n");
  cambus = gst_pipeline_get_bus (GST_PIPELINE (camPipeline));
  cam_bus_watch_id =  gst_bus_add_watch (cambus, bus_call, camloop);

  g_print ("Set the picture size\n");
  caps = gst_caps_from_string("video/x-raw, width=(int)800, height=(int)600");
  g_object_set (G_OBJECT (cambin), "image-capture-caps", caps, NULL);
  gst_caps_unref (caps);    /*  This unref seems to cause problems and may need to be commented out */

  g_print ("Add the element to the pipeline\n");
  gst_bin_add_many (GST_BIN (camPipeline), cambin, NULL);


  gst_element_set_state (camPipeline, GST_STATE_PLAYING);

  /* Iterate */
  g_main_loop_run (camloop);


  /* Out of the main loop, clean up nicely */
  g_print ("Returned, Camera Off\n");
  gst_element_set_state (camPipeline, GST_STATE_NULL);

  gst_object_unref (GST_OBJECT (camPipeline));
  g_source_remove (cam_bus_watch_id);
  g_main_loop_unref (camloop);
 
  gtk_main_quit();

  return;

}

void snapNow( GtkWidget *widget,
               gpointer   data )
{
  guint lbIdle;
 
  g_print ("Take a picture\n");
 
  g_object_get(cambin, "idle", &lbIdle, NULL);
  if (lbIdle) {
    g_print("Camera is Idle\n");
  } else {
    g_print("Camera is Busy\n");
  }
 
  g_signal_emit_by_name (cambin, "start-capture", NULL);
}


void snapOff( GtkWidget *widget,
               gpointer   data )
{
  g_print ("We want to stop\n");

  gst_element_post_message (GST_ELEMENT (camPipeline),
      gst_message_new_application (GST_OBJECT (camPipeline),
          gst_structure_new ("GstLaunchInterrupt",
              "message", G_TYPE_STRING, "Pipeline interrupted", NULL)));    
}


int main( int   argc,
          char *argv[] )
{
    /* GtkWidget is the storage type for widgets */
    GtkWidget *window;
    GtkWidget *grid;
   

    /* This is called in all GTK applications. Arguments are parsed
     * from the command line and are returned to the application. */
    gtk_init (&argc, &argv);
    gst_init (&argc, &argv);

    /* Create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title (GTK_WINDOW (window), "Camera");

    /* Here we just set a handler for delete_event that immediately
     * exits GTK. */
    g_signal_connect (window, "destroy",
                        G_CALLBACK (delete_event), NULL);

    /* Sets the border width of the window. */
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);

    /* Use a grid for the buttons */
    grid = gtk_grid_new();

    /* Put the grid into the main window. */
    gtk_container_add (GTK_CONTAINER (window), grid);
   
     /* Snapshot Buttons. */
    startsnapbutton = gtk_button_new_with_label ("Start Camera");
    g_signal_connect (startsnapbutton, "clicked",
                        G_CALLBACK (snapButtonPressed), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), startsnapbutton, 0, 1, 1, 1);
    gtk_widget_show(startsnapbutton);

    snapbutton = gtk_button_new_with_label ("Take Snap");
    g_signal_connect (snapbutton, "clicked",
                        G_CALLBACK (snapNow), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), snapbutton, 0, 2, 1, 1);
    gtk_widget_show(snapbutton);
    gtk_widget_set_sensitive(snapbutton, FALSE);


    stopsnapbutton = gtk_button_new_with_label ("Stop Camera");
    g_signal_connect (stopsnapbutton, "clicked",
                        G_CALLBACK (snapOff), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), stopsnapbutton, 0, 3, 1, 1);
    gtk_widget_show(stopsnapbutton);
    gtk_widget_set_sensitive(stopsnapbutton, FALSE);


    gtk_widget_show(grid);



    gtk_widget_show (window);

    /* Rest in gtk_main and wait for the fun to begin! */
    gtk_main ();

    return(0);
}
/* JustTheCamera-end */



On 31/01/2014 14:51, Thiago Santos wrote:


If you have a sample application/script that shows the problem, you can send it to the list for other devels to look if it is correctly using camerabin.

--
Thiago



_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
In reply to this post by Thiago Santos
I have upgraded my computer to use Fedora 20 and have the 1.2.3 version of gstreamer installed.  My program (below) still crashes with a 'not negotiated' if I try to specify the image size.

Would the fixes that were pushed to git on 30th January have made it into release 1.2.3?

Ian

/* JustTheCamera.c */

#include <gtk/gtk.h>
#include <gst/gst.h>
#include <glib.h>




    GtkWidget *startsnapbutton;
    GtkWidget *snapbutton;
    GtkWidget *stopsnapbutton;

    
static  GstElement *camPipeline;
  GstElement *cambin;
  GstBus *cambus;
  GMainLoop *camloop;
  guint cam_bus_watch_id;



static gboolean
bus_call (GstBus     *bus,
          GstMessage *msg,
          gpointer    data)
{
  GMainLoop *loop = (GMainLoop *) data;
  switch (GST_MESSAGE_TYPE (msg)) {

    case GST_MESSAGE_EOS:
      g_print ("End of stream\n");
      g_main_loop_quit (loop);
      break;

    case GST_MESSAGE_ERROR: {
      gchar  *debug;
      GError *error;

      gst_message_parse_error (msg, &error, &debug);
      g_free (debug);

      g_printerr ("Error: %s\n", error->message);
      g_error_free (error);

      g_main_loop_quit (loop);
      break;
    }

      case GST_MESSAGE_APPLICATION:{
        const GstStructure *s;

        s = gst_message_get_structure (msg);

        if (gst_structure_has_name (s, "GstLaunchInterrupt")) {
          /* this application message is posted when we caught an interrupt and
           * we need to stop the pipeline. */
          g_print ("Interrupt: Stopping pipeline ...\n");
/*          gst_element_send_event (camPipeline, gst_event_new_eos ()); */
          gst_element_set_state (camPipeline, GST_STATE_NULL);
          g_main_loop_quit (loop);
        }
        break;
      }
/*      case GST_MESSAGE_STATE_CHANGED: {
        GstState old_state, new_state;
    
        gst_message_parse_state_changed (msg, &old_state, &new_state, NULL);
        g_print ("Element %s changed state from %s to %s.\n",
            GST_OBJECT_NAME (msg->src),
            gst_element_state_get_name (old_state),
            gst_element_state_get_name (new_state));
    break;      
      }	*/

    default:
      break;
  }

  return TRUE;
}

gint delete_event( GtkWidget *widget,
                   GdkEvent  *event,
                   gpointer   data )
{
  g_print ("Delete_Event called\n");
      return(FALSE);
}

/* Start the Camera - Set up camerabin.  */
void snapButtonPressed( GtkWidget *widget,
               gpointer   data )
{

 GstCaps *caps;

  gtk_widget_set_sensitive(startsnapbutton, FALSE);
  gtk_widget_set_sensitive(snapbutton, TRUE);
  gtk_widget_set_sensitive(stopsnapbutton, TRUE);
  
  camPipeline     = gst_pipeline_new ("camera");
  cambin          = gst_element_factory_make ("camerabin",       "cambin1");
 
  camloop = g_main_loop_new (NULL, FALSE);
  if (!camPipeline || !cambin ) {
    g_printerr ("One element could not be created. Exiting.\n");
    return;
  }
  /* Set up the pipeline */
 
  g_print ("Watch for the bus\n");
  cambus = gst_pipeline_get_bus (GST_PIPELINE (camPipeline));
  cam_bus_watch_id =  gst_bus_add_watch (cambus, bus_call, camloop);

  g_print ("Set the picture size\n");
  caps = gst_caps_from_string("video/x-raw, width=(int)800, height=(int)600");
  g_object_set (G_OBJECT (cambin), "image-capture-caps", caps, NULL);
  gst_caps_unref (caps);    /*  This unref seems to cause problems and may need to be commented out */

  g_print ("Add the element to the pipeline\n");
  gst_bin_add_many (GST_BIN (camPipeline), cambin, NULL);


  gst_element_set_state (camPipeline, GST_STATE_PLAYING);

  /* Iterate */
  g_main_loop_run (camloop);


  /* Out of the main loop, clean up nicely */
  g_print ("Returned, Camera Off\n");
  gst_element_set_state (camPipeline, GST_STATE_NULL);

  gst_object_unref (GST_OBJECT (camPipeline));
  g_source_remove (cam_bus_watch_id);
  g_main_loop_unref (camloop);
  
  gtk_main_quit();

  return;

}

void snapNow( GtkWidget *widget,
               gpointer   data )
{
  guint lbIdle;
  
  g_print ("Take a picture\n");
  
  g_object_get(cambin, "idle", &lbIdle, NULL);
  if (lbIdle) {
    g_print("Camera is Idle\n");
  } else {
    g_print("Camera is Busy\n");
  }
  
  g_signal_emit_by_name (cambin, "start-capture", NULL);
}


void snapOff( GtkWidget *widget,
               gpointer   data )
{
  g_print ("We want to stop\n");

  gst_element_post_message (GST_ELEMENT (camPipeline),
      gst_message_new_application (GST_OBJECT (camPipeline),
          gst_structure_new ("GstLaunchInterrupt",
              "message", G_TYPE_STRING, "Pipeline interrupted", NULL)));     
}


int main( int   argc,
          char *argv[] )
{
    /* GtkWidget is the storage type for widgets */
    GtkWidget *window;
    GtkWidget *grid;
    

    /* This is called in all GTK applications. Arguments are parsed
     * from the command line and are returned to the application. */
    gtk_init (&argc, &argv);
    gst_init (&argc, &argv);

    /* Create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title (GTK_WINDOW (window), "Camera");

    /* Here we just set a handler for delete_event that immediately
     * exits GTK. */
    g_signal_connect (window, "destroy",
                        G_CALLBACK (delete_event), NULL);

    /* Sets the border width of the window. */
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);

    /* Use a grid for the buttons */
    grid = gtk_grid_new();

    /* Put the grid into the main window. */
    gtk_container_add (GTK_CONTAINER (window), grid);
    
     /* Snapshot Buttons. */
    startsnapbutton = gtk_button_new_with_label ("Start Camera");
    g_signal_connect (startsnapbutton, "clicked",
                        G_CALLBACK (snapButtonPressed), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), startsnapbutton, 0, 1, 1, 1);
    gtk_widget_show(startsnapbutton);

    snapbutton = gtk_button_new_with_label ("Take Snap");
    g_signal_connect (snapbutton, "clicked",
                        G_CALLBACK (snapNow), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), snapbutton, 0, 2, 1, 1);
    gtk_widget_show(snapbutton);
    gtk_widget_set_sensitive(snapbutton, FALSE);


    stopsnapbutton = gtk_button_new_with_label ("Stop Camera");
    g_signal_connect (stopsnapbutton, "clicked",
                        G_CALLBACK (snapOff), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), stopsnapbutton, 0, 3, 1, 1);
    gtk_widget_show(stopsnapbutton);
    gtk_widget_set_sensitive(stopsnapbutton, FALSE);


    gtk_widget_show(grid);



    gtk_widget_show (window);

    /* Rest in gtk_main and wait for the fun to begin! */
    gtk_main ();

    return(0);
}
/* JustTheCamera-end */

trace.txt

Watch for the bus
Set the picture size
Add the element to the pipeline
Returned, Camera Off
33m 2444  0x92ec060 FIXME                default gstutils.c:3648:gst_pad_create_stream_id_printf_valist:<preview-appsrc:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:04.719934133  2444  0x92ebf80 WARN                GST_PADS gstpad.c:3669:gst_pad_peer_query:<src-capsfilter:src> could not send sticky events
0:00:04.999635762  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:1373:gst_base_transform_setcaps:<src-videoconvert> transform could not transform video/x-raw, format=(string)I420, width=(int)352, height=(int)292, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)100/1 in anything we support
0:00:05.000725976  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:2115:gst_base_transform_handle_buffer:<src-videoconvert> warning: not negotiated
0:00:05.000787104  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:2115:gst_base_transform_handle_buffer:<src-videoconvert> warning: not negotiated
0:00:05.001194337  2444  0x92ebf80 WARN              bufferpool gstbufferpool.c:632:gst_buffer_pool_set_config:<v4l2bufferpool0> can't change config, we are active
0:00:05.001261875  2444  0x92ebf80 WARN              bufferpool gstbufferpool.c:632:gst_buffer_pool_set_config:<v4l2bufferpool0> can't change config, we are active
0:00:05.117358001  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:1373:gst_base_transform_setcaps:<src-capsfilter> transform could not transform video/x-raw, format=(string)I420, width=(int)352, height=(int)292, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)100/1 in anything we support
0:00:05.117696734  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:2115:gst_base_transform_handle_buffer:<src-capsfilter> warning: not negotiated
0:00:05.117730388  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:2115:gst_base_transform_handle_buffer:<src-capsfilter> warning: not negotiated
0:00:05.118095014  2444  0x92ebf80 WARN                 basesrc gstbasesrc.c:2865:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l> error: Internal data flow error.
0:00:05.118136171  2444  0x92ebf80 WARN                 basesrc gstbasesrc.c:2865:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l> error: streaming task paused, reason not-negotiated (-4)
Error: Internal data flow error.

On 31/01/2014 14:51, Thiago Santos wrote:
On 01/31/2014 05:15 AM, Ian Davidson wrote:
To clarify - I have not used the git master before and I don't know the process.

You will need to clone and build the gstreamer modules. Check the developer instructions at http://gstreamer.freedesktop.org/dev/

and use git to clone the modules you need, I'd recommend using a gst-uninstalled setup so that you don't have to install the binaries to your system. You can find instructions about it at the 'scripts' dir on the core gstreamer module or at http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts, look for gst-uninstalled and create-uninstalled-setup.sh

Then you just need to build the modules from the uninstalled setup. Build by running './autogen.sh' from the module, remember to check the final output listing the plugins that are enabled and the ones that aren't. If a plugin you need/want is disabled, check if its build dependencies are installed on your system and run autogen.sh again. Then just run make and it should build.

If you have a sample application/script that shows the problem, you can send it to the list for other devels to look if it is correctly using camerabin.

--
Thiago


On 30/01/2014 21:59, Ian Davidson wrote:
OK. What do I have to download from which website?

Ian

Some fixes have been pushed to gstreamer core and -base that are related to camerabin issues (yesterday and today). Can you give it a try with latest git gstreamer?

If it still doesn't work for you, can you provide a small sample application to reproduce the issue in a bug filled at https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Thiago Santos
On 02/16/2014 11:34 AM, Ian Davidson wrote:
I have upgraded my computer to use Fedora 20 and have the 1.2.3 version of gstreamer installed.  My program (below) still crashes with a 'not negotiated' if I try to specify the image size.

Would the fixes that were pushed to git on 30th January have made it into release 1.2.3?

Hi, those changes will only be available on the 1.3.x release series.
The 1.2.x series only contains bugfixes on top of the original 1.2.0
release. The changes required to fix camerabin were not considered
safe enough to make it into 1.2.x releases and will only go into
the next version: 1.3.1

If you want to use those bugfixes you can try using git master version
or backporting the relevant patches to a previous version suitable for you.

--
Regards,
Thiago


Ian

/* JustTheCamera.c */

#include <gtk/gtk.h>
#include <gst/gst.h>
#include <glib.h>




    GtkWidget *startsnapbutton;
    GtkWidget *snapbutton;
    GtkWidget *stopsnapbutton;

    
static  GstElement *camPipeline;
  GstElement *cambin;
  GstBus *cambus;
  GMainLoop *camloop;
  guint cam_bus_watch_id;



static gboolean
bus_call (GstBus     *bus,
          GstMessage *msg,
          gpointer    data)
{
  GMainLoop *loop = (GMainLoop *) data;
  switch (GST_MESSAGE_TYPE (msg)) {

    case GST_MESSAGE_EOS:
      g_print ("End of stream\n");
      g_main_loop_quit (loop);
      break;

    case GST_MESSAGE_ERROR: {
      gchar  *debug;
      GError *error;

      gst_message_parse_error (msg, &error, &debug);
      g_free (debug);

      g_printerr ("Error: %s\n", error->message);
      g_error_free (error);

      g_main_loop_quit (loop);
      break;
    }

      case GST_MESSAGE_APPLICATION:{
        const GstStructure *s;

        s = gst_message_get_structure (msg);

        if (gst_structure_has_name (s, "GstLaunchInterrupt")) {
          /* this application message is posted when we caught an interrupt and
           * we need to stop the pipeline. */
          g_print ("Interrupt: Stopping pipeline ...\n");
/*          gst_element_send_event (camPipeline, gst_event_new_eos ()); */
          gst_element_set_state (camPipeline, GST_STATE_NULL);
          g_main_loop_quit (loop);
        }
        break;
      }
/*      case GST_MESSAGE_STATE_CHANGED: {
        GstState old_state, new_state;
    
        gst_message_parse_state_changed (msg, &old_state, &new_state, NULL);
        g_print ("Element %s changed state from %s to %s.\n",
            GST_OBJECT_NAME (msg->src),
            gst_element_state_get_name (old_state),
            gst_element_state_get_name (new_state));
    break;      
      }	*/

    default:
      break;
  }

  return TRUE;
}

gint delete_event( GtkWidget *widget,
                   GdkEvent  *event,
                   gpointer   data )
{
  g_print ("Delete_Event called\n");
      return(FALSE);
}

/* Start the Camera - Set up camerabin.  */
void snapButtonPressed( GtkWidget *widget,
               gpointer   data )
{

 GstCaps *caps;

  gtk_widget_set_sensitive(startsnapbutton, FALSE);
  gtk_widget_set_sensitive(snapbutton, TRUE);
  gtk_widget_set_sensitive(stopsnapbutton, TRUE);
  
  camPipeline     = gst_pipeline_new ("camera");
  cambin          = gst_element_factory_make ("camerabin",       "cambin1");
 
  camloop = g_main_loop_new (NULL, FALSE);
  if (!camPipeline || !cambin ) {
    g_printerr ("One element could not be created. Exiting.\n");
    return;
  }
  /* Set up the pipeline */
 
  g_print ("Watch for the bus\n");
  cambus = gst_pipeline_get_bus (GST_PIPELINE (camPipeline));
  cam_bus_watch_id =  gst_bus_add_watch (cambus, bus_call, camloop);

  g_print ("Set the picture size\n");
  caps = gst_caps_from_string("video/x-raw, width=(int)800, height=(int)600");
  g_object_set (G_OBJECT (cambin), "image-capture-caps", caps, NULL);
  gst_caps_unref (caps);    /*  This unref seems to cause problems and may need to be commented out */

  g_print ("Add the element to the pipeline\n");
  gst_bin_add_many (GST_BIN (camPipeline), cambin, NULL);


  gst_element_set_state (camPipeline, GST_STATE_PLAYING);

  /* Iterate */
  g_main_loop_run (camloop);


  /* Out of the main loop, clean up nicely */
  g_print ("Returned, Camera Off\n");
  gst_element_set_state (camPipeline, GST_STATE_NULL);

  gst_object_unref (GST_OBJECT (camPipeline));
  g_source_remove (cam_bus_watch_id);
  g_main_loop_unref (camloop);
  
  gtk_main_quit();

  return;

}

void snapNow( GtkWidget *widget,
               gpointer   data )
{
  guint lbIdle;
  
  g_print ("Take a picture\n");
  
  g_object_get(cambin, "idle", &lbIdle, NULL);
  if (lbIdle) {
    g_print("Camera is Idle\n");
  } else {
    g_print("Camera is Busy\n");
  }
  
  g_signal_emit_by_name (cambin, "start-capture", NULL);
}


void snapOff( GtkWidget *widget,
               gpointer   data )
{
  g_print ("We want to stop\n");

  gst_element_post_message (GST_ELEMENT (camPipeline),
      gst_message_new_application (GST_OBJECT (camPipeline),
          gst_structure_new ("GstLaunchInterrupt",
              "message", G_TYPE_STRING, "Pipeline interrupted", NULL)));     
}


int main( int   argc,
          char *argv[] )
{
    /* GtkWidget is the storage type for widgets */
    GtkWidget *window;
    GtkWidget *grid;
    

    /* This is called in all GTK applications. Arguments are parsed
     * from the command line and are returned to the application. */
    gtk_init (&argc, &argv);
    gst_init (&argc, &argv);

    /* Create a new window */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title (GTK_WINDOW (window), "Camera");

    /* Here we just set a handler for delete_event that immediately
     * exits GTK. */
    g_signal_connect (window, "destroy",
                        G_CALLBACK (delete_event), NULL);

    /* Sets the border width of the window. */
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);

    /* Use a grid for the buttons */
    grid = gtk_grid_new();

    /* Put the grid into the main window. */
    gtk_container_add (GTK_CONTAINER (window), grid);
    
     /* Snapshot Buttons. */
    startsnapbutton = gtk_button_new_with_label ("Start Camera");
    g_signal_connect (startsnapbutton, "clicked",
                        G_CALLBACK (snapButtonPressed), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), startsnapbutton, 0, 1, 1, 1);
    gtk_widget_show(startsnapbutton);

    snapbutton = gtk_button_new_with_label ("Take Snap");
    g_signal_connect (snapbutton, "clicked",
                        G_CALLBACK (snapNow), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), snapbutton, 0, 2, 1, 1);
    gtk_widget_show(snapbutton);
    gtk_widget_set_sensitive(snapbutton, FALSE);


    stopsnapbutton = gtk_button_new_with_label ("Stop Camera");
    g_signal_connect (stopsnapbutton, "clicked",
                        G_CALLBACK (snapOff), "Snapshot");
    gtk_grid_attach(GTK_GRID(grid), stopsnapbutton, 0, 3, 1, 1);
    gtk_widget_show(stopsnapbutton);
    gtk_widget_set_sensitive(stopsnapbutton, FALSE);


    gtk_widget_show(grid);



    gtk_widget_show (window);

    /* Rest in gtk_main and wait for the fun to begin! */
    gtk_main ();

    return(0);
}
/* JustTheCamera-end */

trace.txt

Watch for the bus
Set the picture size
Add the element to the pipeline
Returned, Camera Off
33m 2444  0x92ec060 FIXME                default gstutils.c:3648:gst_pad_create_stream_id_printf_valist:<preview-appsrc:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:04.719934133  2444  0x92ebf80 WARN                GST_PADS gstpad.c:3669:gst_pad_peer_query:<src-capsfilter:src> could not send sticky events
0:00:04.999635762  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:1373:gst_base_transform_setcaps:<src-videoconvert> transform could not transform video/x-raw, format=(string)I420, width=(int)352, height=(int)292, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)100/1 in anything we support
0:00:05.000725976  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:2115:gst_base_transform_handle_buffer:<src-videoconvert> warning: not negotiated
0:00:05.000787104  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:2115:gst_base_transform_handle_buffer:<src-videoconvert> warning: not negotiated
0:00:05.001194337  2444  0x92ebf80 WARN              bufferpool gstbufferpool.c:632:gst_buffer_pool_set_config:<v4l2bufferpool0> can't change config, we are active
0:00:05.001261875  2444  0x92ebf80 WARN              bufferpool gstbufferpool.c:632:gst_buffer_pool_set_config:<v4l2bufferpool0> can't change config, we are active
0:00:05.117358001  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:1373:gst_base_transform_setcaps:<src-capsfilter> transform could not transform video/x-raw, format=(string)I420, width=(int)352, height=(int)292, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)100/1 in anything we support
0:00:05.117696734  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:2115:gst_base_transform_handle_buffer:<src-capsfilter> warning: not negotiated
0:00:05.117730388  2444  0x92ebf80 WARN           basetransform gstbasetransform.c:2115:gst_base_transform_handle_buffer:<src-capsfilter> warning: not negotiated
0:00:05.118095014  2444  0x92ebf80 WARN                 basesrc gstbasesrc.c:2865:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l> error: Internal data flow error.
0:00:05.118136171  2444  0x92ebf80 WARN                 basesrc gstbasesrc.c:2865:gst_base_src_loop:<camerasrc-real-src-actual-src-v4l> error: streaming task paused, reason not-negotiated (-4)
Error: Internal data flow error.

On 31/01/2014 14:51, Thiago Santos wrote:
On 01/31/2014 05:15 AM, Ian Davidson wrote:
To clarify - I have not used the git master before and I don't know the process.

You will need to clone and build the gstreamer modules. Check the developer instructions at http://gstreamer.freedesktop.org/dev/

and use git to clone the modules you need, I'd recommend using a gst-uninstalled setup so that you don't have to install the binaries to your system. You can find instructions about it at the 'scripts' dir on the core gstreamer module or at http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts, look for gst-uninstalled and create-uninstalled-setup.sh

Then you just need to build the modules from the uninstalled setup. Build by running './autogen.sh' from the module, remember to check the final output listing the plugins that are enabled and the ones that aren't. If a plugin you need/want is disabled, check if its build dependencies are installed on your system and run autogen.sh again. Then just run make and it should build.

If you have a sample application/script that shows the problem, you can send it to the list for other devels to look if it is correctly using camerabin.

--
Thiago


On 30/01/2014 21:59, Ian Davidson wrote:
OK. What do I have to download from which website?

Ian

Some fixes have been pushed to gstreamer core and -base that are related to camerabin issues (yesterday and today). Can you give it a try with latest git gstreamer?

If it still doesn't work for you, can you provide a small sample application to reproduce the issue in a bug filled at https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer



_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
OK, I understand,

I have cloned the git master and, starting with gstreamer, then gst-plugins-base followed by all the others, I have run autogen.sh and make - and I believe that for each got a successful conclusion.

I then tried to complie my program and I got
[gst-master] [ian@localhost superRecord]$ gcc -Wall JustTheCamera.c -o jtc $(pkg-config --cflags --libs gstreamer-1.0 gtk+-3.0)
/home/ian/gst/master/gstreamer/gst/libgstreamer-1.0.la: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

Where might I have gone wrong?

Ian

On 17/02/2014 13:00, Thiago Santos wrote:
On 02/16/2014 11:34 AM, Ian Davidson wrote:
I have upgraded my computer to use Fedora 20 and have the 1.2.3 version of gstreamer installed.  My program (below) still crashes with a 'not negotiated' if I try to specify the image size.

Would the fixes that were pushed to git on 30th January have made it into release 1.2.3?

Hi, those changes will only be available on the 1.3.x release series.
The 1.2.x series only contains bugfixes on top of the original 1.2.0
release. The changes required to fix camerabin were not considered
safe enough to make it into 1.2.x releases and will only go into
the next version: 1.3.1

If you want to use those bugfixes you can try using git master version
or backporting the relevant patches to a previous version suitable for you.


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Tim Müller
On Mon, 2014-02-17 at 18:19 +0000, Ian Davidson wrote:

Hi Ian,

> I have cloned the git master and, starting with gstreamer, then
> gst-plugins-base followed by all the others, I have run autogen.sh and
> make - and I believe that for each got a successful conclusion.
>
> I then tried to complie my program and I got
> [gst-master] [ian@localhost superRecord]$ gcc -Wall JustTheCamera.c -o
> jtc $(pkg-config --cflags --libs gstreamer-1.0 gtk+-3.0)
> /home/ian/gst/master/gstreamer/gst/libgstreamer-1.0.la: file not
> recognized: File format not recognized
> collect2: error: ld returned 1 exit status
>
> Where might I have gone wrong?

To compile something in an uninstalled setup you have to use libtool,
something like:

 $ libtool --mode=link gcc -Wall -g `pkg-config --cflags --libs
gstreamer-1.0 gtk+-3.0` -o jtc JustTheCamera.c

(It's even hidden somewhere in the FAQ :))

 Cheers
  -Tim

--
Tim Müller, Centricular Ltd - http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
Thanks Tim,

More problems.  The autogen.sh reported that some Plug-ins would NOT be
built - so that when I tried to test, the pipeline could not be built.  
So I have gone back to try to find the dependencies for those missing
plug-ins.

I now have it that autogen.sh reports that in gst-plugins-base,
ivorbisdec and xvimagesink will not be built. (Everything else should be OK)
In the case of ivorbisdec, it reports
checking for IVORBIS...no
configure: No package 'vorbisdec' found
checking for vorbis_block_init in -lvorbisdec... no

In the case of xvimagesink, it reports
checking for XvQueryExtension in -lXv_pic... no
checking for XvQueryExtension in -lXv... no

I have not been able to identify which packages I should install to
satisfy those requirements.

I then did a make anyway and the make failed with
make[3]: Entering directory
`/home/ian/gst/master/gst-plugins-base/sys/ximage'
   CC    libgstximagesink_la-ximagesink.lo
   CC    libgstximagesink_la-ximage.lo
   CC    libgstximagesink_la-ximagepool.lo
CCLD  libgstximagesink.la
//bin/ld: cannot find -lSM

The make then errored it way out.

What is -lSM?

Ian


On 17/02/2014 18:37, Tim Müller wrote:

> On Mon, 2014-02-17 at 18:19 +0000, Ian Davidson wrote:
>
> Hi Ian,
>
>> I have cloned the git master and, starting with gstreamer, then
>> gst-plugins-base followed by all the others, I have run autogen.sh and
>> make - and I believe that for each got a successful conclusion.
>>
>> I then tried to complie my program and I got
>> [gst-master] [ian@localhost superRecord]$ gcc -Wall JustTheCamera.c -o
>> jtc $(pkg-config --cflags --libs gstreamer-1.0 gtk+-3.0)
>> /home/ian/gst/master/gstreamer/gst/libgstreamer-1.0.la: file not
>> recognized: File format not recognized
>> collect2: error: ld returned 1 exit status
>>
>> Where might I have gone wrong?
> To compile something in an uninstalled setup you have to use libtool,
> something like:
>
>   $ libtool --mode=link gcc -Wall -g `pkg-config --cflags --libs
> gstreamer-1.0 gtk+-3.0` -o jtc JustTheCamera.c
>
> (It's even hidden somewhere in the FAQ :))
>
>   Cheers
>    -Tim

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Chuck Crisler-2
I am working with GStreamer 0.10.30 and develop for CentOS 6.0

For X I have the following:
xvattr-1.3-18.el6.i686
libXvMC-1.0.4-8.1.el6.i686
xvidcore-1.3.2-3.el6.i686
xvidcore-devel-1.3.2-3.el6.i686
libXv-devel-1.0.7-2.el6.i686
libXv-1.0.7-2.el6.i686

libvorbis-1.2.3-4.el6.i686
vorbis-tools-1.2.0-7.el6-i686

I hope that this gives you a starting point.


On Tue, Feb 18, 2014 at 5:26 AM, Ian Davidson <[hidden email]> wrote:
Thanks Tim,

More problems.  The autogen.sh reported that some Plug-ins would NOT be built - so that when I tried to test, the pipeline could not be built.  So I have gone back to try to find the dependencies for those missing plug-ins.

I now have it that autogen.sh reports that in gst-plugins-base, ivorbisdec and xvimagesink will not be built. (Everything else should be OK)
In the case of ivorbisdec, it reports
checking for IVORBIS...no
configure: No package 'vorbisdec' found
checking for vorbis_block_init in -lvorbisdec... no

In the case of xvimagesink, it reports
checking for XvQueryExtension in -lXv_pic... no
checking for XvQueryExtension in -lXv... no

I have not been able to identify which packages I should install to satisfy those requirements.

I then did a make anyway and the make failed with
make[3]: Entering directory `/home/ian/gst/master/gst-plugins-base/sys/ximage'
  CC    libgstximagesink_la-ximagesink.lo
  CC    libgstximagesink_la-ximage.lo
  CC    libgstximagesink_la-ximagepool.lo
CCLD  libgstximagesink.la
//bin/ld: cannot find -lSM

The make then errored it way out.

What is -lSM?

Ian


On 17/02/2014 18:37, Tim Müller wrote:
On Mon, 2014-02-17 at 18:19 +0000, Ian Davidson wrote:

Hi Ian,

I have cloned the git master and, starting with gstreamer, then
gst-plugins-base followed by all the others, I have run autogen.sh and
make - and I believe that for each got a successful conclusion.

I then tried to complie my program and I got
[gst-master] [ian@localhost superRecord]$ gcc -Wall JustTheCamera.c -o
jtc $(pkg-config --cflags --libs gstreamer-1.0 gtk+-3.0)
/home/ian/gst/master/gstreamer/gst/libgstreamer-1.0.la: file not
recognized: File format not recognized
collect2: error: ld returned 1 exit status

Where might I have gone wrong?
To compile something in an uninstalled setup you have to use libtool,
something like:

  $ libtool --mode=link gcc -Wall -g `pkg-config --cflags --libs
gstreamer-1.0 gtk+-3.0` -o jtc JustTheCamera.c

(It's even hidden somewhere in the FAQ :))

  Cheers
   -Tim

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
Thanks,

I added xvattr, xvidcore and xvidcore-devel - everything else was
already up-to-date.

However, the autogen reported the same problems and so did the make.

Anything else I might need to install

Ian

On 18/02/2014 18:49, Chuck Crisler wrote:

> I am working with GStreamer 0.10.30 and develop for CentOS 6.0
>
> For X I have the following:
> xvattr-1.3-18.el6.i686
> libXvMC-1.0.4-8.1.el6.i686
> xvidcore-1.3.2-3.el6.i686
> xvidcore-devel-1.3.2-3.el6.i686
> libXv-devel-1.0.7-2.el6.i686
> libXv-1.0.7-2.el6.i686
>
> libvorbis-1.2.3-4.el6.i686
> vorbis-tools-1.2.0-7.el6-i686
>
> I hope that this gives you a starting point.

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Camerabin - how to specify size of image for capture

Ian Davidson
Progress,

I had libSM installed - but not libSM-devel.

Is there a little gremlin in the autogen/make process?

Ian

On 19/02/2014 11:50, Ian Davidson wrote:
> Thanks,
>
> I added xvattr, xvidcore and xvidcore-devel - everything else was
> already up-to-date.
>
> However, the autogen reported the same problems and so did the make.
>
> Anything else I might need to install

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
12