From: Miguel Freitas <miguel@ce...> - 2001-12-26 01:30:15
I hope Guenter must be enjoying his vacation by now so just in case he
reads email, here are some notes about the still frame code:
- at line 267, there's a test: "if (img && !img->next)"
that seems to be always true (img is tested on while() and img->next
is set to null from vo_remove_from_img_buf_queue). Probably
"if (!this->display_img_buf_queue->first)" is what we want here.
- this->still_counter is incremented without any defined time base. xine
tries to set the timer to 1/10 of frame duration. On most systems it
will be limited by kernel resolution (10ms) or about 1/3 of common frame
duration. My kernel, btw, is using HZ=1000 therefore 1ms resolution. The
result is that still_counter may reach 8 before 1 frame duration has
passed! (this will also happen on alpha kernels)
- btw, nice idea to call got_video_frame until vpts is close enough to
the current vpts.
- unless i'm understanding it wrong, frame backup is done on every "last
frame on fifo". This is somewhat bad, take a slow system example:
decoder is working hard to output something and video_out loop is just
waiting idle. When finally it gets a frame it will be the only one and
therefore will be duplicated, wasting precious cpu cycles with memcpys...
I think we really need to clean up this thing before 0.9.8. i'd say CVS
is somewhat unstable now...
Get latest updates about Open Source Projects, Conferences and News.