FreeRDP
tsmf_gstreamer.c File Reference
#include <assert.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <gst/gst.h>
#include <gst/app/gstappsrc.h>
#include <gst/app/gstappsink.h>
#include "tsmf_constants.h"
#include "tsmf_decoder.h"
#include "tsmf_platform.h"

Macros

#define SEEK_TOLERANCE   10*1000*1000
 
#define freerdp_tsmf_client_subsystem_entry   FREERDP_API freerdp_tsmf_client_decoder_subsystem_entry
 

Functions

static BOOL tsmf_gstreamer_pipeline_build (TSMFGstreamerDecoder *mdecoder)
 
static void tsmf_gstreamer_clean_up (TSMFGstreamerDecoder *mdecoder)
 
static int tsmf_gstreamer_pipeline_set_state (TSMFGstreamerDecoder *mdecoder, GstState desired_state)
 
static BOOL tsmf_gstreamer_buffer_level (ITSMFDecoder *decoder)
 
const char * get_type (TSMFGstreamerDecoder *mdecoder)
 
static void cb_child_added (GstChildProxy *child_proxy, GObject *object, TSMFGstreamerDecoder *mdecoder)
 
static void tsmf_gstreamer_enough_data (GstAppSrc *src, gpointer user_data)
 
static void tsmf_gstreamer_need_data (GstAppSrc *src, guint length, gpointer user_data)
 
static gboolean tsmf_gstreamer_seek_data (GstAppSrc *src, guint64 offset, gpointer user_data)
 
static BOOL tsmf_gstreamer_change_volume (ITSMFDecoder *decoder, UINT32 newVolume, UINT32 muted)
 
static const GstClockTime tsmf_gstreamer_timestamp_ms_to_gst (UINT64 ms_timestamp)
 
static GstBuffer * tsmf_get_buffer_from_data (const void *raw_data, gsize size)
 
static BOOL tsmf_gstreamer_set_format (ITSMFDecoder *decoder, TS_AM_MEDIA_TYPE *media_type)
 
static BOOL tsmf_gstreamer_decodeEx (ITSMFDecoder *decoder, const BYTE *data, UINT32 data_size, UINT32 extensions, UINT64 start_time, UINT64 end_time, UINT64 duration)
 
static BOOL tsmf_gstreamer_control (ITSMFDecoder *decoder, ITSMFControlMsg control_msg, UINT32 *arg)
 
static void tsmf_gstreamer_free (ITSMFDecoder *decoder)
 
static UINT64 tsmf_gstreamer_get_running_time (ITSMFDecoder *decoder)
 
static BOOL tsmf_gstreamer_update_rendering_area (ITSMFDecoder *decoder, int newX, int newY, int newWidth, int newHeight, int numRectangles, RDP_RECT *rectangles)
 
BOOL tsmf_gstreamer_ack (ITSMFDecoder *decoder, BOOL(*cb)(void *, BOOL), void *stream)
 
BOOL tsmf_gstreamer_sync (ITSMFDecoder *decoder, void(*cb)(void *), void *stream)
 
ITSMFDecoder * freerdp_tsmf_client_subsystem_entry (void)
 

Macro Definition Documentation

#define freerdp_tsmf_client_subsystem_entry   FREERDP_API freerdp_tsmf_client_decoder_subsystem_entry
#define SEEK_TOLERANCE   10*1000*1000

Function Documentation

static void cb_child_added ( GstChildProxy *  child_proxy,
GObject *  object,
TSMFGstreamerDecoder mdecoder 
)
static

Here is the caller graph for this function:

ITSMFDecoder* freerdp_tsmf_client_subsystem_entry ( void  )

Here is the call graph for this function:

const char* get_type ( TSMFGstreamerDecoder mdecoder)

Here is the caller graph for this function:

static GstBuffer* tsmf_get_buffer_from_data ( const void raw_data,
gsize  size 
)
static

Here is the caller graph for this function:

BOOL tsmf_gstreamer_ack ( ITSMFDecoder *  decoder,
BOOL(*)(void *, BOOL)  cb,
void stream 
)

Here is the caller graph for this function:

static BOOL tsmf_gstreamer_buffer_level ( ITSMFDecoder *  decoder)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL tsmf_gstreamer_change_volume ( ITSMFDecoder *  decoder,
UINT32  newVolume,
UINT32  muted 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

void tsmf_gstreamer_clean_up ( TSMFGstreamerDecoder mdecoder)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL tsmf_gstreamer_control ( ITSMFDecoder *  decoder,
ITSMFControlMsg  control_msg,
UINT32 arg 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL tsmf_gstreamer_decodeEx ( ITSMFDecoder *  decoder,
const BYTE data,
UINT32  data_size,
UINT32  extensions,
UINT64  start_time,
UINT64  end_time,
UINT64  duration 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static void tsmf_gstreamer_enough_data ( GstAppSrc *  src,
gpointer  user_data 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static void tsmf_gstreamer_free ( ITSMFDecoder *  decoder)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT64 tsmf_gstreamer_get_running_time ( ITSMFDecoder *  decoder)
static

Here is the caller graph for this function:

static void tsmf_gstreamer_need_data ( GstAppSrc *  src,
guint  length,
gpointer  user_data 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL tsmf_gstreamer_pipeline_build ( TSMFGstreamerDecoder mdecoder)
static

Here is the call graph for this function:

Here is the caller graph for this function:

int tsmf_gstreamer_pipeline_set_state ( TSMFGstreamerDecoder mdecoder,
GstState  desired_state 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static gboolean tsmf_gstreamer_seek_data ( GstAppSrc *  src,
guint64  offset,
gpointer  user_data 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL tsmf_gstreamer_set_format ( ITSMFDecoder *  decoder,
TS_AM_MEDIA_TYPE media_type 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL tsmf_gstreamer_sync ( ITSMFDecoder *  decoder,
void(*)(void *)  cb,
void stream 
)

Here is the caller graph for this function:

static const GstClockTime tsmf_gstreamer_timestamp_ms_to_gst ( UINT64  ms_timestamp)
inlinestatic

Here is the caller graph for this function:

static BOOL tsmf_gstreamer_update_rendering_area ( ITSMFDecoder *  decoder,
int  newX,
int  newY,
int  newWidth,
int  newHeight,
int  numRectangles,
RDP_RECT *  rectangles 
)
static

Here is the call graph for this function:

Here is the caller graph for this function: