Loading include/media/mediaplayer.h +64 −4 Original line number Diff line number Diff line Loading @@ -34,11 +34,72 @@ enum media_event_type { MEDIA_SEEK_COMPLETE = 4, MEDIA_SET_VIDEO_SIZE = 5, MEDIA_ERROR = 100, MEDIA_INFO = 200, }; typedef int media_error_type; const media_error_type MEDIA_ERROR_UNKNOWN = 1; const media_error_type MEDIA_ERROR_SERVER_DIED = 100; // Generic error codes for the media player framework. Errors are fatal, the // playback must abort. // // Errors are communicated back to the client using the // MediaPlayerListener::notify method defined below. // In this situation, 'notify' is invoked with the following: // 'msg' is set to MEDIA_ERROR. // 'ext1' should be a value from the enum media_error_type. // 'ext2' contains an implementation dependant error code to provide // more details. Should default to 0 when not used. // // The codes are distributed as follow: // 0xx: Reserved // 1xx: Android Player errors. Something went wrong inside the MediaPlayer. // 2xx: Media errors (e.g Codec not supported). There is a problem with the // media itself. // 3xx: Runtime errors. Some extraordinary condition arose making the playback // impossible. // enum media_error_type { // 0xx MEDIA_ERROR_UNKNOWN = 1, // 1xx MEDIA_ERROR_SERVER_DIED = 100, // 2xx MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK = 200, // 3xx }; // Info and warning codes for the media player framework. These are non fatal, // the playback is going on but there might be some user visible issues. // // Info and warning messages are communicated back to the client using the // MediaPlayerListener::notify method defined below. In this situation, // 'notify' is invoked with the following: // 'msg' is set to MEDIA_INFO. // 'ext1' should be a value from the enum media_info_type. // 'ext2' contains an implementation dependant error code to provide // more details. Should default to 0 when not used. // // The codes are distributed as follow: // 0xx: Reserved // 7xx: Android Player info/warning (e.g player lagging behind.) // 8xx: Media info/warning (e.g media badly interleaved.) // enum media_info_type { // 0xx MEDIA_INFO_UNKNOWN = 1, // 7xx // The video is too complex for the decoder: it can't decode frames fast // enough. Possibly only the audio plays fine at this stage. MEDIA_INFO_VIDEO_TRACK_LAGGING = 700, // 8xx // Bad interleaving means that a media has been improperly interleaved or not // interleaved at all, e.g has all the video samples first then all the audio // ones. Video is playing but a lot of disk seek may be happening. MEDIA_INFO_BAD_INTERLEAVING = 800, // The media is not seekable (e.g live stream). MEDIA_INFO_NOT_SEEKABLE = 801, }; enum media_player_states { MEDIA_PLAYER_STATE_ERROR = 0, Loading Loading @@ -141,4 +202,3 @@ private: }; // namespace android #endif // ANDROID_MEDIAPLAYER_H media/libmedia/mediaplayer.cpp +12 −1 Original line number Diff line number Diff line Loading @@ -215,6 +215,10 @@ status_t MediaPlayer::prepareAsync_l() return INVALID_OPERATION; } // TODO: In case of error, prepareAsync provides the caller with 2 error codes, // one defined in the Android framework and one provided by the implementation // that generated the error. The sync version of prepare returns only 1 error // code. status_t MediaPlayer::prepare() { LOGV("prepare"); Loading Loading @@ -512,7 +516,9 @@ void MediaPlayer::notify(int msg, int ext1, int ext2) } break; case MEDIA_ERROR: // Always log errors // Always log errors. // ext1: Media framework error code. // ext2: Implementation dependant error code. LOGE("error (%d, %d)", ext1, ext2); mCurrentState = MEDIA_PLAYER_STATE_ERROR; if (mPrepareSync) Loading @@ -524,6 +530,11 @@ void MediaPlayer::notify(int msg, int ext1, int ext2) send = false; } break; case MEDIA_INFO: // ext1: Media framework error code. // ext2: Implementation dependant error code. LOGW("info/warning (%d, %d)", ext1, ext2); break; case MEDIA_SEEK_COMPLETE: LOGV("Received seek complete"); if (mSeekPosition != mCurrentPosition) { Loading media/libmedia/mediarecorder.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -456,6 +456,11 @@ status_t MediaRecorder::stop() mCurrentState = MEDIA_RECORDER_ERROR; return ret; } // FIXME: // stop and reset are semantically different. // We treat them the same for now, and will change this in the future. doCleanUp(); mCurrentState = MEDIA_RECORDER_IDLE; return ret; } Loading include/media/PVPlayer.h +2 −2 File changed.Contains only whitespace changes. Show changes Loading
include/media/mediaplayer.h +64 −4 Original line number Diff line number Diff line Loading @@ -34,11 +34,72 @@ enum media_event_type { MEDIA_SEEK_COMPLETE = 4, MEDIA_SET_VIDEO_SIZE = 5, MEDIA_ERROR = 100, MEDIA_INFO = 200, }; typedef int media_error_type; const media_error_type MEDIA_ERROR_UNKNOWN = 1; const media_error_type MEDIA_ERROR_SERVER_DIED = 100; // Generic error codes for the media player framework. Errors are fatal, the // playback must abort. // // Errors are communicated back to the client using the // MediaPlayerListener::notify method defined below. // In this situation, 'notify' is invoked with the following: // 'msg' is set to MEDIA_ERROR. // 'ext1' should be a value from the enum media_error_type. // 'ext2' contains an implementation dependant error code to provide // more details. Should default to 0 when not used. // // The codes are distributed as follow: // 0xx: Reserved // 1xx: Android Player errors. Something went wrong inside the MediaPlayer. // 2xx: Media errors (e.g Codec not supported). There is a problem with the // media itself. // 3xx: Runtime errors. Some extraordinary condition arose making the playback // impossible. // enum media_error_type { // 0xx MEDIA_ERROR_UNKNOWN = 1, // 1xx MEDIA_ERROR_SERVER_DIED = 100, // 2xx MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK = 200, // 3xx }; // Info and warning codes for the media player framework. These are non fatal, // the playback is going on but there might be some user visible issues. // // Info and warning messages are communicated back to the client using the // MediaPlayerListener::notify method defined below. In this situation, // 'notify' is invoked with the following: // 'msg' is set to MEDIA_INFO. // 'ext1' should be a value from the enum media_info_type. // 'ext2' contains an implementation dependant error code to provide // more details. Should default to 0 when not used. // // The codes are distributed as follow: // 0xx: Reserved // 7xx: Android Player info/warning (e.g player lagging behind.) // 8xx: Media info/warning (e.g media badly interleaved.) // enum media_info_type { // 0xx MEDIA_INFO_UNKNOWN = 1, // 7xx // The video is too complex for the decoder: it can't decode frames fast // enough. Possibly only the audio plays fine at this stage. MEDIA_INFO_VIDEO_TRACK_LAGGING = 700, // 8xx // Bad interleaving means that a media has been improperly interleaved or not // interleaved at all, e.g has all the video samples first then all the audio // ones. Video is playing but a lot of disk seek may be happening. MEDIA_INFO_BAD_INTERLEAVING = 800, // The media is not seekable (e.g live stream). MEDIA_INFO_NOT_SEEKABLE = 801, }; enum media_player_states { MEDIA_PLAYER_STATE_ERROR = 0, Loading Loading @@ -141,4 +202,3 @@ private: }; // namespace android #endif // ANDROID_MEDIAPLAYER_H
media/libmedia/mediaplayer.cpp +12 −1 Original line number Diff line number Diff line Loading @@ -215,6 +215,10 @@ status_t MediaPlayer::prepareAsync_l() return INVALID_OPERATION; } // TODO: In case of error, prepareAsync provides the caller with 2 error codes, // one defined in the Android framework and one provided by the implementation // that generated the error. The sync version of prepare returns only 1 error // code. status_t MediaPlayer::prepare() { LOGV("prepare"); Loading Loading @@ -512,7 +516,9 @@ void MediaPlayer::notify(int msg, int ext1, int ext2) } break; case MEDIA_ERROR: // Always log errors // Always log errors. // ext1: Media framework error code. // ext2: Implementation dependant error code. LOGE("error (%d, %d)", ext1, ext2); mCurrentState = MEDIA_PLAYER_STATE_ERROR; if (mPrepareSync) Loading @@ -524,6 +530,11 @@ void MediaPlayer::notify(int msg, int ext1, int ext2) send = false; } break; case MEDIA_INFO: // ext1: Media framework error code. // ext2: Implementation dependant error code. LOGW("info/warning (%d, %d)", ext1, ext2); break; case MEDIA_SEEK_COMPLETE: LOGV("Received seek complete"); if (mSeekPosition != mCurrentPosition) { Loading
media/libmedia/mediarecorder.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -456,6 +456,11 @@ status_t MediaRecorder::stop() mCurrentState = MEDIA_RECORDER_ERROR; return ret; } // FIXME: // stop and reset are semantically different. // We treat them the same for now, and will change this in the future. doCleanUp(); mCurrentState = MEDIA_RECORDER_IDLE; return ret; } Loading