#include "media/base/tizen/media_source_player_capi.h"
#include "third_party/libyuv/include/libyuv.h"
-#if defined(TIZEN_VIDEO_HOLE)
-#include <Ecore_Evas.h>
-#include <Ecore_X.h>
-#include <X11/extensions/shape.h>
-#include <X11/Xatom.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#endif
-
namespace {
const int kDurationUpdateInterval = 100;
}
}
-#if !defined(TIZEN_VIDEO_HOLE)
static void OnMediaPacketDecoded(media_packet_h packet, void* data) {
if (!packet) {
LOG(ERROR) << "media_packet handle is null";
MediaSourcePlayerCapi* player = static_cast<MediaSourcePlayerCapi*>(data);
player->OnMediaPacketUpdated(packet);
}
-#endif
void OnPlaybackCompleteCB(void* user_data) {
LOG(INFO) << "On playback complete Call back";
should_feed_video_(false),
seek_offset_(0),
seek_state_(MEDIA_SEEK_NONE),
-#if defined(TIZEN_VIDEO_HOLE)
- native_window_(0),
-#else
media_packet_(NULL),
-#endif
audio_format_(NULL),
video_format_(NULL),
weak_factory_(this) {
return;
}
-#if defined(TIZEN_VIDEO_HOLE)
- ecore_x_init(0);
- Display* native_display = static_cast<Display*>(ecore_x_display_get());
-
- native_window_ = XCreateSimpleWindow(native_display,
- manager()->GetEcoreXWindow(),
- 10, 10, 10, 10, 0,
- BlackPixel(native_display, 0),
- WhitePixel(native_display, 0));
- XSetWindowBackgroundPixmap(native_display, native_window_, None);
- XMapRaised(native_display, native_window_);
- XFlush(native_display);
- XSync(native_display, FALSE);
-
- ret = player_set_display(player_,
- PLAYER_DISPLAY_TYPE_OVERLAY,
- GET_DISPLAY(native_window_));
-
- if (ret != PLAYER_ERROR_NONE) {
- HandleError(blink::WebMediaPlayer::NetworkStateFormatError);
- return;
- }
-#else // VIDEO_HOLE
ret = player_set_media_packet_video_frame_decoded_cb(
player_, OnMediaPacketDecoded, this);
if (ret != PLAYER_ERROR_NONE) {
HandlePlayerError(ret, "player_set_media_packet_video_frame_decoded_cb");
return;
}
-#endif
player_set_display_visible(player_, true);
OnReadDemuxedData(media::DemuxerStream::VIDEO);
}
-#if defined(TIZEN_VIDEO_HOLE)
-void MediaSourcePlayerCapi::PlatformSurfaceUpdated() {
- manager()->OnPlatformSurfaceUpdated(GetPlayerId(), 0, 0,
- width_, height_);
-}
-
-void MediaSourcePlayerCapi::MoveAndresizeWindow(int x, int y, int width,
- int height) {
- if (!native_window_)
- return;
-
- Display* native_display = static_cast<Display*>(ecore_x_display_get());
- if (!XMoveResizeWindow(
- native_display, native_window_, x, y, width, height)) {
- return;
- }
-
- XFlush(native_display);
- XSync(native_display, false);
-}
-#else
void MediaSourcePlayerCapi::OnMediaPacketUpdated(media_packet_h packet) {
task_runner_->PostTask(
FROM_HERE, base::Bind(&MediaSourcePlayerCapi::DeliverMediaPacket,
weak_factory_.GetWeakPtr(), packet));
}
-#endif // TIZEN_VIDEO_HOLE
void MediaSourcePlayerCapi::SetVolume(double volume) {
if (GetPlayerState() <= PLAYER_STATE_IDLE)
void OnPrepareComplete();
void OnPlayerError(int error_code, const char* msg);
- // For handleing video buffer
-#if defined(TIZEN_VIDEO_HOLE)
- void PlatformSurfaceUpdated();
- void MoveAndresizeWindow(int x, int y, int width, int height);
-#else
void OnMediaPacketUpdated(media_packet_h packet);
-#endif
protected:
void Release() override;
double seek_offset_;
MediaSeekState seek_state_;
-#if defined(TIZEN_VIDEO_HOLE)
- unsigned native_window_;
-#else
media_packet_h media_packet_;
-#endif
// FIXME(Venu): Make them a smart pointer to avoid leak.
media_format_h audio_format_;