author Chris Pearce <>
Wed, 15 Jan 2014 16:13:54 +1300
changeset 180451 eb70f67d384a2de272246337052f7225ee84ed4e
parent 170017 260fbed9b3efc47a42a6caa46f99c69504f69e1d
child 427990 ce6e2f914c96563ef4d4b2dd2bb10fe1b9fd2a33
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.

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at */

#ifndef _NECKO_CONFIG_H_
#define _NECKO_CONFIG_H_



#undef NECKO_PROTOCOL_about
#undef NECKO_PROTOCOL_data
#undef NECKO_PROTOCOL_device
#undef NECKO_PROTOCOL_file
#undef NECKO_PROTOCOL_http
#undef NECKO_PROTOCOL_rtsp
#undef NECKO_PROTOCOL_viewsource
#undef NECKO_PROTOCOL_websocket
#undef NECKO_PROTOCOL_wyciwyg