Loading include/media/mediaplayer.h +1 −0 Original line number Diff line number Diff line Loading @@ -162,6 +162,7 @@ enum media_player_invoke_ids { INVOKE_ID_ADD_EXTERNAL_SOURCE_FD = 3, INVOKE_ID_SELECT_TRACK = 4, INVOKE_ID_UNSELECT_TRACK = 5, INVOKE_ID_SET_VIDEO_SCALING_MODE = 6, }; // Keep MEDIA_TRACK_TYPE_* in sync with MediaPlayer.java. Loading media/libstagefright/AwesomePlayer.cpp +26 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,7 @@ AwesomePlayer::AwesomePlayer() mAudioPlayer(NULL), mDisplayWidth(0), mDisplayHeight(0), mVideoScalingMode(NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW), mFlags(0), mExtractorFlags(0), mVideoBuffer(NULL), Loading Loading @@ -1081,6 +1082,8 @@ void AwesomePlayer::initRenderer_l() { // before creating a new one. IPCThreadState::self()->flushCommands(); // Even if set scaling mode fails, we will continue anyway setVideoScalingMode_l(mVideoScalingMode); if (USE_SURFACE_ALLOC && !strncmp(component, "OMX.", 4) && strncmp(component, "OMX.google.", 11) Loading Loading @@ -2362,6 +2365,23 @@ size_t AwesomePlayer::countTracks() const { return mExtractor->countTracks() + mTextDriver->countExternalTracks(); } status_t AwesomePlayer::setVideoScalingMode(int32_t mode) { Mutex::Autolock lock(mLock); return setVideoScalingMode_l(mode); } status_t AwesomePlayer::setVideoScalingMode_l(int32_t mode) { mVideoScalingMode = mode; if (mNativeWindow != NULL) { status_t err = native_window_set_scaling_mode( mNativeWindow.get(), mVideoScalingMode); if (err != OK) { ALOGW("Failed to set scaling mode: %d", err); } } return OK; } status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { if (NULL == reply) { return android::BAD_VALUE; Loading @@ -2372,6 +2392,12 @@ status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { return ret; } switch(methodId) { case INVOKE_ID_SET_VIDEO_SCALING_MODE: { int mode = request.readInt32(); return setVideoScalingMode(mode); } case INVOKE_ID_GET_TRACK_INFO: { return getTrackInfo(reply); Loading media/libstagefright/OMXCodec.cpp +0 −15 Original line number Diff line number Diff line Loading @@ -1683,13 +1683,6 @@ status_t OMXCodec::allocateOutputBuffersFromNativeWindow() { return err; } err = native_window_set_scaling_mode(mNativeWindow.get(), NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW); if (err != OK) { return err; } err = native_window_set_buffers_geometry( mNativeWindow.get(), def.format.video.nFrameWidth, Loading Loading @@ -1913,14 +1906,6 @@ status_t OMXCodec::pushBlankBuffersToNativeWindow() { return err; } err = native_window_set_scaling_mode(mNativeWindow.get(), NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW); if (err != NO_ERROR) { ALOGE("error pushing blank frames: set_buffers_geometry failed: %s (%d)", strerror(-err), -err); goto error; } err = native_window_set_buffers_geometry(mNativeWindow.get(), 1, 1, HAL_PIXEL_FORMAT_RGBX_8888); if (err != NO_ERROR) { Loading media/libstagefright/include/AwesomePlayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ private: int32_t mDisplayWidth; int32_t mDisplayHeight; int32_t mVideoScalingMode; uint32_t mFlags; uint32_t mExtractorFlags; Loading Loading @@ -318,6 +319,8 @@ private: Vector<TrackStat> mTracks; } mStats; status_t setVideoScalingMode(int32_t mode); status_t setVideoScalingMode_l(int32_t mode); status_t getTrackInfo(Parcel* reply) const; // when select is true, the given track is selected. Loading Loading
include/media/mediaplayer.h +1 −0 Original line number Diff line number Diff line Loading @@ -162,6 +162,7 @@ enum media_player_invoke_ids { INVOKE_ID_ADD_EXTERNAL_SOURCE_FD = 3, INVOKE_ID_SELECT_TRACK = 4, INVOKE_ID_UNSELECT_TRACK = 5, INVOKE_ID_SET_VIDEO_SCALING_MODE = 6, }; // Keep MEDIA_TRACK_TYPE_* in sync with MediaPlayer.java. Loading
media/libstagefright/AwesomePlayer.cpp +26 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,7 @@ AwesomePlayer::AwesomePlayer() mAudioPlayer(NULL), mDisplayWidth(0), mDisplayHeight(0), mVideoScalingMode(NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW), mFlags(0), mExtractorFlags(0), mVideoBuffer(NULL), Loading Loading @@ -1081,6 +1082,8 @@ void AwesomePlayer::initRenderer_l() { // before creating a new one. IPCThreadState::self()->flushCommands(); // Even if set scaling mode fails, we will continue anyway setVideoScalingMode_l(mVideoScalingMode); if (USE_SURFACE_ALLOC && !strncmp(component, "OMX.", 4) && strncmp(component, "OMX.google.", 11) Loading Loading @@ -2362,6 +2365,23 @@ size_t AwesomePlayer::countTracks() const { return mExtractor->countTracks() + mTextDriver->countExternalTracks(); } status_t AwesomePlayer::setVideoScalingMode(int32_t mode) { Mutex::Autolock lock(mLock); return setVideoScalingMode_l(mode); } status_t AwesomePlayer::setVideoScalingMode_l(int32_t mode) { mVideoScalingMode = mode; if (mNativeWindow != NULL) { status_t err = native_window_set_scaling_mode( mNativeWindow.get(), mVideoScalingMode); if (err != OK) { ALOGW("Failed to set scaling mode: %d", err); } } return OK; } status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { if (NULL == reply) { return android::BAD_VALUE; Loading @@ -2372,6 +2392,12 @@ status_t AwesomePlayer::invoke(const Parcel &request, Parcel *reply) { return ret; } switch(methodId) { case INVOKE_ID_SET_VIDEO_SCALING_MODE: { int mode = request.readInt32(); return setVideoScalingMode(mode); } case INVOKE_ID_GET_TRACK_INFO: { return getTrackInfo(reply); Loading
media/libstagefright/OMXCodec.cpp +0 −15 Original line number Diff line number Diff line Loading @@ -1683,13 +1683,6 @@ status_t OMXCodec::allocateOutputBuffersFromNativeWindow() { return err; } err = native_window_set_scaling_mode(mNativeWindow.get(), NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW); if (err != OK) { return err; } err = native_window_set_buffers_geometry( mNativeWindow.get(), def.format.video.nFrameWidth, Loading Loading @@ -1913,14 +1906,6 @@ status_t OMXCodec::pushBlankBuffersToNativeWindow() { return err; } err = native_window_set_scaling_mode(mNativeWindow.get(), NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW); if (err != NO_ERROR) { ALOGE("error pushing blank frames: set_buffers_geometry failed: %s (%d)", strerror(-err), -err); goto error; } err = native_window_set_buffers_geometry(mNativeWindow.get(), 1, 1, HAL_PIXEL_FORMAT_RGBX_8888); if (err != NO_ERROR) { Loading
media/libstagefright/include/AwesomePlayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,7 @@ private: int32_t mDisplayWidth; int32_t mDisplayHeight; int32_t mVideoScalingMode; uint32_t mFlags; uint32_t mExtractorFlags; Loading Loading @@ -318,6 +319,8 @@ private: Vector<TrackStat> mTracks; } mStats; status_t setVideoScalingMode(int32_t mode); status_t setVideoScalingMode_l(int32_t mode); status_t getTrackInfo(Parcel* reply) const; // when select is true, the given track is selected. Loading