mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-26 07:38:09 +00:00
Add an implementation to LinphonePlayer
This commit is contained in:
parent
c9a487aa24
commit
90933e5e36
4 changed files with 78 additions and 1 deletions
|
|
@ -62,6 +62,7 @@ liblinphone_la_SOURCES=\
|
|||
call_log.c \
|
||||
call_params.c \
|
||||
player.c \
|
||||
fileplayer.c \
|
||||
$(GITVERSION_FILE)
|
||||
|
||||
if BUILD_UPNP
|
||||
|
|
|
|||
60
coreapi/fileplayer.c
Normal file
60
coreapi/fileplayer.c
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#include "private.h"
|
||||
#include <mediastreamer2/fileplayer.h>
|
||||
#include <mediastreamer2/mssndcard.h>
|
||||
|
||||
static int file_player_open(LinphonePlayer *obj, const char *filename);
|
||||
static int file_player_start(LinphonePlayer *obj);
|
||||
static int file_player_pause(LinphonePlayer *obj);
|
||||
static int file_player_seek(LinphonePlayer *obj, int time_ms);
|
||||
static MSPlayerState file_player_get_state(LinphonePlayer *obj);
|
||||
static void file_player_close(LinphonePlayer *obj);
|
||||
static void file_player_eof_callback(void *user_data);
|
||||
|
||||
LinphonePlayer *linphone_core_create_file_player(LinphoneCore *lc, MSSndCard *snd_card, const char *video_out) {
|
||||
LinphonePlayer *obj = ms_new0(LinphonePlayer, 1);
|
||||
if(snd_card == NULL) snd_card = lc->sound_conf.play_sndcard;
|
||||
if(video_out == NULL) video_out = linphone_core_get_video_display_filter(lc);
|
||||
obj->impl = ms_file_player_new(snd_card, video_out);
|
||||
obj->open = file_player_open;
|
||||
obj->start = file_player_start;
|
||||
obj->pause = file_player_pause;
|
||||
obj->seek = file_player_seek;
|
||||
obj->get_state = file_player_get_state;
|
||||
obj->close = file_player_close;
|
||||
ms_file_player_set_eof_callback((MSFilePlayer *)obj->impl, file_player_eof_callback, obj);
|
||||
return obj;
|
||||
}
|
||||
|
||||
void file_player_destroy(LinphonePlayer *obj) {
|
||||
ms_file_player_free((MSFilePlayer *)obj->impl);
|
||||
}
|
||||
|
||||
static int file_player_open(LinphonePlayer *obj, const char *filename) {
|
||||
return ms_file_player_open((MSFilePlayer *)obj->impl, filename) ? 0 : -1;
|
||||
}
|
||||
|
||||
static int file_player_start(LinphonePlayer *obj) {
|
||||
return ms_file_player_start((MSFilePlayer *)obj->impl) ? 0 : -1;
|
||||
}
|
||||
|
||||
static int file_player_pause(LinphonePlayer *obj) {
|
||||
ms_file_player_pause((MSFilePlayer *)obj->impl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int file_player_seek(LinphonePlayer *obj, int time_ms) {
|
||||
return ms_file_player_seek((MSFilePlayer *)obj->impl, time_ms) ? 0 : -1;
|
||||
}
|
||||
|
||||
static MSPlayerState file_player_get_state(LinphonePlayer *obj) {
|
||||
return ms_file_player_get_state((MSFilePlayer *)obj->impl);
|
||||
}
|
||||
|
||||
static void file_player_close(LinphonePlayer *obj) {
|
||||
ms_file_player_close((MSFilePlayer *)obj->impl);
|
||||
}
|
||||
|
||||
static void file_player_eof_callback(void *user_data) {
|
||||
LinphonePlayer *obj = (LinphonePlayer *)user_data;
|
||||
obj->cb(obj, obj->user_data);
|
||||
}
|
||||
|
|
@ -594,6 +594,22 @@ int linphone_player_seek(LinphonePlayer *obj, int time_ms);
|
|||
MSPlayerState linphone_player_get_state(LinphonePlayer *obj);
|
||||
void linphone_player_close(LinphonePlayer *obj);
|
||||
|
||||
/**
|
||||
* @brief Create an independent media file player.
|
||||
* This player support WAVE and MATROSKA formats.
|
||||
* @param lc A LinphoneCore
|
||||
* @param snd_card Playback sound card. If NULL, the sound card set in LinphoneCore will be used
|
||||
* @param video_out Video display. If NULL, the video display set in LinphoneCore will be used
|
||||
* @return A pointer on the new instance. NULL if faild.
|
||||
*/
|
||||
LINPHONE_PUBLIC LinphonePlayer *linphone_core_create_file_player(LinphoneCore *lc, MSSndCard *snd_card, const char *video_out);
|
||||
|
||||
/**
|
||||
* @brief Destroy a file player
|
||||
* @param obj File player to destroy
|
||||
*/
|
||||
LINPHONE_PUBLIC void file_player_destroy(LinphonePlayer *obj);
|
||||
|
||||
/**
|
||||
* LinphoneCallState enum represents the different state a call can reach into.
|
||||
* The application is notified of state changes through the LinphoneCoreVTable::call_state_changed callback.
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 895c19eda9a33d4086d4fe3b33505fb40fbd1019
|
||||
Subproject commit cc5da3abb97767b04ffb1bcd6b246be556aa54f1
|
||||
Loading…
Add table
Reference in a new issue