|
BitmapToolkit Scol plugin
|
This class provides media playback functionality. More...
#include <MediaPlayer.h>
Public Types | |
| enum | AudioFormats { AUDIO_8BIT_MONO , AUDIO_8BIT_STEREO , AUDIO_16BIT_MONO , AUDIO_16BIT_STEREO } |
| enum | State { STOPPED , PLAYING , PAUSED } |
Public Member Functions | |
| MediaPlayer () | |
| Create an empty player. | |
| virtual | ~MediaPlayer () |
| void | Open (std::string path) |
| Open the media file at the given path. If a media was already loaded, it will be replaced by the new one. | |
| void | OpenUrl (std::string url) |
| Open the media at the given URL. | |
| void | Close () |
| Close the current media file, if any. | |
| bool | IsReady () |
| Check whether the player has a media ready to play. | |
| State | GetState () |
| Get the current state of this player. | |
| bool | HasAudio () |
| Check whether the player has an audio track selected and ready to play. | |
| bool | HasVideo () |
| Check whether the player has a video track selected and ready to play. | |
| long | GetLength () |
| Get the length of the current media stream. | |
| bool | IsSeekable () |
| Check whether the file or stream is seekable. | |
| bool | IsLiveStream () |
| Check whether the current media is a live stream. | |
| void | GetSize (int &width, int &height) |
| Get the current size of the video (after resize) | |
| void | GetSourceSize (int &width, int &height) |
| Get the original size of the video (before resize) | |
| void | SetSize (int width, int height) |
| Set the target size for the video. | |
| void | SetAudioFormat (AudioFormats format, int sampleRate) |
| Set the output format for audio. | |
| void | Play (long startPosition=0) |
| Play/resume the currently loaded media. | |
| void | Pause () |
| Pause the current media playback. | |
| void | Stop () |
| Stop media playback. | |
| void | SetLoop (bool loop) |
| Set whether media playback should loop or not. | |
| void | SetCurrentTime (long time) |
| Set the current playback time of the media. | |
| long | GetCurrentTime () |
| Get the current playback time of the media. | |
| bool | GetFrame (ObjBitmap *scolBitmap) |
| Get the current decoded video frame. | |
| bool | GetFrame (cv::Mat &buffer) |
| Get the current decoded video frame. | |
| cv::Mat | GetFrame () |
| Get the current decoded video frame. | |
| int | GetAudioThreaded (char *destBuffer, size_t length) |
| Get decoded audio data from the media (using the dedicated audio thread). | |
| int | SetVideoStream (int streamIndex=-1) |
| Select the video stream to play from the current file. | |
| int | SetAudioStream (int streamIndex=-1) |
| Select the audio stream to play from the current file. | |
| std::vector< std::string > | ListStreams (AVMediaType type) |
Static Public Member Functions | |
| static void | InitFFmpeg () |
| Init FFmpeg functionalities. Call this before any other MediaPlayer functions. | |
| static void | DeInitFFmpeg () |
| Free resources allocated by init. Call this when you're done with MediaPlayer. | |
| static void | SetGlobalPause (bool pause) |
| Pause/unpause every MediaPlayer. | |
| static bool | IsValidPlayer (MediaPlayer *player) |
| Check whether a media player is still valid. | |
Static Public Attributes | |
| static const int | VIDEO_SIZE_AUTO = 0 |
| static const int | STREAM_UNDEFINED = -1 |
| static const int | BUFFER_COUNT = 2 |
| static const AVPixelFormat | DEST_PIXEL_FORMAT = AV_PIX_FMT_BGR24 |
| static const AVRational | TIME_BASE = { 1, 1000 } |
| static const AVRational | FF_AV_TIME_BASE_Q = { 1, AV_TIME_BASE } |
| static const int | AV_SYNC_THRESHOLD = 16 |
| static const int | MAX_READ_ERRORS = 30 |
Detailed Description
This class provides media playback functionality.
Definition at line 52 of file MediaPlayer.h.
Member Enumeration Documentation
◆ AudioFormats
| Enumerator | |
|---|---|
| AUDIO_8BIT_MONO | |
| AUDIO_8BIT_STEREO | |
| AUDIO_16BIT_MONO | |
| AUDIO_16BIT_STEREO | |
Definition at line 71 of file MediaPlayer.h.
◆ State
| enum MediaPlayer::State |
| Enumerator | |
|---|---|
| STOPPED | |
| PLAYING | |
| PAUSED | |
Definition at line 79 of file MediaPlayer.h.
Constructor & Destructor Documentation
◆ MediaPlayer()
| MediaPlayer::MediaPlayer | ( | ) |
Create an empty player.
Definition at line 110 of file MediaPlayer.cpp.
◆ ~MediaPlayer()
|
virtual |
Definition at line 161 of file MediaPlayer.cpp.
Member Function Documentation
◆ Close()
| void MediaPlayer::Close | ( | ) |
Close the current media file, if any.
Definition at line 329 of file MediaPlayer.cpp.
◆ DeInitFFmpeg()
|
static |
Free resources allocated by init. Call this when you're done with MediaPlayer.
Definition at line 76 of file MediaPlayer.cpp.
◆ GetAudioThreaded()
| int MediaPlayer::GetAudioThreaded | ( | char * | destBuffer, |
| size_t | length | ||
| ) |
Get decoded audio data from the media (using the dedicated audio thread).
- Parameters
-
destBuffer Buffer where the audio data will be stored. length How much data to retrieve, in bytes.
- Returns
- Number of bytes that were actually written to the buffer.
Definition at line 1481 of file MediaPlayer.cpp.
◆ GetCurrentTime()
| long MediaPlayer::GetCurrentTime | ( | ) |
Get the current playback time of the media.
- Returns
- Time in milliseconds.
Definition at line 590 of file MediaPlayer.cpp.
◆ GetFrame() [1/3]
| cv::Mat MediaPlayer::GetFrame | ( | ) |
Get the current decoded video frame.
- Returns
- cv::Mat buffer if frame was retrieved, empty frame if no new frame available.
Definition at line 648 of file MediaPlayer.cpp.
◆ GetFrame() [2/3]
| bool MediaPlayer::GetFrame | ( | cv::Mat & | buffer | ) |
Get the current decoded video frame.
- Parameters
-
cv::Mat buffer where the frame will be copied.
- Returns
- True if a new frame was retrieved, false if no new frame available.
Definition at line 624 of file MediaPlayer.cpp.
◆ GetFrame() [3/3]
| bool MediaPlayer::GetFrame | ( | ObjBitmap * | scolBitmap | ) |
Get the current decoded video frame.
- Parameters
-
scolBitmap Bitmap where the frame will be copied.
- Returns
- True if a new frame was retrieved, false if no new frame available.
Definition at line 595 of file MediaPlayer.cpp.
◆ GetLength()
| long MediaPlayer::GetLength | ( | ) |
Get the length of the current media stream.
- Returns
- Length of the stream in milliseconds, -1 if unknown
Definition at line 370 of file MediaPlayer.cpp.
◆ GetSize()
| void MediaPlayer::GetSize | ( | int & | width, |
| int & | height | ||
| ) |
Get the current size of the video (after resize)
- Parameters
-
[out] width Width of the video in pixels [out] height Height of the video in pixels
Definition at line 398 of file MediaPlayer.cpp.
◆ GetSourceSize()
| void MediaPlayer::GetSourceSize | ( | int & | width, |
| int & | height | ||
| ) |
Get the original size of the video (before resize)
- Parameters
-
[out] width Width of the video in pixels [out] height Height of the video in pixels
Definition at line 409 of file MediaPlayer.cpp.
◆ GetState()
| MediaPlayer::State MediaPlayer::GetState | ( | ) |
Get the current state of this player.
- Returns
- Either STOPPED(0), PLAYING(1) or PAUSED(2).
Definition at line 350 of file MediaPlayer.cpp.
◆ HasAudio()
| bool MediaPlayer::HasAudio | ( | ) |
Check whether the player has an audio track selected and ready to play.
- Returns
- True if it is the case.
Definition at line 360 of file MediaPlayer.cpp.
◆ HasVideo()
| bool MediaPlayer::HasVideo | ( | ) |
Check whether the player has a video track selected and ready to play.
- Returns
- True if it is the case.
Definition at line 365 of file MediaPlayer.cpp.
◆ InitFFmpeg()
|
static |
Init FFmpeg functionalities. Call this before any other MediaPlayer functions.
Definition at line 69 of file MediaPlayer.cpp.
◆ IsLiveStream()
| bool MediaPlayer::IsLiveStream | ( | ) |
Check whether the current media is a live stream.
- Returns
- True if the source is a live stream.
Definition at line 392 of file MediaPlayer.cpp.
◆ IsReady()
| bool MediaPlayer::IsReady | ( | ) |
Check whether the player has a media ready to play.
- Returns
- True if a media is loaded and a stream selected.
Definition at line 345 of file MediaPlayer.cpp.
◆ IsSeekable()
| bool MediaPlayer::IsSeekable | ( | ) |
Check whether the file or stream is seekable.
- Returns
- True if the source is seekable.
Definition at line 380 of file MediaPlayer.cpp.
◆ IsValidPlayer()
|
static |
Check whether a media player is still valid.
- Parameters
-
player Pointer to the MediaPlayer object to be checked.
- Returns
- True if player is present in the global player list, false otherwise.
Definition at line 99 of file MediaPlayer.cpp.
◆ ListStreams()
| std::vector< std::string > MediaPlayer::ListStreams | ( | AVMediaType | type | ) |
Definition at line 788 of file MediaPlayer.cpp.
◆ Open()
| void MediaPlayer::Open | ( | std::string | path | ) |
Open the media file at the given path. If a media was already loaded, it will be replaced by the new one.
- Parameters
-
path Path to the media file.
Definition at line 239 of file MediaPlayer.cpp.
◆ OpenUrl()
| void MediaPlayer::OpenUrl | ( | std::string | url | ) |
Open the media at the given URL.
- Parameters
-
url Url of the media. close Whether to close the currently open file or not (used internally). Should be left to true.
Definition at line 321 of file MediaPlayer.cpp.
◆ Pause()
| void MediaPlayer::Pause | ( | ) |
Pause the current media playback.
Definition at line 514 of file MediaPlayer.cpp.
◆ Play()
| void MediaPlayer::Play | ( | long | startPosition = 0 | ) |
Play/resume the currently loaded media.
- Parameters
-
startPosition In case the player is stopped, the position in milliseconds at which we want it to start. Defaults to 0 (beginning).
Definition at line 487 of file MediaPlayer.cpp.
◆ SetAudioFormat()
| void MediaPlayer::SetAudioFormat | ( | AudioFormats | format, |
| int | sampleRate | ||
| ) |
Set the output format for audio.
- Parameters
-
format Sample format with channel layout (one of AUDIO_*) sampleRate Frequency in Hz
Definition at line 432 of file MediaPlayer.cpp.
◆ SetAudioStream()
| int MediaPlayer::SetAudioStream | ( | int | streamIndex = -1 | ) |
Select the audio stream to play from the current file.
- Parameters
-
streamIndex Index of the desired stream. Leave to -1 for default stream.
- Returns
- The selected stream.
Definition at line 703 of file MediaPlayer.cpp.
◆ SetCurrentTime()
| void MediaPlayer::SetCurrentTime | ( | long | time | ) |
Set the current playback time of the media.
- Parameters
-
time Time in milliseconds to seek to.
Definition at line 561 of file MediaPlayer.cpp.
◆ SetGlobalPause()
|
static |
Pause/unpause every MediaPlayer.
- Parameters
-
pause True to pause, false to unpause.
Definition at line 81 of file MediaPlayer.cpp.
◆ SetLoop()
| void MediaPlayer::SetLoop | ( | bool | loop | ) |
Set whether media playback should loop or not.
- Parameters
-
loop true to loop playback, false to stop on media end.
Definition at line 556 of file MediaPlayer.cpp.
◆ SetSize()
| void MediaPlayer::SetSize | ( | int | width, |
| int | height | ||
| ) |
Set the target size for the video.
- Parameters
-
width Desired width in pixels height Desired height in pixels
Definition at line 420 of file MediaPlayer.cpp.
◆ SetVideoStream()
| int MediaPlayer::SetVideoStream | ( | int | streamIndex = -1 | ) |
Select the video stream to play from the current file.
- Parameters
-
streamIndex Index of the desired stream. Leave to -1 for default stream.
- Returns
- The selected stream.
Definition at line 662 of file MediaPlayer.cpp.
◆ Stop()
| void MediaPlayer::Stop | ( | ) |
Stop media playback.
Definition at line 533 of file MediaPlayer.cpp.
Member Data Documentation
◆ AV_SYNC_THRESHOLD
|
static |
Definition at line 66 of file MediaPlayer.h.
◆ BUFFER_COUNT
|
static |
Definition at line 57 of file MediaPlayer.h.
◆ DEST_PIXEL_FORMAT
|
static |
Definition at line 58 of file MediaPlayer.h.
◆ FF_AV_TIME_BASE_Q
|
static |
Definition at line 53 of file MediaPlayer.h.
◆ MAX_READ_ERRORS
|
static |
Definition at line 69 of file MediaPlayer.h.
◆ STREAM_UNDEFINED
|
static |
Definition at line 56 of file MediaPlayer.h.
◆ TIME_BASE
|
static |
Definition at line 51 of file MediaPlayer.h.
◆ VIDEO_SIZE_AUTO
|
static |
Definition at line 55 of file MediaPlayer.h.
The documentation for this class was generated from the following files:
- include/MediaPlayer.h
- src/MediaPlayer.cpp
Generated by