[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