#include <utility>
#include <vector>
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
#include "mixer/mixer.h"
#endif
* EsPlusPlayer::SetDisplayVisible()
*/
virtual bool SetDisplay(const DisplayType& type, void* obj) { return false; }
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
/**
* @brief Set the video display
* @remarks We are not supporting changing display.
export CFLAGS+=" -DIS_AUDIO_PRODUCT"
export CXXFLAGS+=" -DIS_AUDIO_PRODUCT"
%define PRODUCT_TYPE_AUDIO yes
+%define USE_MIXER no
%else
%define PRODUCT_TYPE_AUDIO no
+%define USE_MIXER yes
+export CFLAGS+=" -DUSE_MIXER"
+export CXXFLAGS+=" -DUSE_MIXER"
%endif
+#TODO: check AV type is used or not
%if ("%{_vd_cfg_product_type}" == "AV")
export CFLAGS+=" -DIS_AV_PRODUCT"
export CXXFLAGS+=" -DIS_AV_PRODUCT"
%endif
+#TODO: AUDIO type is used to enable fmm mode API impl.
%if ("%{_vd_cfg_product_type}" == "AUDIO")
export CFLAGS+=" -DSOUNDBAR_PRODUCT"
export CXXFLAGS+=" -DSOUNDBAR_PRODUCT"
%if ("%{sec_buildconf_product_lite_tizen}" == "n")
%if %{with ESPLUSPLAYER_UT}
-%cmake . -DESPLUSPLAYER_BUILD_UT=ON -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO
+%cmake . -DESPLUSPLAYER_BUILD_UT=ON -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO -DUSE_MIXER=%USE_MIXER
%else
-%cmake . -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO
+%cmake . -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO -DUSE_MIXER=%USE_MIXER
%endif
%else
-%cmake . -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO
+%cmake . -DPRODUCT_TYPE_AUDIO=%PRODUCT_TYPE_AUDIO -DUSE_MIXER=%USE_MIXER
%endif
make %{?jobs:-j%jobs}
%license LICENSE.APLv2
%{_libdir}/libespplayer-core.so
%{_libdir}/libesplusplayer.so
-%if ("%{_vd_cfg_product_type}" != "AUDIO")
+%if ("%{USE_MIXER}" == "yes")
%{_libdir}/libmixer.so
%endif
ADD_SUBDIRECTORY(plusplayer-core)
ADD_SUBDIRECTORY(esplusplayer)
-IF(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+IF(${USE_MIXER} STREQUAL "yes")
ADD_SUBDIRECTORY(mixer)
-ENDIF(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+ENDIF(${USE_MIXER} STREQUAL "yes")
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
SET(${fw_name}_LDFLAGS)
-IF(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+IF(${USE_MIXER} STREQUAL "yes")
SET(ADD_LIBS
"espplayer-core"
"trackrenderer"
"mixer"
)
-ELSE(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+ELSE(${USE_MIXER} STREQUAL "yes")
SET(ADD_LIBS
"espplayer-core"
"trackrenderer"
)
-ENDIF(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+ENDIF(${USE_MIXER} STREQUAL "yes")
SET(${fw_name}_CXXFLAGS "-Wall -Werror -std=c++17 -fPIC -fno-lto -Wl,-z,relro -fstack-protector -DEFL_BETA_API_SUPPORT")
#include "core/decoderinputbuffer.h"
#include "core/kpi.h"
#include "core/trackrendereradapter.h"
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
#include "mixer/mixerticket.h"
#include "mixer/mixerticket_eventlistener.h"
#endif
void SetAppInfoEx(const PlayerAppInfoEx& app_info) override;
bool SetPlaybackRate(const double rate, const bool audio_mute) override;
bool SetDisplay(const DisplayType& type, void* obj) override;
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
bool SetDisplay(const DisplayType& type, MixerTicket* handle) override;
#endif
bool SetDisplay(const DisplayType& type, void* ecore_wl2_window, const int x,
void GetSrcQueueCurrentSize_(const TrackType& type, uint64_t* byte_size,
uint64_t* time_size);
kpi::EsCodecLoggerKeys MakeKpiKeys_();
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
bool PrepareVideoMixingMode_(std::vector<Track>* tracks);
#endif
void InitValuesFromIni_();
void OnVideoHighLatency() override;
void OnAudioHighLatency() override;
void OnVideoFrameDropped(const uint64_t& count) override;
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
void OnMediaPacketVideoRawDecoded(
const DecodedVideoRawModePacket& packet) override;
#endif
EsPlayer* handler_ = nullptr;
}; // class TrackRendererEventListener
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
class MixerListener : public MixerTicketEventListener {
public:
explicit MixerListener(EsPlayer* handler) : handler_(handler) {
std::unique_ptr<TrackRendererEventListener> trackrenderer_event_listener_{
new TrackRendererEventListener(this)};
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
std::unique_ptr<MixerListener> mixer_event_listener_{new MixerListener(this)};
#endif
std::unique_ptr<TrackRendererAdapter> trackrenderer_;
SrcQueueSize src_queue_size_;
std::string caf_unique_number;
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
std::unique_ptr<MixerTicket> mixer_ticket_;
bool is_audio_focused_ = true;
Geometry mixerticket_roi_;
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (!enable_audio_pipeline_handle_ && type == StreamType::kAudio) {
LOG_ERROR_P(
this, "can't deactivate audio stream, mixer will control audio stream");
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (!enable_audio_pipeline_handle_ && type == StreamType::kAudio) {
LOG_ERROR_P(this,
"can't activate audio stream, mixer will control audio stream");
internal::MakeTrustZoneTracks(track_, app_info_.id);
}
SetTrackRendererAttributes_();
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (type == StreamType::kVideo) {
if (mixer_ticket_)
trackrenderer_->SetVideoFrameBufferType(
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (!enable_audio_pipeline_handle_) {
LOG_ERROR_P(
this, "can't deactivate audio stream, mixer will control audio stream");
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (!enable_audio_pipeline_handle_) {
LOG_ERROR_P(this,
"can't activate audio stream, mixer will control audio stream");
const auto start = performance_checker::Start();
if (trackrenderer_) trackrenderer_->Stop();
ResetContextForStop_();
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (mixer_ticket_) mixer_ticket_.reset();
#endif
performance_checker::End(start, "Stop");
}
// LCOV_EXCL_START
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
bool EsPlayer::PrepareVideoMixingMode_(std::vector<Track>* tracks) {
LOG_ENTER_P(this);
mixer_ticket_->Prepare();
return false;
}
trackrenderer_->SetIniProperty(es_conf::ini_property);
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (mixer_ticket_) {
trackrenderer_->SetVideoFrameBufferType(
VideoFrameTypeStrategyPtr(new RawVideoFrameTypeStrategy()));
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (mixer_ticket_) mixer_ticket_.reset();
#endif
return trackrenderer_->SetDisplay(type, obj);
}
// LCOV_EXCL_START
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
bool EsPlayer::SetDisplay(const DisplayType& type, MixerTicket* handle) {
if (type == DisplayType::kMixer) {
LOG_INFO_P(this, "Create MixerTicket");
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (mixer_ticket_) mixer_ticket_.reset();
#endif
return trackrenderer_->SetDisplay(type, ecore_wl2_window, x, y, w, h);
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (mixer_ticket_) mixer_ticket_.reset();
#endif
return trackrenderer_->SetDisplaySubsurface(type, ecore_wl2_subsurface, x, y,
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (mixer_ticket_) mixer_ticket_.reset();
#endif
return trackrenderer_->SetDisplay(type, surface_id, x, y, w, h);
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
mixerticket_roi_ = roi;
if (mixer_ticket_) return true;
#endif
state_manager_.GetStateEnum());
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (mixer_ticket_) {
LOG_INFO_P(this, "mixed player is_visible [%d] -> [%d]", is_visible_,
is_visible);
"type is scale");
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (!enable_rsc_alloc_handle_) {
LOG_ERROR_P(this, "player can't control resource type, mixer will do it");
return false;
LOG_ERROR_P(this, "Invalid State");
return false;
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
if (!enable_rsc_alloc_handle_) {
LOG_ERROR_P(this, "player can't control resource type, mixer will do it");
return false;
handler_->eventlistener_->OnMediaPacketVideoDecoded(packet);
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
void EsPlayer::TrackRendererEventListener::OnMediaPacketVideoRawDecoded(
const DecodedVideoRawModePacket& packet) {
if (handler_->mixer_ticket_ == nullptr) return;
#include "core/utils/plusplayer_log.h"
#include "esplayer/decoded_pkt_list.h"
#include "esplusplayer_capi/esplusplayer_internal.h"
-#ifndef IS_TOMATO
+#if defined(USE_MIXER) && !defined(IS_TOMATO)
#include "mixer_capi/mixer_capi.h"
#endif
#include "esplusplayer/appinfo.h"
LOG_INFO_P(cast_(handle), "display type : %d, object : %p",
static_cast<int>(type), window);
-#if (!IS_AUDIO_PRODUCT) && (!IS_TOMATO)
+#if defined(USE_MIXER) && !defined(IS_TOMATO)
if (type == ESPLUSPLAYER_DISPLAY_TYPE_MIXER) {
mixer_handle mixer_h = window;
esplusplayer::MixerTicket* ticket =
SET(${fw_name}_LDFLAGS)
-IF(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+IF(${USE_MIXER} STREQUAL "yes")
SET(ADD_LIBS
"espplayer-core"
"trackrenderer"
"mixer"
"gstvideo-1.0"
)
-ELSE(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+ELSE(${USE_MIXER} STREQUAL "yes")
SET(ADD_LIBS
"espplayer-core"
"trackrenderer"
"esplusplayer"
"gstvideo-1.0"
)
-ENDIF(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+ENDIF(${USE_MIXER} STREQUAL "yes")
SET(dependents "gstreamer-1.0 glib-2.0 gstreamer-plugins-base-1.0 gstreamer-app-1.0 dlog gtest gmock"
"boost"
src/tc_regression.cpp
)
-IF(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+IF(${USE_MIXER} STREQUAL "yes")
SET(UT_MIXER_SRC
src/mixer/constant.cpp
src/mixer/matcher.cpp
src/mixer/ut_videoplane.cpp
)
#ADD_EXECUTABLE(${fw_name} ${UT_SRC} ${UT_MIXER_SRC})
-#ELSE(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+#ELSE(${USE_MIXER} STREQUAL "yes")
#ADD_EXECUTABLE(${fw_name} ${UT_SRC})
-ENDIF(${PRODUCT_TYPE_AUDIO} STREQUAL "no")
+ENDIF(${USE_MIXER} STREQUAL "yes")
ADD_EXECUTABLE(${fw_name} ${UT_SRC})
LINK_DIRECTORIES(${LIB_INSTALL_DIR})
const char* GetCurrentTestName(void);
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
#if 0
esplusplayer::PlusPlayer::Ptr GetOpenedMixPlusPlayer(std::string& uri,
return ::testing::UnitTest::GetInstance()->current_test_info()->name();
}
-#ifndef IS_AUDIO_PRODUCT
+#ifdef USE_MIXER
#if 0
esplusplayer::PlusPlayer::Ptr Utility::GetOpenedMixPlusPlayer(std::string& uri,