Frame skip during TS play

macOS specific usage questions
kc.chen
Blank Cone
Blank Cone
Posts: 25
Joined: 30 Jul 2012 10:23

Frame skip during TS play

Postby kc.chen » 20 Jul 2013 16:47

Hi, I play a TS stream on VLC and find sometimes it catch some error as below:

[h264 @ 0x1a81800] Missing reference picture
[h264 @ 0x1a81800] decode_slice_header error
[h264 @ 0x1a81800] concealing 1200 DC, 1200 AC, 1200 MV errors

and the result is the play screen will become blank, is it possible to skip the wrong frame on vlc? Thanks!

I also create a screenshot for it. You can get it from this link: http://pan.baidu.com/share/link?shareid ... 3761622840

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: Frame skip during TS play

Postby Jean-Baptiste Kempf » 20 Jul 2013 21:32

Please share the sample.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

kc.chen
Blank Cone
Blank Cone
Posts: 25
Joined: 30 Jul 2012 10:23

Re: Frame skip during TS play

Postby kc.chen » 21 Jul 2013 04:22

You can view the stream from this link
http://219.232.160.145:5080/livestream/esx7h676.ts

kc.chen
Blank Cone
Blank Cone
Posts: 25
Joined: 30 Jul 2012 10:23

Re: Frame skip during TS play

Postby kc.chen » 22 Jul 2013 11:56

Please share the sample.
More detail about the issue, the log is:
[0x203eb030] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 5799 ms)
[0x203eb030] main input error: ES_OUT_RESET_PCR called
[h264 @ 0x20924a00] Missing reference picture
[h264 @ 0x20924a00] decode_slice_header error
[h264 @ 0x20924a00] concealing 405 DC, 405 AC, 405 MV errors
[h264 @ 0x20901e00] mmco: unref short failure

and I find the related code is in es_out.c:

Code: Select all

if( i_pts_delay > __MIN( i_pts_delay_base + i_jitter_max, INPUT_PTS_DELAY_MAX ) ) { msg_Err( p_sys->p_input, "ES_OUT_SET_(GROUP_)PCR is called too late (jitter of %d ms ignored)", (int)(i_pts_delay - i_pts_delay_base) / 1000 ); i_pts_delay = p_sys->i_pts_delay; } else { msg_Err( p_sys->p_input, "ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to %d ms)", (int)(i_pts_delay/1000) ); } /* Force a rebufferization when we are too late */ /* It is not really good, as we throw away already buffered data * TODO have a mean to correctly reenter bufferization */ es_out_Control( out, ES_OUT_RESET_PCR ); es_out_SetJitter( out, i_pts_delay_base, i_pts_delay - i_pts_delay_base, p_sys->i_cr_average );
Is it possible to keep the previous frame on screen when call ES_OUT_RESET_PCR?


Return to “VLC media player for macOS Troubleshooting”

Who is online

Users browsing this forum: No registered users and 21 guests