Hello theoraplayer devs. I recently started using your library and I think it's great. Thank you for your hard work!
I was wondering if anyone could help me. I am trying to run the av_player demo with a big video file (29mins, 720p, 1.4GB) and occasionally issue seekToFrame commands to skip to specific parts in the video. I noticed that if I try to seek past anything higher around frame 26500 the player freezes. I do not know the exact frame number but the seek fails every time I try to skip past this estimate (which is about 17m20s). I also tried different video files but it does not matter. I can still reproduce the problem as described.
I am working with Visual Studio 2010 using revision 397 of the SVN. I am compiling using the same sources included in the distribution (i.e. using the same the ogg, vorbis, theora and demo dependencies in the package).
I read on the Internet that theora has problems with huge files. Could this be related to that?
I noticed during my debugging sessions that function seekPage (from TheoraVideoClip_Theora) triggers after waitForCache is called. It appears that seekPage's binary search has trouble moving the seek range past anything higher than the target frame I mentioned. I also noticed that during the search the targetFrame variable in SeekPage changes to a different number (again around 26000). I don't know if this is supposed to happen but it doesn't seem right. SeekPage does manage to complete and after that the program flow apears to freeze somewhere inside the glut32.dll (which I can't debug).
I am not sure if I can fix this myself but if anyone can point me in the right direction I would appreciate it.
Thank you for your time
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hmmm, very interesting! I never really tested huge files. if you say the problem can be reproduced with any large file, then it should be easy to fix. I'll look into this as soon as I can and let you know.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Out of curiosity I created a smaller version of my 29 minute video at a lower resolution (856x480) and was able to reduce the size to 695MB. At this size av_player works fine. With this filesize I can skip to anywhere on my video, but I lose the HD perk.
I also tested a different but bigger file (3.93GB). This time around av_player didn't play anything at all, but did show the first frame of the video.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
could you maybe send me those files to test? if they're not company property or subject to NDA's... I'm converting a large file but it's gonna take 4 hours damn..
if you can send them, email me at kspes <insert-At-here> cateia <and-dot-here> com
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
thanks a lot for the files! They were very helpful. I fixed these issues, check the latest svn trunk version on google code and let me know if it's ok now
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hey this is great. Thanks! I tried it today and found a couple of things:
libvorbis (as included in the release) doesn't compile anymore. It complains that vorbis.def is missing some function declarations. Note that compiling with a previous vorbis.def from revision 397 (or standalone vorbis) corrects the problem. I left msvc's output below if you are interested.
Once I do get it compile it plays more files now, but the really big cases (like test-5) still make av_player freeze. However I can see the improvement. Test-3.ogv plays fine now. I can skip to anywhere and it doesn't freeze. It's like the size limit has been increased to about 2GB which is not bad.
This is what MSVC reports when trying to compile libvoris:
ok, I've reproduced the test-5.ogv problem. Though interestingly I only reproduce it on Windows. On my mac box it works fine. I'll investigate tommorow.
PS: I'm not having vorbis.def problems? Which visual studio are you using? I'm compiling with VS2012.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ok, I think I got it, try revision 410. There was a problem in window's fstat implementation. The default was 32 bit version, we need to use 64 bit version to get the proper file size.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I only did it to give you something to test. Thought it would help. The video I am using is actually about 1.4GB.
PS: I'm not having vorbis.def problems? Which visual studio are you
using? I'm compiling with VS2012.
I use VS2010 SP1 with all the latest updates. The libtheoraplayer_VS2010.sln file as it is needs a few fixes to get it to work. It's mostly fixing a few include directories (change "libogg" to "ogg") and adding some missing source files to the libtheoraplayer project (scale_row.h, scale_common.cc and scale_win.cc) from the YUV sources.
I am wondering does the other Visual Studio solutions include all the demos? The VS2010 solution file only shows demo_composite_animation.
ok, I think I got it, try revision 410.
It works! Theoraplayer appears to work fine with big files. Thank you Kresimir.
Last edit: Robert Thomas 2014-10-18
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
As for visual studio projects, it's kind of a mixed bag. I think I'll discontinue msvc2008 projects soon and probably msvc2010 as well and migrate everything to msvc2012. Any particular reason you're still using 2010?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello theoraplayer devs. I recently started using your library and I think it's great. Thank you for your hard work!
I was wondering if anyone could help me. I am trying to run the av_player demo with a big video file (29mins, 720p, 1.4GB) and occasionally issue seekToFrame commands to skip to specific parts in the video. I noticed that if I try to seek past anything higher around frame 26500 the player freezes. I do not know the exact frame number but the seek fails every time I try to skip past this estimate (which is about 17m20s). I also tried different video files but it does not matter. I can still reproduce the problem as described.
I am working with Visual Studio 2010 using revision 397 of the SVN. I am compiling using the same sources included in the distribution (i.e. using the same the ogg, vorbis, theora and demo dependencies in the package).
I read on the Internet that theora has problems with huge files. Could this be related to that?
I noticed during my debugging sessions that function seekPage (from TheoraVideoClip_Theora) triggers after waitForCache is called. It appears that seekPage's binary search has trouble moving the seek range past anything higher than the target frame I mentioned. I also noticed that during the search the targetFrame variable in SeekPage changes to a different number (again around 26000). I don't know if this is supposed to happen but it doesn't seem right. SeekPage does manage to complete and after that the program flow apears to freeze somewhere inside the glut32.dll (which I can't debug).
I am not sure if I can fix this myself but if anyone can point me in the right direction I would appreciate it.
Thank you for your time
Hmmm, very interesting! I never really tested huge files. if you say the problem can be reproduced with any large file, then it should be easy to fix. I'll look into this as soon as I can and let you know.
Out of curiosity I created a smaller version of my 29 minute video at a lower resolution (856x480) and was able to reduce the size to 695MB. At this size av_player works fine. With this filesize I can skip to anywhere on my video, but I lose the HD perk.
I also tested a different but bigger file (3.93GB). This time around av_player didn't play anything at all, but did show the first frame of the video.
could you maybe send me those files to test? if they're not company property or subject to NDA's... I'm converting a large file but it's gonna take 4 hours damn..
if you can send them, email me at kspes <insert-At-here> cateia <and-dot-here> com
E-mail sent.
Hi Robert,
thanks a lot for the files! They were very helpful. I fixed these issues, check the latest svn trunk version on google code and let me know if it's ok now
Hey this is great. Thanks! I tried it today and found a couple of things:
This is what MSVC reports when trying to compile libvoris:
1>------ Build started: Project: libvorbis, Configuration: Debug Win32 ------
1>Build started 10/14/2014 5:01:03 PM.
1>InitializeBuildStatus:
1> Creating "C:\libs-vs2010\libtheoraplayer-svn\bin\Win32\lib\libvorbis\libvorbis.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1> window.c
1> synthesis.c
1> smallft.c
1> sharedbook.c
1> res0.c
1> registry.c
1> psy.c
1> mdct.c
1> mapping0.c
1> lsp.c
1> lpc.c
1> lookup.c
1> info.c
1> floor1.c
1> floor0.c
1> envelope.c
1> codebook.c
1> block.c
1> bitrate.c
1> analysis.c
1> Generating Code...
1>vorbis.def : error LNK2001: unresolved external symbol vorbis_encode_ctl
1>vorbis.def : error LNK2001: unresolved external symbol vorbis_encode_init
1>vorbis.def : error LNK2001: unresolved external symbol vorbis_encode_init_vbr
1>vorbis.def : error LNK2001: unresolved external symbol vorbis_encode_setup_init
1>vorbis.def : error LNK2001: unresolved external symbol vorbis_encode_setup_managed
1>vorbis.def : error LNK2001: unresolved external symbol vorbis_encode_setup_vbr
1>C:\libs-vs2010\libtheoraplayer-svn\bin\Win32\libvorbis.lib : fatal error LNK1120: 6 unresolved externals
1>
1>Build FAILED.
1>
Last edit: Robert Thomas 2014-10-14
ok, I've reproduced the test-5.ogv problem. Though interestingly I only reproduce it on Windows. On my mac box it works fine. I'll investigate tommorow.
PS: I'm not having vorbis.def problems? Which visual studio are you using? I'm compiling with VS2012.
ok, I think I got it, try revision 410. There was a problem in window's fstat implementation. The default was 32 bit version, we need to use 64 bit version to get the proper file size.
btw, curious, why do you need such large files? Do you actually need to use them or have you just tried this to see if the library supports it?
I only did it to give you something to test. Thought it would help. The video I am using is actually about 1.4GB.
I use VS2010 SP1 with all the latest updates. The libtheoraplayer_VS2010.sln file as it is needs a few fixes to get it to work. It's mostly fixing a few include directories (change "libogg" to "ogg") and adding some missing source files to the libtheoraplayer project (scale_row.h, scale_common.cc and scale_win.cc) from the YUV sources.
I am wondering does the other Visual Studio solutions include all the demos? The VS2010 solution file only shows demo_composite_animation.
It works! Theoraplayer appears to work fine with big files. Thank you Kresimir.
Last edit: Robert Thomas 2014-10-18
great, glad it's fixed now :)
As for visual studio projects, it's kind of a mixed bag. I think I'll discontinue msvc2008 projects soon and probably msvc2010 as well and migrate everything to msvc2012. Any particular reason you're still using 2010?