[gst-devel] What am I missing?

John Murdie john at cs.york.ac.uk
Fri Aug 20 09:08:05 CEST 2004


Back from vacation, to find that Slackware Linux 10 was out with
gstreamer-0.8.3 and gst-plugins-0.8.1 installed. I thought I'd try the
'First application' from Chapter 19 of the GStreamer Application
Development Manual (0.8.4.1), compiling and linking with:

$ PKG_CONFIG_PATH=/usr/lib/pkgconfig; export PKG_CONFIG_PATH
$ gcc -Wall `pkg-config gstreamer-0.8 --cflags --libs` main.c -o play

where:

$ pkg-config gstreamer-0.8 --cflags --libs
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pthread
-I/usr/include/gstreamer-0.8 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/libxml2  -Wl,--export-dynamic
-pthread -lgstreamer-0.8 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0
-lxml2 -lpthread -lz -lm -lglib-2.0

I then ran the application:

$ ./play music.mp3

which played the example .mp3 file I have just fine, but also wrote:

> ** (process:32704): CRITICAL **: Could not parse caps: length 2695,
> content: image/jpeg, framerate=(double)[ 0, 1.7976931348623157e+308 ],
> width=(int)[ 16 , 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[
> 0, 255 ], pixel_height =(int)[ 0, 255 ]; video/mpeg,
> systemstream=(boolean)false, mpegversion=(boole an){ true, 4, 1, 2 },
> framerate=(double)[ 0, 1.7976931348623157e+308 ], width =(int)[ 16,
> 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[ 0, 255 ], pi
> xel_height=(int)[ 0, 255 ]; video/x-3ivx, framerate=(double)[ 0,
> 1.7976931348 623157e+308 ], width=(int)[ 16, 4096 ], height=(int)[ 16,
> 4096 ], pixel_width =(int)[ 0, 255 ], pixel_height=(int)[ 0, 255 ];
> video/x-cinepak, framerate=(d ouble)[ 0, 1.7976931348623157e+308 ],
> width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[
> 0, 255 ], pixel_height=(int)[ 0, 255 ]; video/ x-divx,
> divxversion=(int){ 5, 4, 3 }, width=(int)[ 16, 4096 ], height=(int)[
> 16, 4096 ], pixel_width=(int)[ 0, 255 ], pixel_height=(int)[ 0, 255 ],
> framer ate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-dv,
> systemstream=(boolean )false, framerate=(double)[ 0,
> 1.7976931348623157e+308 ], width=(int)[ 16, 40 96 ], height=(int)[ 16,
> 4096 ], pixel_width=(int)[ 0, 255 ], pixel_height=(in t)[ 0, 255 ];
> video/x-h263, framerate=(double)[ 0, 1.7976931348623157e+308 ], 
> width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[
> 0, 255  ], pixel_height=(int)[ 0, 255 ]; video/x-huffyuv,
> framerate=(double)[ 0, 1.7 976931348623157e+308 ], width=(int)[ 16,
> 4096 ], height=(int)[ 16, 4096 ], pi xel_width=(int)[ 0, 255 ],
> pixel_height=(int)[ 0, 255 ]; video/x-jpeg, width= (int)[ 16, 4096 ],
> height=(int)[ 16, 4096 ], pixel_width=(int)[ 0, 255 ], pix
> el_height=(int)[ 0, 255 ], framerate=(double)[ 0,
> 1.7976931348623157e+308 ]; video/x-msmpeg, msmpegversion=(int){ 41,
> 42, 43 }, framerate=(double)[ 0, 1.7 976931348623157e+308 ],
> width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], pi xel_width=(int)[
> 0, 255 ], pixel_height=(int)[ 0, 255 ]; video/x-msvideocodec ,
> msvideoversion=(int)1, framerate=(double)[ 0, 1.7976931348623157e+308
> ], wi dth=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ],
> pixel_width=(int)[ 0, 255 ],  pixel_height=(int)[ 0, 255 ];
> video/x-raw-yuv, format=(fourcc){ YV12, YUY2, I420 }, width=(int)[ 16,
> 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[  0, 255 ],
> pixel_height=(int)[ 0, 255 ], framerate=(double)[ 0, 1.79769313486
> 23157e+308 ]; video/x-wmv, wmvversion=(int){ 1, 2 },
> framerate=(double)[ 0, 1 .7976931348623157e+308 ], width=(int)[ 16,
> 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[ 0, 255 ],
> pixel_height=(int)[ 0, 255 ]; video/x-xvid, fram erate=(double)[ 0,
> 1.7976931348623157e+308 ], width=(int)[ 16, 4096 ], height =(int)[ 16,
> 4096 ], pixel_width=(int)[ 0, 255 ], pixel_height=(int)[ 0, 255 ]
> 
> 
> (process:32704): GStreamer-CRITICAL **: file gstpad.c: line 3613
> (gst_pad_tem plate_new): assertion `caps != NULL' failed
> 
> (process:32704): GStreamer-CRITICAL **: file gstelementfactory.c: line
> 349 (_ _gst_element_factory_add_pad_template): assertion `templ !=
> NULL' failed

to standard error. I tried re-running 'gst-register' as root, thinking
vainly that this was something to do with a bad registry, but of course
got the same result when I re-ran the command.

I then noticed that gstreamer-0.8.5 was out, and installed that with
gst-plugins-0.8.3 under /usr/local. Taking care that my PATH and
PKG_CONFIG_PATH were set correctly, I rebuilt the 'first application'
with those:

$ PKG_CONFIG_PATH=/usr/local/pkg/gstreamer-0.8.5/lib/pkgconfig; export
PKG_CONFIG_PATH
$ PATH=/usr/local/pkg/gstreamer-0.8.5/bin:/bin:/usr/bin:/usr/X11R6/bin;
export PATH
$ gcc -Wall `pkg-config gstreamer-0.8 --cflags --libs` main.c -o play
$ pkg-config gstreamer-0.8 --cflags --libs
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pthread
-I/usr/local/pkg/gstreamer-0.8.5/include/gstreamer-0.8
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/libxml2  -Wl,--export-dynamic -pthread
-L/usr/local/pkg/gstreamer-0.8.5/lib -lgstreamer-0.8 -lgobject-2.0
-lgmodule-2.0 -ldl -lgthread-2.0 -lxml2 -lpthread -lz -lm -lglib-2.0

and that does the same thing - (with the different registry certainly
up-to-date):

$ ./play music.mp3
> ** (process:443): CRITICAL **: Could not parse caps: length 2695,
> content: image/jpeg, framerate=(double)[ 0, 1.7976931348623157e+308 ],
> width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[
> 0, 255 ], pixel_height=(int)[ 0, 255 ]; video/mpeg,
> systemstream=(boolean)false, mpegversion=(boolean){ true, 4, 1, 2 },
> framerate=(double)[ 0, 1.7976931348623157e+308 ], width=(int)[ 16,
> 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[ 0, 255 ],
> pixel_height=(int)[ 0, 255 ]; video/x-3ivx, framerate=(double)[ 0,
> 1.7976931348623157e+308 ], width=(int)[ 16, 4096 ], height=(int)[ 16,
> 4096 ], pixel_width=(int)[ 0, 255 ], pixel_height=(int)[ 0, 255 ];
> video/x-cinepak, framerate=(double)[ 0, 1.7976931348623157e+308 ],
> width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[
> 0, 255 ], pixel_height=(int)[ 0, 255 ]; video/x-divx,
> divxversion=(int){ 5, 4, 3 }, width=(int)[ 16, 4096 ], height=(int)[
> 16, 4096 ], pixel_width=(int)[ 0, 255 ], pixel_height=(int)[ 0, 255 ],
> framerate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-dv,
> systemstream=(boolean)false, framerate=(double)[ 0,
> 1.7976931348623157e+308 ], width=(int)[ 16, 4096 ], height=(int)[ 16,
> 4096 ], pixel_width=(int)[ 0, 255 ], pixel_height=(int)[ 0, 255 ];
> video/x-h263, framerate=(double)[ 0, 1.7976931348623157e+308 ],
> width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[
> 0, 255 ], pixel_height=(int)[ 0, 255 ]; video/x-huffyuv,
> framerate=(double)[ 0, 1.7976931348623157e+308 ], width=(int)[ 16,
> 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[ 0, 255 ],
> pixel_height=(int)[ 0, 255 ]; video/x-jpeg, width=(int)[ 16, 4096 ],
> height=(int)[ 16, 4096 ], pixel_width=(int)[ 0, 255 ],
> pixel_height=(int)[ 0, 255 ], framerate=(double)[ 0,
> 1.7976931348623157e+308 ]; video/x-msmpeg, msmpegversion=(int){ 41,
> 42, 43 }, framerate=(double)[ 0, 1.7976931348623157e+308 ],
> width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[
> 0, 255 ], pixel_height=(int)[ 0, 255 ]; video/x-msvideocodec,
> msvideoversion=(int)1, framerate=(double)[ 0, 1.7976931348623157e+308
> ], width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ],
> pixel_width=(int)[ 0, 255 ], pixel_height=(int)[ 0, 255 ];
> video/x-raw-yuv, format=(fourcc){ YV12, YUY2, I420 }, width=(int)[ 16,
> 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[ 0, 255 ],
> pixel_height=(int)[ 0, 255 ], framerate=(double)[ 0,
> 1.7976931348623157e+308 ]; video/x-wmv, wmvversion=(int){ 1, 2 },
> framerate=(double)[ 0, 1.7976931348623157e+308 ], width=(int)[ 16,
> 4096 ], height=(int)[ 16, 4096 ], pixel_width=(int)[ 0, 255 ],
> pixel_height=(int)[ 0, 255 ]; video/x-xvid, framerate=(double)[ 0,
> 1.7976931348623157e+308 ], width=(int)[ 16, 4096 ], height=(int)[ 16,
> 4096 ], pixel_width=(int)[ 0, 255 ], pixel_height=(int)[ 0, 255 ]
> 
> 
> (process:443): GStreamer-CRITICAL **: file gstpad.c: line 3613
> (gst_pad_template_new): assertion `caps != NULL' failed
> 
> (process:443): GStreamer-CRITICAL **: file gstelementfactory.c: line
> 349 (__gst_element_factory_add_pad_template): assertion `templ !=
> NULL' failed

I don't recall seeing (all of) this behaviour before. What am I missing?

John A. Murdie






More information about the gstreamer-devel mailing list