Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Size Limit for Media Item Browser
#1
There appears to be a hard limit for the size of the data in a Media Item Browser (could be for all List Browsers?). If the list gets too large you get an error whose message is "The object state is bad because The size (4203612) is > than the max size (4194304)". If you are wondering how large it is at around 7K entries. I'm stress testing some audio work I've been doing and folks with very large repos will easily hit this limit.

Facility: CIDLib
Severity: Failed
Error # : 1921/0/0
Error Class: App Error
Line: CIDLib_MemBuf.cpp/873
It's the early bird that catches the worm, but it's the second mouse that gets the cheese...
Reply
#2
Can you run the interface viewer from the CQC Command Prompt and add (assuming you are on the latest beta versions) add this parameter:

CQCIntfView /TraceSev=Failed

And see if you get me an .ErrorInf file from that error. That will help me track down hopefully where that memory buffer is being created. It's not obvious from a look through the code.
Dean Roddey
Explorans limites defectum
Reply
#3
Here it is...I'm running 3.0.28

Quote:--------------------------------------
Runtime Error:
Process: CQCIntfView
Thread: MainThread

Error Information:
Facility: CIDLib
Error: The object state is bad because The size (4203612) is > than the max size (4194304)
Aux Error Text:
Error Id: 1921
Kernel Error Id: 0
Host Error Id: 0
File: CIDLib_MemBuf.cpp.873

Stack Dump:
Called From: ntdll, KiFastSystemCallRet
Called From: <Unknown module>, <no symbolic info>
It's the early bird that catches the worm, but it's the second mouse that gets the cheese...
Reply
#4
Oh well, it wasn't able to do a stack trace. Because of the way the Windows stack trace works, sometimes in the production build it doesn't get any. It often indicates that the exception occurred in the application and not in a DLL, but not always.

Was this on a preview (i.e. repo item browser widget) or on an active playlist (i.e. the regular item browser widget)?
Dean Roddey
Explorans limites defectum
Reply
#5
It is an active playlist.
It's the early bird that catches the worm, but it's the second mouse that gets the cheese...
Reply
#6
OK, it turned out to be down in the guts of the XML parser. That media stuff is tranmitted in XML format (for historical XML Gateway reasons), and the entity buffer class for string based entities uses a parsing buffer, and it wasn't using the size of the incoming XML text to set the maximum size of the buffer, so the default 4MB size was being used. I add some bogus code to generate a large playlist in order to find it since I don't have a large enough collection to do so.

Long term I think that, painful as it will be, the media item browsers are going to have to use a chunked interface, because sucking a large number of items over at one time is just too slow and abusive of system resources. I set up with 10000 items, which hopefully no sane person would ever do, but if they did it would be very slow.

Though, ultimately it would make FAR more sense to support a 'random play from category X' type of thing than to have people trying to load their entire repository into a player.
Dean Roddey
Explorans limites defectum
Reply
#7
That is on my next things to add to the wish list, support for category cookies in the player and that would fit the bill. I have found that having a Play All is kind of nice as I am listening to music I haven't for a while and it is just easy. Load up all your songs and let it shuffle. It is a macro so it can take any single cookie or cookie list from categories down to items, but I don't use it at the item level as it is a bit too piggy. Loading up ~270 albums takes a few seconds to populate the list if you pass it a category cookie for All Music (1,2). The list count is ~3100.

Speaking of the XML and playlists I'm querying the cqsl audio driver using the kRenderDrv_QueryItemList flag for the ID to get the current playlist so I can determine the current list index. The XML that is returned errors with the XMLTreeParser. I can't remember the error off the top of my head, but it was something to do with expecting markup... At one time you had mentioned that was basically depricated and wasn't even used internally. Is that still the case and is there any other way to get out the playlist other than that backdoor method?
It's the early bird that catches the worm, but it's the second mouse that gets the cheese...
Reply
#8
That should be returning the same format as used internally. It's done via a standard call. You may need to supress the DTD if there is one, which would just be a bogus one that is set up to refer to a DTD that I supply internally.
Dean Roddey
Explorans limites defectum
Reply
#9
Sure enough. It starts out with what is shown below. However, I'm just using the default options for the XMlTreeParser so shouldn't it ignore the DTD?
Quote:<?xml version="1.0" encoding="$NativeWideChar$"?>\n<!DOCTYPE CQCMedia:ItemListRep PUBLIC "urn:charmedquark.com:CQC-DrvMediaMsg.DTD" "CQCDrvMediaMsg.DTD">

Addendum: The error it gives is "Expected to find some sort of markup here" at Line 1, Col 50. That would be about where the !DOCTYPE DTD is at.
It's the early bird that catches the worm, but it's the second mouse that gets the cheese...
Reply
#10
Any response for this? Shouldn't it be ignoring any DTD if using the default options for the XMLTreeParser?
It's the early bird that catches the worm, but it's the second mouse that gets the cheese...
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Widget: Web Browser simplextech 4 65 01-12-2020, 12:47 PM
Last Post: simplextech
  Media Repository simplextech 10 142 01-09-2020, 07:19 PM
Last Post: simplextech
  Media playing from Event simplextech 11 142 01-07-2020, 06:09 PM
Last Post: simplextech
  Increase Size of Context Screens gReatAutomation 1 159 10-04-2019, 01:11 PM
Last Post: Dean Roddey
  Image Browser? gReatAutomation 8 798 06-26-2019, 06:12 PM
Last Post: gReatAutomation
  SubSonic Media Server API Support? gReatAutomation 4 552 06-16-2019, 02:45 PM
Last Post: gReatAutomation
  Google Calendar and Web Browser kblagron 4 587 04-25-2019, 10:10 PM
Last Post: kblagron
  Logic Server Field Limit zra 6 2,091 07-10-2018, 12:44 PM
Last Post: zra
  Cover Art Browser pjgregory 15 4,003 05-25-2018, 11:18 AM
Last Post: Dean Roddey
  New construction with a nice size budget. How would you do multizone audio? ghurty 7 2,304 03-27-2018, 02:12 PM
Last Post: Dean Roddey

Forum Jump:


Users browsing this thread: 1 Guest(s)