locked
How to handle AAC for Demux RRS feed

  • Question

  • I have an MPEG Demux tht handles AAC. Am using MONOGRAM AAC Decoder to check the Demux. When I render an AAC Audio file, its not playing. Its hanging. But, when I seek the file (am using GraphEdit), its being played. And later, when I stop the graph and play it again then its playing fine. How can I handle this case?? What should I do to make the Graph run on clicking play, instead of clicking Run and then seek the seek bar to make it play.

    Thanks in Advance


    Hidayath
    Wednesday, July 15, 2009 12:40 PM

Answers

  • The MainConcept decoder may use an internal buffer instead of holding sample references.

    Another possible reason is that there are errors in the bitstream of some of the files.  The MainConcept decoder implementation may be ignoring those errors where as the Monogram AAC decoder is choking on the error.

    You should report your experience to the developer (Igor) so he can figure out if the error is in their DirectShow wrapper or in the underlaying libfaac.

    Be aware that the Monogram AAC Decoder is licensed GPL, which means you cannot distribute it as part of a commerical package (software you sell or give away) unless your software complies the with the GPL license as well.

    www.chrisnet.net
    Friday, July 17, 2009 1:33 PM

All replies

  • If it's not playing the first time then you have a bug somewhere.  Trace your demux audio output pin when it calls Deliver() and see if it hangs there.  If so, then the Monogram AAC decoder doesn't like something about the bitstream you are sending.  Test another decoder (ffdshow for example) to see if it has the same behavior.

    www.chrisnet.net
    Wednesday, July 15, 2009 8:33 PM
  • Thanx Chris for the Reply...

    I have checked it with MainConcept AAC Decoder...Its playing the file..
    I have Debugged and checked the Receive() Method, Its hanged in the GetDeliverBuffer()...Wt I thk is MONOGRAM AAC can't process the stream tht am giving to it. But, wts wondering me is, MainConcept AAC Decoder is playing the streams..

    To check this, I have tested all my files using Monogram AAC and MainConcept AAC...Some are played by Monogram and some by MainConcept...Wt shd I do now to make all the files played by Monogram AAC..


    Hidayath
    Thursday, July 16, 2009 5:02 AM
  • If it is hanging in GetDeliveryBuffer() that means that there are no more samples available in the allocator.  The decoder may be holding a reference to the previous sample while it waits for the next sample, but if there is only 1 sample then this deadlock will occur until you seek.  Try increasing the number of samples requested in your DecideAllocator() / DecideBufferSize()

    www.chrisnet.net
    Thursday, July 16, 2009 5:17 PM
  • yeah,  I did tht too...Bt of no use...Wt I wanna know now is, why is tht some files which are not played by Monogram AAC are played using MainConcept and vice versa.. If its a problem with the Buffer size then Even Mainconcept shouldnt play tht.
    Hidayath
    Friday, July 17, 2009 4:15 AM
  • The MainConcept decoder may use an internal buffer instead of holding sample references.

    Another possible reason is that there are errors in the bitstream of some of the files.  The MainConcept decoder implementation may be ignoring those errors where as the Monogram AAC decoder is choking on the error.

    You should report your experience to the developer (Igor) so he can figure out if the error is in their DirectShow wrapper or in the underlaying libfaac.

    Be aware that the Monogram AAC Decoder is licensed GPL, which means you cannot distribute it as part of a commerical package (software you sell or give away) unless your software complies the with the GPL license as well.

    www.chrisnet.net
    Friday, July 17, 2009 1:33 PM