-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AVI choppiness #70
Comments
I gather this is 657a6f5 git pull |
Add in these after
|
Testing the choppy avi's (mpeg4 xvid 420p), I have noticed the ones which are worse are 25fps. |
I can confirm that the code change has made a vast improvement |
Nah, I'm sure the community will complain if something breaks ;) |
I have yet to find a choppy avi with it enabled. I will let you know if I do. Ok this one plays fine with it disabled, I will find out what the difference is. |
Enabled this video plays smooth Video And this one goes choppy.. Video Then vice versa disabled. |
To completely solve this issue, rather than an autodetect feature it might be better to just have a checkbox in the videosettings so that it can manually be changed per video. |
Files that I have that have "packed bitstream" enabled are choppy. Files that have no "packed bitstream" play back perfectly. This is using "xbmc13.alpha11.boxeebox2013.12.16.early_alpha2_b453696" |
If there is anything you know that can be done please let us know regarding the packed bitstream. Perhaps we need something adding. |
Is thats even used those days? my latest xvid/divx/avi was 7years ago, so i will see go to h264 and all works with beter picture en beter compression. |
Absolutely right in what your saying there devilstrike, but many people have archives of older films that may not have the original to re rip to h264. I did a bit of research and the packed bitstream issue within xbmc has been identified and is on going (no solution yet). |
seems odd that boxee box can play these files back flawlessly (original stock firmware); I thought boxee box was a "version" of xbmc... |
FWIW, I don't have time to test anything right now but there's a field "divx_packed" in libavcodec/mpegvideo.h that might be possible to use to detect this. |
Hmm, see I never commented on this, but I did try to get to the divx_packed property. However it was not available as the SMD codec was used for decoding so the ffmpeg codec was never initialized and thus divx_packed can't be used. The SMD codec or some other code should be able to mimic the code used by ffmpeg to set the divx_packed property though. Another way to solve this issue would be to query the videorenderer for dropped frames and frames out of order and see if those numbers stop slipping when toggling the mode. Haven't had a chance to try that out yet, and don't know when I will. Just suggesting if someone has the time and wants to look into that. |
Can't find a file called "libavcodec/mpegvideo.h" on the usb stick with xbmc on?? |
@julius02 h files are source files and yu dont find that on your usb stick, only on pc whene making a xbmc build. |
Btw, this issue is referred to elsewhere as the bad b-frame issue, and can be fixed in the video file by re-building the index (quick!) with correct frame type. I don't remember the exact commandline I used, but avidemux can do it with something like |
👍 Thanks @quarnster, I had similar issues on vlc, and could not get a clean explanation. I guess the best solution would be to fix the Quoted from your link:
|
Just a observation i did today, While playing a .avi video it did have 4-6 FPS all the time. (By clicking on "O" button to see video details) while it read from metadata it should be 23.9 FPS. 14:05:22 T:3021036432 NOTICE: fps: 23.976024, pwidth: 768, pheight: 432, dwidth: 768, dheight: 432 Traced the CalcFrameRate to: Thought the framerate not being calculated might be a cause of choppy AVI playback. Solution might be "Set metadata fps if CalcFrameRate fails" While on another avi video it played smoothly. But then it didn't show that "CalcFrameRate" giving up message. Just a theory and might be completely off track. Actual developers here might say if this is on track to something or not. |
At this stage this one requires changing just a single character in the source code and doing lots of testing with avi files to figure out a pattern. If you can build the sources, you can help.
In xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp around line 767 I added an "#ifndef HAS_INTEL_SMD" block to disable that code for this project. This made some AVI's that previously played back choppily now play back very smooth, however I later discovered that some other AVI's now play back very choppy and that re-enabling this code made it smooth again.
To disable the code use:
#ifndef HAS_INTEL_SMD
and to enable it use:
#ifdef HAS_INTEL_SMD
Get it? It's a single character change!
Now the task is to figure out what the AVI's that get smooth with the code enabled have in common and what the AVI's that get smooth with the code disabled have in common.
Once we figure that out it should hopefully be as simple as detecting whether the code should be enabled or not at runtime. Slightly more skill is needed for that, but someone needs to do the first steps first before it can be fixed proper.
The text was updated successfully, but these errors were encountered: