Skip to content

Commit

Permalink
libstagefright_wfd: libmediaplayer2: compilation fixes
Browse files Browse the repository at this point in the history
* Among others, adapt to the ABuffer API changes in
  "f03606d9 Move MediaBufferXXX from foundation to libmediaextractor"

Change-Id: Ie92fc035c6430f1458d45995a5b2627d0bc75122
Signed-off-by: Vladimir Oltean <[email protected]>
Signed-off-by: DennySPb <[email protected]>
Signed-off-by: Mayur <[email protected]>
  • Loading branch information
vladimiroltean authored and marshmello61 committed Jun 28, 2021
1 parent 834252b commit 81ac30c
Show file tree
Hide file tree
Showing 12 changed files with 46 additions and 35 deletions.
1 change: 1 addition & 0 deletions media/libmedia/Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@ cc_library {
"libcamera_client",
"libstagefright_foundation",
"libgui",
"libui",
"libdl",
"libaudioclient",
"libmedia_codeclist",
Expand Down
4 changes: 2 additions & 2 deletions media/libstagefright/SurfaceMediaSource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ status_t SurfaceMediaSource::stop()

#if DEBUG_PENDING_BUFFERS
for (size_t i = 0; i < mPendingBuffers.size(); ++i) {
ALOGI("%d: %p", i, mPendingBuffers.itemAt(i));
ALOGI("%zu: %p", i, mPendingBuffers.itemAt(i));
}
#endif

Expand Down Expand Up @@ -355,7 +355,7 @@ status_t SurfaceMediaSource::read(

(*buffer)->setObserver(this);
(*buffer)->add_ref();
(*buffer)->meta_data()->setInt64(kKeyTime, mCurrentTimestamp / 1000);
(*buffer)->meta_data().setInt64(kKeyTime, mCurrentTimestamp / 1000);
ALOGV("Frames encoded = %d, timestamp = %" PRId64 ", time diff = %" PRId64,
mNumFramesEncoded, mCurrentTimestamp / 1000,
mCurrentTimestamp / 1000 - prevTimeStamp / 1000);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ class SurfaceMediaSource : public MediaSource,
size_t mNumPendingBuffers;

#if DEBUG_PENDING_BUFFERS
Vector<MediaBuffer *> mPendingBuffers;
Vector<MediaBufferBase *> mPendingBuffers;
#endif

// mCurrentTimestamp is the timestamp for the current texture. It
Expand Down
2 changes: 2 additions & 0 deletions media/libstagefright/wifi-display/Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ cc_library_shared {
"libcutils",
"liblog",
"libmedia",
"libmedia_omx",
"libmediaextractor",
"libstagefright",
"libstagefright_foundation",
"libui",
Expand Down
6 changes: 3 additions & 3 deletions media/libstagefright/wifi-display/MediaSender.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@
#include "rtp/RTPSender.h"
#include "source/TSPacketizer.h"

#include "include/avc_utils.h"
#include <media/stagefright/foundation/avc_utils.h>

#include <media/IHDCP.h>
#include <media/stagefright/MediaBuffer.h>
#include <media/stagefright/MediaBufferBase.h>
#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/AMessage.h>
Expand Down Expand Up @@ -400,7 +400,7 @@ status_t MediaSender::packetizeAccessUnit(
bool manuallyPrependSPSPPS =
!info.mIsAudio
&& (info.mFlags & FLAG_MANUALLY_PREPEND_SPS_PPS)
&& IsIDR(accessUnit);
&& IsIDR(accessUnit->data(), accessUnit->size());

if (mHDCP != NULL && !info.mIsAudio) {
isHDCPEncrypted = true;
Expand Down
3 changes: 2 additions & 1 deletion media/libstagefright/wifi-display/rtp/RTPSender.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@
#include <media/stagefright/MediaErrors.h>
#include <media/stagefright/Utils.h>

#include "include/avc_utils.h"
#include <media/stagefright/foundation/avc_utils.h>
#include <media/stagefright/foundation/ByteUtils.h>

namespace android {

Expand Down
25 changes: 15 additions & 10 deletions media/libstagefright/wifi-display/source/Converter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
#include "Converter.h"

#include "MediaPuller.h"
#include "include/avc_utils.h"

#include <cutils/properties.h>
#include <gui/Surface.h>
Expand All @@ -30,10 +29,12 @@
#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/MediaBuffer.h>
#include <media/stagefright/MediaBufferBase.h>
#include <media/stagefright/MediaCodec.h>
#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MediaErrors.h>
#include <media/MediaBufferHolder.h>
#include <media/stagefright/foundation/avc_utils.h>

#include <arpa/inet.h>

Expand Down Expand Up @@ -305,7 +306,7 @@ void Converter::onMessageReceived(const sp<AMessage> &msg) {
sp<ABuffer> accessUnit;
CHECK(msg->findBuffer("accessUnit", &accessUnit));

accessUnit->setMediaBufferBase(NULL);
accessUnit->meta()->setObject("mediaBufferHolder", sp<MediaBufferHolder>(nullptr));
}
break;
}
Expand All @@ -328,7 +329,7 @@ void Converter::onMessageReceived(const sp<AMessage> &msg) {
ALOGI("dropping frame.");
}

accessUnit->setMediaBufferBase(NULL);
accessUnit->meta()->setObject("mediaBufferHolder", sp<MediaBufferHolder>(nullptr));
break;
}

Expand Down Expand Up @@ -625,13 +626,17 @@ status_t Converter::feedEncoderInputBuffers() {
buffer->data(),
buffer->size());

MediaBuffer *mediaBuffer =
(MediaBuffer *)(buffer->getMediaBufferBase());
MediaBufferBase *mediaBuffer = NULL;
sp<RefBase> holder;

if (buffer->meta()->findObject("mediaBufferHolder", &holder)) {
mediaBuffer = (holder != nullptr) ?
static_cast<MediaBufferHolder*>(holder.get())->mediaBuffer() : nullptr;
}
if (mediaBuffer != NULL) {
mEncoderInputBuffers.itemAt(bufferIndex)->setMediaBufferBase(
mediaBuffer);
mEncoderInputBuffers.itemAt(bufferIndex)->meta()->setObject("mediaBufferHolder", new MediaBufferHolder(mediaBuffer));

buffer->setMediaBufferBase(NULL);
buffer->meta()->setObject("mediaBufferHolder", sp<MediaBufferHolder>(nullptr));
}
} else {
flags = MediaCodec::BUFFER_FLAG_EOS;
Expand Down Expand Up @@ -763,7 +768,7 @@ status_t Converter::doMoreWork() {
if (mNeedToManuallyPrependSPSPPS
&& mIsH264
&& (mFlags & FLAG_PREPEND_CSD_IF_NECESSARY)
&& IsIDR(buffer)) {
&& IsIDR(buffer->data(), buffer->size())) {
buffer = prependCSD(buffer);
}

Expand Down
13 changes: 7 additions & 6 deletions media/libstagefright/wifi-display/source/MediaPuller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@
#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/MediaBuffer.h>
#include <media/stagefright/MediaSource.h>
#include <media/stagefright/MediaBufferBase.h>
#include <media/MediaBufferHolder.h>
#include <media/MediaSource.h>
#include <media/stagefright/MetaData.h>

namespace android {
Expand Down Expand Up @@ -138,7 +139,7 @@ void MediaPuller::onMessageReceived(const sp<AMessage> &msg) {
break;
}

MediaBuffer *mbuf;
MediaBufferBase *mbuf;
status_t err = mSource->read(&mbuf);

if (mPaused) {
Expand All @@ -163,7 +164,7 @@ void MediaPuller::onMessageReceived(const sp<AMessage> &msg) {
notify->post();
} else {
int64_t timeUs;
CHECK(mbuf->meta_data()->findInt64(kKeyTime, &timeUs));
CHECK(mbuf->meta_data().findInt64(kKeyTime, &timeUs));

sp<ABuffer> accessUnit = new ABuffer(mbuf->range_length());

Expand All @@ -177,9 +178,9 @@ void MediaPuller::onMessageReceived(const sp<AMessage> &msg) {
mbuf->release();
mbuf = NULL;
} else {
// video encoder will release MediaBuffer when done
// video encoder will release MediaBufferBase when done
// with underlying data.
accessUnit->setMediaBufferBase(mbuf);
accessUnit->meta()->setObject("mediaBufferHolder", new MediaBufferHolder(mbuf));
}

sp<AMessage> notify = mNotify->dup();
Expand Down
5 changes: 3 additions & 2 deletions media/libstagefright/wifi-display/source/PlaybackSession.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include "Converter.h"
#include "MediaPuller.h"
#include "RepeaterSource.h"
#include "include/avc_utils.h"
#include <media/stagefright/foundation/avc_utils.h>
#include "WifiDisplaySource.h"

#include <binder/IServiceManager.h>
Expand All @@ -38,11 +38,12 @@
#include <media/stagefright/AudioSource.h>
#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MediaErrors.h>
#include <media/stagefright/MediaSource.h>
#include <media/MediaSource.h>
#include <media/stagefright/MetaData.h>
#include <media/stagefright/NuMediaExtractor.h>
#include <media/stagefright/SurfaceMediaSource.h>
#include <media/stagefright/Utils.h>
#include <media/IOMX.h>

#include <OMX_IVCommon.h>

Expand Down
8 changes: 4 additions & 4 deletions media/libstagefright/wifi-display/source/RepeaterSource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/ALooper.h>
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/MediaBuffer.h>
#include <media/stagefright/MediaBufferBase.h>
#include <media/stagefright/MetaData.h>

namespace android {
Expand Down Expand Up @@ -107,7 +107,7 @@ sp<MetaData> RepeaterSource::getFormat() {
}

status_t RepeaterSource::read(
MediaBuffer **buffer, const ReadOptions *options) {
MediaBufferBase **buffer, const ReadOptions *options) {
int64_t seekTimeUs;
ReadOptions::SeekMode seekMode;
CHECK(options == NULL || !options->getSeekTo(&seekTimeUs, &seekMode));
Expand Down Expand Up @@ -155,7 +155,7 @@ status_t RepeaterSource::read(
{
mBuffer->add_ref();
*buffer = mBuffer;
(*buffer)->meta_data()->setInt64(kKeyTime, bufferTimeUs);
(*buffer)->meta_data().setInt64(kKeyTime, bufferTimeUs);
++mFrameCount;
}
}
Expand All @@ -180,7 +180,7 @@ void RepeaterSource::onMessageReceived(const sp<AMessage> &msg) {
switch (msg->what()) {
case kWhatRead:
{
MediaBuffer *buffer;
MediaBufferBase *buffer;
status_t err = mSource->read(&buffer);

ALOGV("read mbuf %p", buffer);
Expand Down
6 changes: 3 additions & 3 deletions media/libstagefright/wifi-display/source/RepeaterSource.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#include <media/stagefright/foundation/ABase.h>
#include <media/stagefright/foundation/AHandlerReflector.h>
#include <media/stagefright/MediaSource.h>
#include <media/MediaSource.h>

#define SUSPEND_VIDEO_IF_IDLE 0

Expand All @@ -20,7 +20,7 @@ struct RepeaterSource : public MediaSource {
virtual sp<MetaData> getFormat();

virtual status_t read(
MediaBuffer **buffer, const ReadOptions *options);
MediaBufferBase **buffer, const ReadOptions *options);

void onMessageReceived(const sp<AMessage> &msg);

Expand Down Expand Up @@ -50,7 +50,7 @@ struct RepeaterSource : public MediaSource {
sp<ALooper> mLooper;
sp<AHandlerReflector<RepeaterSource> > mReflector;

MediaBuffer *mBuffer;
MediaBufferBase *mBuffer;
status_t mResult;
int64_t mLastBufferUpdateUs;

Expand Down
6 changes: 3 additions & 3 deletions media/libstagefright/wifi-display/source/TSPacketizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
#include <utils/Log.h>

#include "TSPacketizer.h"
#include "include/avc_utils.h"
#include <media/stagefright/foundation/avc_utils.h>

#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ADebug.h>
Expand Down Expand Up @@ -471,7 +471,7 @@ status_t TSPacketizer::packetize(
const sp<Track> &track = mTracks.itemAt(trackIndex);

if (track->isH264() && (flags & PREPEND_SPS_PPS_TO_IDR_FRAMES)
&& IsIDR(accessUnit)) {
&& IsIDR(accessUnit->data(), accessUnit->size())) {
// prepend codec specific data, i.e. SPS and PPS.
accessUnit = track->prependCSD(accessUnit);
} else if (track->isAAC() && track->lacksADTSHeader()) {
Expand Down Expand Up @@ -1039,7 +1039,7 @@ sp<ABuffer> TSPacketizer::prependCSD(
CHECK_LT(trackIndex, mTracks.size());

const sp<Track> &track = mTracks.itemAt(trackIndex);
CHECK(track->isH264() && IsIDR(accessUnit));
CHECK(track->isH264() && IsIDR(accessUnit->data(), accessUnit->size()));

int64_t timeUs;
CHECK(accessUnit->meta()->findInt64("timeUs", &timeUs));
Expand Down

0 comments on commit 81ac30c

Please sign in to comment.