[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