VideoTrackPrivateGStreamer.h [plain text]
#pragma once
#if ENABLE(VIDEO) && USE(GSTREAMER) && ENABLE(VIDEO_TRACK)
#include "GStreamerCommon.h"
#include "TrackPrivateBaseGStreamer.h"
#include "VideoTrackPrivate.h"
#include <gst/gst.h>
#include <wtf/WeakPtr.h>
namespace WebCore {
class MediaPlayerPrivateGStreamer;
class VideoTrackPrivateGStreamer final : public VideoTrackPrivate, public TrackPrivateBaseGStreamer {
public:
static Ref<VideoTrackPrivateGStreamer> create(WeakPtr<MediaPlayerPrivateGStreamer> player, gint index, GRefPtr<GstPad> pad)
{
return adoptRef(*new VideoTrackPrivateGStreamer(player, index, pad));
}
#if GST_CHECK_VERSION(1, 10, 0)
static Ref<VideoTrackPrivateGStreamer> create(WeakPtr<MediaPlayerPrivateGStreamer> player, gint index, GRefPtr<GstStream> stream)
{
return adoptRef(*new VideoTrackPrivateGStreamer(player, index, stream));
}
Kind kind() const final;
#endif
void disconnect() override;
void markAsActive();
void setSelected(bool) override;
void setActive(bool enabled) override { setSelected(enabled); }
int trackIndex() const override { return m_index; }
AtomicString id() const override { return m_id; }
AtomicString label() const override { return m_label; }
AtomicString language() const override { return m_language; }
private:
VideoTrackPrivateGStreamer(WeakPtr<MediaPlayerPrivateGStreamer>, gint index, GRefPtr<GstPad>);
#if GST_CHECK_VERSION(1, 10, 0)
VideoTrackPrivateGStreamer(WeakPtr<MediaPlayerPrivateGStreamer>, gint index, GRefPtr<GstStream>);
#endif
AtomicString m_id;
WeakPtr<MediaPlayerPrivateGStreamer> m_player;
};
}
#endif // ENABLE(VIDEO) && USE(GSTREAMER) && ENABLE(VIDEO_TRACK)