Bug 815226 - Make the MediaPluginReader not depend on the concrete type of the AbstractMediaDecoder passed to it; r=cpearce

This commit is contained in:
Ehsan Akhgari 2012-11-26 16:12:24 -05:00
Родитель 4a40134208
Коммит f4bd2d33b7
3 изменённых файлов: 8 добавлений и 4 удалений

Просмотреть файл

@ -16,7 +16,7 @@ MediaPluginDecoder::MediaPluginDecoder(const nsACString& aType) : mType(aType)
MediaDecoderStateMachine* MediaPluginDecoder::CreateStateMachine() MediaDecoderStateMachine* MediaPluginDecoder::CreateStateMachine()
{ {
return new MediaDecoderStateMachine(this, new MediaPluginReader(this)); return new MediaDecoderStateMachine(this, new MediaPluginReader(this, mType));
} }
} // namespace mozilla } // namespace mozilla

Просмотреть файл

@ -15,8 +15,10 @@
namespace mozilla { namespace mozilla {
MediaPluginReader::MediaPluginReader(AbstractMediaDecoder *aDecoder) : MediaPluginReader::MediaPluginReader(AbstractMediaDecoder *aDecoder,
const nsACString& aContentType) :
MediaDecoderReader(aDecoder), MediaDecoderReader(aDecoder),
mType(aContentType),
mPlugin(NULL), mPlugin(NULL),
mHasAudio(false), mHasAudio(false),
mHasVideo(false), mHasVideo(false),
@ -24,7 +26,6 @@ MediaPluginReader::MediaPluginReader(AbstractMediaDecoder *aDecoder) :
mAudioSeekTimeUs(-1), mAudioSeekTimeUs(-1),
mLastVideoFrame(NULL) mLastVideoFrame(NULL)
{ {
static_cast<MediaPluginDecoder *>(aDecoder)->GetContentType(mType);
} }
MediaPluginReader::~MediaPluginReader() MediaPluginReader::~MediaPluginReader()

Просмотреть файл

@ -11,6 +11,8 @@
#include "MPAPI.h" #include "MPAPI.h"
class nsACString;
namespace mozilla { namespace mozilla {
class AbstractMediaDecoder; class AbstractMediaDecoder;
@ -27,7 +29,8 @@ class MediaPluginReader : public MediaDecoderReader
int64_t mAudioSeekTimeUs; int64_t mAudioSeekTimeUs;
VideoData *mLastVideoFrame; VideoData *mLastVideoFrame;
public: public:
MediaPluginReader(AbstractMediaDecoder* aDecoder); MediaPluginReader(AbstractMediaDecoder* aDecoder,
const nsACString& aContentType);
~MediaPluginReader(); ~MediaPluginReader();
virtual nsresult Init(MediaDecoderReader* aCloneDonor); virtual nsresult Init(MediaDecoderReader* aCloneDonor);