chenyunecjtu / coreavc-for-linux

Automatically exported from code.google.com/p/coreavc-for-linux
GNU General Public License v2.0
0 stars 1 forks source link

Chapter 2, last few frames won't be decoded #60

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Play a H.264 Video, last few frames never being decoded.

What is the expected output? What do you see instead?
Expected to have all the frames decoded - Instead the last few being 
chopped off.

What version of the product are you using? On what operating system?
MPlayer r27743 , coreavc-for-linux r73 , CoreAVC 1.8, CentOS 5

Please provide any additional information below.

I have a very little progress regards the mis-behvaior.
It seems that this is the way it operates now:
MPlayer parses frame #1 --- dshow decodes: NULL
MPlayer parses frame #2 --- dshow decodes: NULL
MPlayer parses frame #3 --- dshow decodes: NULL
MPlayer parses frame #4 --- dshow decodes: NULL
MPlayer parses frame #5 --- dshow decodes: NULL
MPlayer parses frame #6 --- dshow decodes: frame #1
MPlayer parses frame #7 --- dshow decodes: frame #2
MPlayer parses frame #8 --- dshow decodes: frame #3
MPlayer parses frame #9 --- dshow decodes: frame #4
MPlayer parses frame #10 -- dshow decodes: frame #5
MPlayer parses frame #11 -- dshow decodes: frame #6

when MPlayer hits EOF, the amount of frames missing, are actually the gap 
between the one being parsed, and the one being decoded.

if we set ".updated = 1;" (fixed) ,
and we'll use a sample of 50 frames, it will decode exactly 50 frames.
But the first 2 frames would be bogus - and the following 48 frames would 
match the source: 1-48 frame sequence.

so obviously ".updated = 1;" improves the number of frames being decoded, 
and the latency of the frame#1 in, frame#1 being decoded chain.

is there any obvious reason why it won't decode on sight?
is there a way to tweak it, as a user preference?

BTW, r73 seems flawless regards the previous scenarios.
Thanks a lot.

roo_.

Original issue reported on code.google.com by roori....@gmail.com on 15 Oct 2008 at 5:28

GoogleCodeExporter commented 8 years ago
I don't really have any idea how to resolve this, however, it is possible that 
after
the last frame is sent, we could call:
this->m_pDS_Filter->m_pInputPin->vt->EndOfStream(this->m_pDS_Filter->m_pInputPin
);
then just continually poll for changes to sampleProcData.
As I said in the previous ticket, this will require changes both tho mplayer and
dshowserver to try to resolve, and i really don't have any good ideas how to go 
about it.

Original comment by alannis...@gmail.com on 16 Oct 2008 at 9:31

GoogleCodeExporter commented 8 years ago
I'm closing this.  there jsut isn't any ROI to deal with the issue

Original comment by alannis...@gmail.com on 9 Jan 2010 at 3:06