[gst-devel] Re: [gst-cvs] wtay gst-plugins: gst-plugins/ext/mpeg2dec/

Joshua N Pritikin vishnu at pobox.com
Mon Nov 4 01:02:04 CET 2002

On Sat, Nov 02, 2002 at 08:29:14PM -0800, Wim Taymans wrote:
> Date:           Sat Nov 02 2002  20:29:14 PST
> Log message:
> - Fix decode error, CVS libmpeg2 has a new state
> - use libmpeg2 pts handling for better sync
> - cleanups

This is a tremendous improvement: Suddenly my MPEG2 film plays
almost perfectly in gst-player!

I am using libmpeg2 CVS (current) and gstreamer & gst-plugins CVS (Oct 6),
with mpeg2dec cvs updated to today.

Here are my test results:

* With your play_mpeg1 script:
  ./gst-launch --gst-scheduler=basicomega -Xoffset filesrc location=$1 ! mpegdemux sync=false name=foo video_%02d! { queue ! mpeg2dec ! { queue ! colorspace ! xvideosink } } foo.audio_%02d!{ queue ! a52dec ! { queue ! osssink } }

I get lots of complaints from mad,

mad0: mode = Joint Stereo (2)
mad0: mode = Stereo (3)
mad0: mode = Joint Stereo (2)
mad0: mode = Stereo (3)

However, the film keeps playing and doesn't crash.  Some sections
of the film play with perfect audio & video sync for a few seconds
(sometimes as much as 10 seconds), then the audio&video drop out for
5-10 sec, then it plays perfectly again.  The mad stereo mode switching
is not exactly correlated with the A/V drop outs.

If you want the gst-mask log then i can send the 300k separately.

Memory usage is stable at around 20M.  It's very close to working!

* What gst-launch line do you use for MPEG2?

My test results with gst-player:

* gst-player seems to be leaking memory.  Memory usage grows about
10M per minute of video playback.  I'm not sure if this leak is
in libgstplay or the surrounding gnome code.

* For MPEG1, pause & seeking work as well as can be expected,
given the playback problems mentioned above.

* With MPEG2, i only tried with gst-player (how to gst-launch mpeg2?).
If i play from the beginning without pause or seek then the playback
is almost perfect.  A/V sync is good.  Frame rate is good.  This is
really encouraging!

* If i pause then the audio stops and doesn't come back for 10-60
seconds.  Video is restarted instantly.  Audio does eventually
come back after a while, at least it does sometimes.

* Seeking in MPEG2 occationally works perfectly but often I get:

** (lt-gst-player:1655): WARNING **: a52dec a52_block error 2
** (lt-gst-player:1655): WARNING **: a52dec a52_block error 3
** (lt-gst-player:1655): WARNING **: a52dec a52_block error 4
** (lt-gst-player:1655): WARNING **: a52dec a52_block error 5

Then it tries to play for a while (without video or audio) and crashes.

The result of seeking is not consistent.  Often the video is
fine but the audio is silent.  It seems any kind of jiggle
can confuse a52dec permenantly and it doesn't always resync.  If i
just play the MPEG2 film without pausing or seeking then
audio & video remain almost perfect.

Victory to the Divine Mother!!         after all,
  http://sahajayoga.org                  http://why-compete.org

More information about the gstreamer-devel mailing list