Loading include/media/stagefright/SurfaceMediaSource.h +3 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,9 @@ public: sp<BufferQueue> getBufferQueue() const { return mBufferQueue; } // To be called before start() status_t setMaxAcquiredBufferCount(size_t count); protected: // Implementation of the BufferQueue::ConsumerListener interface. These Loading media/libstagefright/SurfaceMediaSource.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -167,6 +167,10 @@ status_t SurfaceMediaSource::start(MetaData *params) return OK; } status_t SurfaceMediaSource::setMaxAcquiredBufferCount(size_t count) { return mBufferQueue->setMaxAcquiredBufferCount(count); } status_t SurfaceMediaSource::stop() { Loading media/libstagefright/wifi-display/source/Converter.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,10 @@ status_t Converter::initCheck() const { return mInitCheck; } size_t Converter::getInputBufferCount() const { return mEncoderInputBuffers.size(); } sp<AMessage> Converter::getOutputFormat() const { return mOutputFormat; } Loading media/libstagefright/wifi-display/source/Converter.h +2 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ struct Converter : public AHandler { status_t initCheck() const; size_t getInputBufferCount() const; sp<AMessage> getOutputFormat() const; void feedAccessUnit(const sp<ABuffer> &accessUnit); Loading media/libstagefright/wifi-display/source/PlaybackSession.cpp +15 −21 Original line number Diff line number Diff line Loading @@ -600,27 +600,6 @@ status_t WifiDisplaySource::PlaybackSession::setupPacketizer() { // sp<SurfaceMediaSource> source = new SurfaceMediaSource(info.w, info.h); sp<SurfaceMediaSource> source = new SurfaceMediaSource(720, 1280); sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> binder = sm->getService(String16("SurfaceFlinger")); sp<ISurfaceComposer> service = interface_cast<ISurfaceComposer>(binder); CHECK(service != NULL); service->connectDisplay(source->getBufferQueue()); #if 0 { ALOGI("reading buffer"); CHECK_EQ((status_t)OK, source->start()); MediaBuffer *mbuf; CHECK_EQ((status_t)OK, source->read(&mbuf)); mbuf->release(); mbuf = NULL; ALOGI("got buffer"); } #endif #if 0 ssize_t index = mSerializer->addSource(source); #else Loading @@ -644,10 +623,25 @@ status_t WifiDisplaySource::PlaybackSession::setupPacketizer() { sp<Converter> converter = new Converter(notify, mCodecLooper, format); CHECK_EQ(converter->initCheck(), (status_t)OK); size_t numInputBuffers = converter->getInputBufferCount(); ALOGI("numInputBuffers to the encoder is %d", numInputBuffers); looper()->registerHandler(converter); mTracks.add(index, new Track(converter)); sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> binder = sm->getService(String16("SurfaceFlinger")); sp<ISurfaceComposer> service = interface_cast<ISurfaceComposer>(binder); CHECK(service != NULL); // Add one reference to account for the serializer. err = source->setMaxAcquiredBufferCount(numInputBuffers + 1); CHECK_EQ(err, (status_t)OK); service->connectDisplay(source->getBufferQueue()); #endif #if 0 Loading Loading
include/media/stagefright/SurfaceMediaSource.h +3 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,9 @@ public: sp<BufferQueue> getBufferQueue() const { return mBufferQueue; } // To be called before start() status_t setMaxAcquiredBufferCount(size_t count); protected: // Implementation of the BufferQueue::ConsumerListener interface. These Loading
media/libstagefright/SurfaceMediaSource.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -167,6 +167,10 @@ status_t SurfaceMediaSource::start(MetaData *params) return OK; } status_t SurfaceMediaSource::setMaxAcquiredBufferCount(size_t count) { return mBufferQueue->setMaxAcquiredBufferCount(count); } status_t SurfaceMediaSource::stop() { Loading
media/libstagefright/wifi-display/source/Converter.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,10 @@ status_t Converter::initCheck() const { return mInitCheck; } size_t Converter::getInputBufferCount() const { return mEncoderInputBuffers.size(); } sp<AMessage> Converter::getOutputFormat() const { return mOutputFormat; } Loading
media/libstagefright/wifi-display/source/Converter.h +2 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ struct Converter : public AHandler { status_t initCheck() const; size_t getInputBufferCount() const; sp<AMessage> getOutputFormat() const; void feedAccessUnit(const sp<ABuffer> &accessUnit); Loading
media/libstagefright/wifi-display/source/PlaybackSession.cpp +15 −21 Original line number Diff line number Diff line Loading @@ -600,27 +600,6 @@ status_t WifiDisplaySource::PlaybackSession::setupPacketizer() { // sp<SurfaceMediaSource> source = new SurfaceMediaSource(info.w, info.h); sp<SurfaceMediaSource> source = new SurfaceMediaSource(720, 1280); sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> binder = sm->getService(String16("SurfaceFlinger")); sp<ISurfaceComposer> service = interface_cast<ISurfaceComposer>(binder); CHECK(service != NULL); service->connectDisplay(source->getBufferQueue()); #if 0 { ALOGI("reading buffer"); CHECK_EQ((status_t)OK, source->start()); MediaBuffer *mbuf; CHECK_EQ((status_t)OK, source->read(&mbuf)); mbuf->release(); mbuf = NULL; ALOGI("got buffer"); } #endif #if 0 ssize_t index = mSerializer->addSource(source); #else Loading @@ -644,10 +623,25 @@ status_t WifiDisplaySource::PlaybackSession::setupPacketizer() { sp<Converter> converter = new Converter(notify, mCodecLooper, format); CHECK_EQ(converter->initCheck(), (status_t)OK); size_t numInputBuffers = converter->getInputBufferCount(); ALOGI("numInputBuffers to the encoder is %d", numInputBuffers); looper()->registerHandler(converter); mTracks.add(index, new Track(converter)); sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> binder = sm->getService(String16("SurfaceFlinger")); sp<ISurfaceComposer> service = interface_cast<ISurfaceComposer>(binder); CHECK(service != NULL); // Add one reference to account for the serializer. err = source->setMaxAcquiredBufferCount(numInputBuffers + 1); CHECK_EQ(err, (status_t)OK); service->connectDisplay(source->getBufferQueue()); #endif #if 0 Loading