[vlc-devel] VCD bugs - how to indicate stream param changes, multple vout windows spawning

R. Bernstein rocky at panix.com
Sat Dec 6 14:38:08 CET 2003


Some of the existing vlc VCD problems that I've not been able to make
any headway on. Suggestions would be greatly appreciated.

==========================
1. late picture on stills.
==========================

Sometimes still frames don't display in playback control. When this
happens I see:

  [00000174] main video output warning: late picture skipped (72937)

An example of this can be seen in playing the beginning of the SVCD demo:
  http://www.vcdimager.org/pub/vcdimager/examples/test_svcd/test_svcd_ntsc.zip

I tried invoking with playback control like this: 
   vlc vcdx://test_svcd_ntsc.cue@P1

However, if that still-frame segment is selected individually:
   vlc vcdx://test_svcd_ntsc.cue@S4

the frame shows. 

I've tried to prevent this is putting this code in
modules/access/vcdx/access.c at the end of reading in
still-frame block:

   vlc_mutex_lock( &p_input->stream.stream_lock );
   p_pgrm = p_input->stream.p_selected_program;
   p_pgrm->i_synchro_state = SYNCHRO_REINIT;
   vlc_mutex_unlock( &p_input->stream.stream_lock );
   input_ClockManageControl( p_input, p_pgrm, 0 );

In the above particular situtation, there is only one block read.  I
think the above code helps with some other stills. Not sure
though. Suggestions?

===================================================================
2. Sometimes I get multiple vout windows spawned on still frames
=================================================================

An example of this can be found on this VCD 2.0 example:
   http://www.vcdimager.org/pub/vcdimager/examples/demovcd/v0.3/pal/demovcd-pal.zip

When I run with
   vlc vcdx://demovcd-pal.cue@P1

I get first an XVideo window showing an MPEG1 clip which so far is good:

   [00000169] main input debug: selecting ES 0xe0
   [00000173] main decoder debug: looking for decoder module
   [00000173] main decoder debug: probing 13 candidates
   [00000081] main module debug: using decoder module "libmpeg2"
   [00000173] main decoder debug: thread 98311 (decoder) created at priority 0 (src/input/input_dec.c:166)
   [00000169] main input debug: selecting ES 0xc0
   [00000174] main decoder debug: looking for decoder module
   [00000174] main decoder debug: probing 13 candidates
   [00000067] main module debug: using decoder module "mpeg_audio"
   [00000174] main decoder debug: thread 114696 (decoder) created at priority 0 (src/input/input_dec.c:166)
   [00000169] main input debug: dumping stream ID 0x0 [OK:0/D:0]
   [00000169] main input debug: seekable stream, position: 0/4738636 (-:--:--/-:--:--)
   [00000169] main input debug: dumping program 0x0, version 0 (partial)
   [00000169] main input debug: ES 0xbe, stream 0xbe, fourcc `    ', not selected [OK:0/ERR:0]
   [00000169] main input debug: ES 0xe0, stream 0xe0, fourcc `mpgv', selected [OK:0/ERR:0]
   [00000169] main input debug: ES 0xc0, stream 0xc0, fourcc `mpga', selected [OK:0/ERR:0]
   [00000091] main module debug: using demux module "ps"
   [00000173] libmpeg2 decoder debug: 352x288, aspect 563200, 25.000 fps
   [00000173] main decoder debug: no usable vout present, spawning one
   [00000175] main video output debug: looking for video output module
   [00000175] main video output debug: probing 6 candidates
   [00000175] xvideo video output debug: adaptor 0, port 68, format 0x32315659 (YV12) planar
   [00000163] main module debug: using video output module "xvideo"

After this clip plays, playback control wants to go into a still
frame. What is weird is that although the xvideo windows has
disappeared, the xvideo port is still in use so other methods of showing video are used. Here's a commented message log:

   [00000169] vcdx input debug: VCDPlay: PAL still (lo+hires) (6), seg_num: 0
   ...
   [00000169] main input debug: selecting ES 0xe1

What caused vlc to decide there was a *new* ES? 

   [00000181] main decoder debug: looking for decoder module
   [00000181] main decoder debug: probing 13 candidates
   [00000081] main module debug: using decoder module "libmpeg2"
   [00000181] main decoder debug: thread 163851 (decoder) created at priority 0 (src/input/input_dec.c:166)
   [00000181] libmpeg2 decoder debug: 352x288, aspect 783964, 25.000 fps
   [00000181] main decoder debug: no usable vout present, spawning one
   [00000182] main video output debug: looking for video output module
   [00000182] main video output debug: probing 6 candidates
   [00000182] xvideo video output warning: no free XVideo port found for format 0x30323449 (I420)
   [00000182] xvideo video output warning: no free XVideo port found for format 0x32595559 (YUY2)
   [00000182] xvideo video output warning: no free XVideo port found for format 0x36315652 (RV16)

Although XVideo window is not displayed, vlc says it is still busy. 

   [00000169] main input debug: selecting ES 0xe2

And now it selects yet another ES! 

   [00000183] main decoder debug: looking for decoder module
   [00000183] main decoder debug: probing 13 candidates
   [00000081] main module debug: using decoder module "libmpeg2"
   [00000183] main decoder debug: thread 180236 (decoder) created at priority 0 (src/input/input_dec.c:166)
   [00000183] libmpeg2 decoder debug: 704x576, aspect 783964, 25.000 fps

I don't think the correct size is 704x576 since this is a VCD
2.0. Instead the previous value 352x288 is probably correct. Notice
that this line and the previous line have the same value for "aspect".

   [00000183] main decoder debug: no usable vout present, spawning one
   [00000184] main video output debug: looking for video output module
   [00000184] main video output debug: probing 6 candidates
   [00000169] vcdx input debug: VCDRead: end reached, cur: 375

There are other problems, but if I could make progress on either of
these two I think VCD playback control would be greatly improved. 

Thanks. 

-- 
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html
If you are in trouble, please contact <postmaster at videolan.org>



More information about the vlc-devel mailing list