author Chris Pearce <>
Wed, 15 Jan 2014 16:13:54 +1300
changeset 180451 eb70f67d384a2de272246337052f7225ee84ed4e
parent 64423 41a7fb6cb4f95efcc9e84cc0caf970a4dc9cdd96
child 181409 d8f0dc8111097946f21bd3484d925cbba66c9bd9
permissions -rw-r--r--
Bug 959440 - Various cleanups in MP4Reader. r=kinetik Change PlatformDecoderModule::Create*Decoder() to take an mp4_demuxer::{Audio,Video}DecoderConfig parameter, instead of enumerating all parameters. This means the platform decoders can have more data if need be, like the AACAudioConfig. Change MediaDataDecoder::Input() to take an nsAutoPtr<MP4Sample>&. The sample will be deleted by the caller (MP4Reader) if Input() returns DECODE_STATUS_OK, but if the MediaDataDecoder wants to assume responsibility of the lifecycle of the sample (say to enqueue it), it can forget() on the nsAutoPtr& passed in and assume responsibility. Call PlatformDecoderModule::Create() on the decode thread. This is a step towards making these classes decode-thread only. Add PlatformDecoderModule::Init(), which caches the pref's we need, since PlatformDecoderModule::Create() is no longer called on the main thread, we can no longer access them in there. Add Init() method to MediaDataDecoder interface. This is so that we can call MediaDataDecoder::Shutdown() to unblock the initialization of a decoder, if that init needs to block. Pass LayersBackend type to WMFVideoDecoder, so it knows whether to init DXVA.

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

For information on how to build Mozilla from the source code, see:

To have your bug fix / feature added to Mozilla, you should create a patch and
submit it to Bugzilla ( Instructions are at:

If you have a question about developing Mozilla, and can't find the solution
on, you can try asking your question in a
mozilla.* Usenet group, or on IRC at [The Mozilla news groups
are accessible on Google Groups, or with a NNTP reader.]

You can download nightly development builds from the Mozilla FTP server.
Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy. Firefox nightlies, for example, can be found at:
            - or -