[gst-devel] Several problems with gstreamer
Todd Koeckeritz
zaz at visi.com
Sun Jan 14 23:17:10 CET 2001
First, it looks like you have a great start. I expect to see some
very good things come out of your work and have plans to use it
for several projects this coming year, assuming it gets bettter
as I expect. Thanks for the work you've put into this.
My environment:
PIII 700 w/ 256M SDRAM
Matrox Marvel G400 w/ 16M
SuSE 6.4
2.4.0 kernel
SuSE 7.0 XFree86 4.0.2 RPMs w/ minor hacks against
their drm to get it to compile against 2.4.0
Helix/Ximian current GNOME distribution
Xv extension enabled
dri extrension enabled
1280x960x16bit display
I have the latest codecs from avifile in /usr/lib/win32
-rw-r--r-- 1 root root 150016 Aug 2 00:28 ativcr2.dll
-rw-r--r-- 1 root root 240400 Apr 26 2000 divx_c32.ax
-rw-r--r-- 1 root root 291408 Jul 9 2000 divxa32.acm
-rw-r--r-- 1 root root 414272 Nov 14 18:03 divxc32.dll
-rw-r--r-- 1 root root 414272 Jul 11 2000 divxc32f.dll
-rw-r--r-- 1 root root 391680 Aug 1 15:41 i263_32.drv
-rw-r--r-- 1 root root 110592 Mar 9 2000 iccvid.dll
-rw-r--r-- 1 root root 98304 Dec 17 18:32 imc32.acm
-rw-r--r-- 1 root root 199168 Jul 13 2000 ir32_32.dll
-rw-r--r-- 1 root root 739328 Jul 7 1997 ir41_32.dll
-rw-r--r-- 1 root root 120320 Mar 9 2000 ir41_qc.dll
-rw-r--r-- 1 root root 755200 Mar 9 2000 ir50_32.dll
-rw-r--r-- 1 root root 200192 Mar 9 2000 ir50_qc.dll
-rw-r--r-- 1 root root 183808 Sep 28 21:47 ir50_qcx.dll
-rw-r--r-- 1 root root 244224 Sep 28 11:30 m3jpeg32.dll
-rw-r--r-- 1 root root 254272 Jun 26 1999 mpg4c32.dll
-rw-r--r-- 1 root root 17920 Jul 29 23:36 msadp32.acm
-rw-r--r-- 1 root root 262416 Apr 28 2000 wmvds32.ax
gstreamer was built vanilla, i.e. ./configure without any
parameters.
Dual boot windoze 98SE for most video editing now. I use
VirtualDub and Ulead's Media Studio Pro 6 for most video
editing and TMPGEnc to encode and remux VCD and SVCD
compliant MPEG files.
I had to add a few RPMs from Helix/Ximian to satisfy some of
the requirements for compiling gstreamer, but nothing too
tragic.
The problem list:
1) Ran into the #include problems with gnome-xml/parser.h
I solved these by hacking the spec file to add
$(GNOME_CFLAGS) to the COMPILE definition in the
Makefile.in files via a simple sh script I wrote.
Don't think this was really the correct way to fix
this problem, but it worked. Also, I see mention
of this same problem in the gstreamer-devel list so
this is really only a notification that it affected my
system and how I resolved it.
2) Problems with stuttering sound when playing VCD compliant
MPEG1 files with gstmediaplay. These same files play
great with mtv, xine, windoze media players and other
programs. gstmediaplay doesn't like these files and
the sound comes in fits and starts, i.e. it stutters
(cuts out like my system can't keep up with it, although
the CPU meter only shows about 5% utilization). Playing
other MPEG files that aren't in a VCD compliant format,
doesn't exhibit this same problem.
3) No sound on MPEG2 files. This may only affect SVCD
compliant MPEG2 files. I was unable to test non-SVCD
MPEG2 files immediately as I don't have any available.
The files do have sound and the sound device is opened:
INFO: Initializing GStreamer Core Library
INFO: CPU features: MMX SSE
** WARNING **: gstplugin: registry needs rebuild
videosink: found 16 bits display
videosink: using 16 bits image 16 bits/pixel
gstplay: using element "disk_src" for offset property
gstgetbits: using i386 optimized versions
gstplay: using element "mpeg2parse" for bit_rate property
GstIDCT: using MMX_idct
mpeg2dec: using SSE optimised motion compensation
gstgetbits: using i386 optimized versions
Using SSE for IMDCT
Using SSE for downmix
audiosink: attempting to open sound device
audiosink: setting sound card to 44100KHz 16 bit stereo (65536 bytes buffer,
4096 fragment)
audiosink: Capabilities
audiosink: Full duplex
audiosink: Realtime
audiosink: Has coprocessor
audiosink: Trigger
audiosink: Direct access
audiosink: opened audio with fd=9
gst_mpeg2play_chain: MPEG2 480x480, 29.97 fps
audiosink: closed sound device
The last message happens after you stop playing or close
the file.
4) Resizing the gstmedia play window crashes the app with a SEGV.
Running the app in gdb produces no useful stack trace. This
happens with MPEG1, MPEG2 and the avi files I tried to
play. It doesn't matter whether the video is paused or
actively playing, except that gstmediaplay crashes immediately
if you are actively playing and crashes upon pressing the play
button if you resized while paused.
5) Parsing of RIFF files has some problems:
INFO: Initializing GStreamer Core Library
INFO: CPU features: MMX SSE
** WARNING **: gstplugin: registry needs rebuild
videosink: found 16 bits display
videosink: using 16 bits image 16 bits/pixel
gstplay: using element "disk_src" for offset property
gstplay: using element "avidecoder" for bit_rate property
gstplay: using element "avidecoder" for media_time property
gstplay: using element "avidecoder" for current_time property
audiosink: attempting to open sound device
audiosink: setting sound card to 44100KHz 16 bit stereo (65536 bytes buffer,
4096 fragment)
audiosink: Capabilities
audiosink: Full duplex
audiosink: Realtime
audiosink: Has coprocessor
audiosink: Trigger
audiosink: Direct access
audiosink: opened audio with fd=7
GstAviDecoder: checking for RIFF format
gst_avi_decoder: avih tag found size 00000038
gst_avi_decoder: us_frame 66667
gst_avi_decoder: max_bps 66760
gst_avi_decoder: pad_gran 0
gst_avi_decoder: flags 0x00000810
gst_avi_decoder: tot_frames 1314
gst_avi_decoder: init_frames 0
gst_avi_decoder: streams 2
gst_avi_decoder: bufsize 13938
gst_avi_decoder: width 320
gst_avi_decoder: height 240
gst_avi_decoder: scale 0
gst_avi_decoder: rate 0
gst_avi_decoder: start 0
gst_avi_decoder: length 0
gst_avi_decoder: strh tag found size 00000038
gst_avi_decoder: type 0x73646976 (vids)
gst_avi_decoder: fcc_handler 0x33363269 (i263)
gst_avi_decoder: flags 0x00000000
gst_avi_decoder: priority 0
gst_avi_decoder: init_frames 0
gst_avi_decoder: scale 66667
gst_avi_decoder: rate 1000000
gst_avi_decoder: start 0
gst_avi_decoder: length 1314
gst_avi_decoder: bufsize 13938
gst_avi_decoder: quality 10000
gst_avi_decoder: samplesize 0
gst_avi_decoder: strf tag found in context vids size 00000028
gst_avi_decoder: size 40
gst_avi_decoder: width 320
gst_avi_decoder: height 240
gst_avi_decoder: planes 1
gst_avi_decoder: bit_cnt 24
gst_avi_decoder: compression 0x33363249 (I263)
gst_avi_decoder: image_size 202752
gst_avi_decoder: xpels_meter 0
gst_avi_decoder: ypels_meter 0
gst_avi_decoder: num_colors 0
gst_avi_decoder: imp_colors 0
playcodecs: filling pad 0x80e1298 0 0x80e3e10 0x80e137c
gst_avi_decoder: strh tag found size 00000038
gst_avi_decoder: type 0x73647561 (auds)
gst_avi_decoder: fcc_handler 0x00000000 ()
gst_avi_decoder: flags 0x00000000
gst_avi_decoder: priority 0
gst_avi_decoder: init_frames 0
gst_avi_decoder: scale 1
gst_avi_decoder: rate 11025
gst_avi_decoder: start 0
gst_avi_decoder: length 965790
gst_avi_decoder: bufsize 5145
gst_avi_decoder: quality 10000
gst_avi_decoder: samplesize 1
gst_avi_decoder: strf tag found in context auds size 00000010
gst_avi_decoder: format 1
gst_avi_decoder: channels 1
gst_avi_decoder: rate 11025
gst_avi_decoder: av_bps 11025
gst_avi_decoder: blockalign 1
gst_avi_decoder: size 8
avidecoder: index offset 000007fc
avidecoder: index size 1502
GLib-ERROR **: could not allocate -2130756128 bytes
aborting...
Aborted
6) Likely related to problem 5. Notice the:
** WARNING **: gstplugin: registry needs rebuild
message ? I had rebuilt the registry as root, but
the /etc/gstreamer directory created by gstreamer-registry
program had 744 permissions.
7) Ok (sorry for the stream of conscious, I'm testing as I
write), looks like the problem is that that particular
video from problem 5 was I263 encoded which doesn't appear
to be supported by gstreamer now. avifile 0.53.2 plays
this file fine, where avifile 0.51 didn't. xine crashes
when I try to play this file.
8) My Marvel's hardware codec is MJPEG which can be played
back by the PicVideo or Main Concept MJPEG codecs. The
FOURCC for this codec is dmb1. I would expect avifile,
xine and gstreamer should support this as they all appear
to support the Main Concept MJPEG codec, however none
of them do. I would like to see this work, although I
don't think it is as simple as associating the 'dmb1'
FOURCC with the Main Concept MJPEG codec, although this
works under windoze, as I did a quick hack on avifile
0.51 once and it didn't work. There is likely a little
more needed to support this.
If you need more info, let me know and I'll do what I can to
get it to you.
While I won't be switching from xine, avifile and mtv to
gstmediaplay right now, I expect I will be as the kinks
get worked out and more avi codecs are supported. Of
course, gstreamer has the huge advantage of being an API,
which is definitely what I need for some of the things I
want to do in the future. Again, thanks for the effort,
past, present and future, you guys have put into this.
--
Todd Koeckeritz, zaz at visi.com
Surfin' the Web with an ActiveX enabled browser is kindof like having
to worry about getting shot everytime you knock on a door.
More information about the gstreamer-devel
mailing list