raop.c File Reference

Include dependency graph for raop.c:


Data Structures

struct  sout_stream_sys_t
struct  sout_stream_id_t

Defines

#define RAOP_PORT   5000
#define RAOP_USER_AGENT   "VLC " VERSION
#define SOUT_CFG_PREFIX   "sout-raop-"
#define HOST_TEXT   N_("Host")
#define HOST_LONGTEXT   N_("Hostname or IP address of target device")
#define VOLUME_TEXT   N_("Volume")
#define VOLUME_LONGTEXT
#define PASSWORD_TEXT   N_("Password")
#define PASSWORD_LONGTEXT   N_("Password for target device.")
#define PASSWORD_FILE_TEXT   N_("Password file")
#define PASSWORD_FILE_LONGTEXT   N_("Read password for target device from file.")
#define CheckForGcryptError(p_this, i_gcrypt_err)   CheckForGcryptErrorWithLine( p_this, i_gcrypt_err, __LINE__ )

Enumerations

enum  jack_type_t { JACK_TYPE_NONE = 0, JACK_TYPE_ANALOG, JACK_TYPE_DIGITAL }

Functions

static int Open (vlc_object_t *)
 Probes and initializes.
static void Close (vlc_object_t *)
 Releases resources.
static sout_stream_id_tAdd (sout_stream_t *, es_format_t *)
static int Del (sout_stream_t *, sout_stream_id_t *)
static int Send (sout_stream_t *, sout_stream_id_t *, block_t *)
static int VolumeCallback (vlc_object_t *p_this, char const *psz_cmd, vlc_value_t oldval, vlc_value_t newval, void *p_data)
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static void FreeSys (vlc_object_t *p_this, sout_stream_sys_t *p_sys)
static void FreeId (sout_stream_id_t *id)
static void RemoveBase64Padding (char *str)
static int CheckForGcryptErrorWithLine (sout_stream_t *p_stream, gcry_error_t i_gcrypt_err, unsigned int i_line)
static int MGF1 (vlc_object_t *p_this, unsigned char *mask, size_t l, const unsigned char *Z, const size_t zLen, const int Hash)
static int AddOaepPadding (vlc_object_t *p_this, unsigned char *EM, const size_t emLenWithPrefix, const unsigned char *M, const size_t mLen, const unsigned char *P, const size_t pLen)
static int EncryptAesKeyBase64 (vlc_object_t *p_this, char **result)
static char * ReadPasswordFile (vlc_object_t *p_this, const char *psz_path)
static int SplitHeader (char **ppsz_next, char **ppsz_name, char **ppsz_value)
static void FreeHeader (void *p_value, void *p_data)
static int ReadStatusLine (vlc_object_t *p_this)
static int ReadHeader (vlc_object_t *p_this, vlc_dictionary_t *p_resp_headers, int *done)
static int WriteAuxHeaders (vlc_object_t *p_this, vlc_dictionary_t *p_req_headers)
static int SendRequest (vlc_object_t *p_this, const char *psz_method, const char *psz_content_type, const char *psz_body, vlc_dictionary_t *p_req_headers)
static int ParseAuthenticateHeader (vlc_object_t *p_this, vlc_dictionary_t *p_resp_headers)
static int ExecRequest (vlc_object_t *p_this, const char *psz_method, const char *psz_content_type, const char *psz_body, vlc_dictionary_t *p_req_headers, vlc_dictionary_t *p_resp_headers)
static int AnnounceSDP (vlc_object_t *p_this, char *psz_local, uint32_t i_session_id)
static int SendSetup (vlc_object_t *p_this)
static int SendRecord (vlc_object_t *p_this)
static int SendFlush (vlc_object_t *p_this)
static int SendTeardown (vlc_object_t *p_this)
static int UpdateVolume (vlc_object_t *p_this)
static void LogInfo (vlc_object_t *p_this)
static void SendAudio (sout_stream_t *p_stream, block_t *p_buffer)

Variables

static const char ps_raop_rsa_pubkey []
static const char ps_raop_rsa_exp [] = "\x01\x00\x01"
static const char psz_delim_space [] = " "
static const char psz_delim_colon [] = ":"
static const char psz_delim_equal [] = "="
static const char psz_delim_semicolon [] = ";"
static const char *const ppsz_sout_options []

Define Documentation

#define CheckForGcryptError ( p_this,
i_gcrypt_err   )     CheckForGcryptErrorWithLine( p_this, i_gcrypt_err, __LINE__ )

#define HOST_LONGTEXT   N_("Hostname or IP address of target device")

#define HOST_TEXT   N_("Host")

#define PASSWORD_FILE_LONGTEXT   N_("Read password for target device from file.")

#define PASSWORD_FILE_TEXT   N_("Password file")

#define PASSWORD_LONGTEXT   N_("Password for target device.")

#define PASSWORD_TEXT   N_("Password")

#define RAOP_PORT   5000

#define RAOP_USER_AGENT   "VLC " VERSION

Referenced by SendRequest().

#define SOUT_CFG_PREFIX   "sout-raop-"

#define VOLUME_LONGTEXT

Value:

N_("Output volume for analog output: 0 for silence, " \
                           "1..255 from almost silent to very loud.")

#define VOLUME_TEXT   N_("Volume")


Enumeration Type Documentation

Enumerator:
JACK_TYPE_NONE 
JACK_TYPE_ANALOG 
JACK_TYPE_DIGITAL 


Function Documentation

static sout_stream_id_t * Add ( sout_stream_t p_stream,
es_format_t p_fmt 
) [static]

static int AddOaepPadding ( vlc_object_t p_this,
unsigned char *  EM,
const size_t  emLenWithPrefix,
const unsigned char *  M,
const size_t  mLen,
const unsigned char *  P,
const size_t  pLen 
) [static]

References i, MGF1(), msg_Err, VLC_ENOMEM, and VLC_SUCCESS.

Referenced by EncryptAesKeyBase64().

static int AnnounceSDP ( vlc_object_t p_this,
char *  psz_local,
uint32_t  i_session_id 
) [static]

static int CheckForGcryptErrorWithLine ( sout_stream_t p_stream,
gcry_error_t  i_gcrypt_err,
unsigned int  i_line 
) [static]

References msg_Err.

static void Close ( vlc_object_t p_this  )  [static]

Releases resources.

Close the module.

Destroys the X11 window.

Disconnect from the X server.

Close a SDL video output.

It destroys an OpenGL vout display.

Terminate a vout display created by Open.

It destroyes a Direct3D vout display.

Terminate an output method created by Open.

Release the drawable.

Close a libcaca video output.

Close a aa video output method.

Close the filter.

Terminate a splitter module.

This function closes a clone video splitter module.

Common close function.

Releases allocate resources.

Close: Destructor.

Parameters:
p_this pointer to this filter object
p_this,: the filter object

static int Del ( sout_stream_t p_stream,
sout_stream_id_t id 
) [static]

static int EncryptAesKeyBase64 ( vlc_object_t p_this,
char **  result 
) [static]

static int ExecRequest ( vlc_object_t p_this,
const char *  psz_method,
const char *  psz_content_type,
const char *  psz_body,
vlc_dictionary_t p_req_headers,
vlc_dictionary_t p_resp_headers 
) [static]

static void FreeHeader ( void *  p_value,
void *  p_data 
) [static]

static void FreeId ( sout_stream_id_t id  )  [static]

Referenced by Add(), and Del().

static void FreeSys ( vlc_object_t p_this,
sout_stream_sys_t p_sys 
) [static]

static void LogInfo ( vlc_object_t p_this  )  [static]

static int MGF1 ( vlc_object_t p_this,
unsigned char *  mask,
size_t  l,
const unsigned char *  Z,
const size_t  zLen,
const int  Hash 
) [static]

static int Open ( vlc_object_t p_this  )  [static]

Probes and initializes.

Status of this demuxer: Real Media format -----------------.

Basic chorus/flanger/delay audio filter This implements a variable delay filter for VLC.

Todo:

  • Improve CDDB support (non-blocking, cache, .

Open the module.

Create an X11 window.

Probe the X server.

This function initializes SDL vout method.

It creates an OpenGL vout display.

This function allocates and initialize the DirectX vout display.

It creates a Direct3D vout display.

This function allocates and initializes a FB vout method.

Find the drawable set by libvlc application.

This function initializes libcaca vout method.

This function allocates and initializes a aa vout method.

This function allocates and initializes a Wall splitter module.

Open the filter.

This function allocates and initializes a Clone splitter module.

Open: initialize and create stuff.

Connect to the sftp server and ask for a file.

Parameters:
p_this,: the vlc_object
Returns:
VLC_SUCCESS if everything was fine
Parameters:
p_this 
p_this,: the filter object
Returns:
VLC_SUCCESS or vlc error codes

Todo:
Reinstate meta codec name

static int ParseAuthenticateHeader ( vlc_object_t p_this,
vlc_dictionary_t p_resp_headers 
) [static]

static int ReadHeader ( vlc_object_t p_this,
vlc_dictionary_t p_resp_headers,
int *  done 
) [static]

static char* ReadPasswordFile ( vlc_object_t p_this,
const char *  psz_path 
) [static]

References msg_Err, strdup(), and vlc_fopen().

static int ReadStatusLine ( vlc_object_t p_this  )  [static]

static void RemoveBase64Padding ( char *  str  )  [static]

Referenced by AnnounceSDP().

static int Send ( sout_stream_t p_stream,
sout_stream_id_t id,
block_t p_buffer 
) [static]

static void SendAudio ( sout_stream_t p_stream,
block_t p_buffer 
) [static]

static int SendFlush ( vlc_object_t p_this  )  [static]

static int SendRecord ( vlc_object_t p_this  )  [static]

static int SendRequest ( vlc_object_t p_this,
const char *  psz_method,
const char *  psz_content_type,
const char *  psz_body,
vlc_dictionary_t p_req_headers 
) [static]

static int SendSetup ( vlc_object_t p_this  )  [static]

static int SendTeardown ( vlc_object_t p_this  )  [static]

static int SplitHeader ( char **  ppsz_next,
char **  ppsz_name,
char **  ppsz_value 
) [static]

static int UpdateVolume ( vlc_object_t p_this  )  [static]

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 

static int VolumeCallback ( vlc_object_t p_this,
char const *  psz_cmd,
vlc_value_t  oldval,
vlc_value_t  newval,
void *  p_data 
) [static]

References sout_stream_t::p_sys, VLC_SUCCESS, and VLC_UNUSED.

Referenced by FreeSys().

static int WriteAuxHeaders ( vlc_object_t p_this,
vlc_dictionary_t p_req_headers 
) [static]


Variable Documentation

const char* const ppsz_sout_options[] [static]

Initial value:

 {
    "host",
    "password",
    "password-file",
    "volume",
    NULL
}

const char ps_raop_rsa_exp[] = "\x01\x00\x01" [static]

Referenced by EncryptAesKeyBase64().

const char ps_raop_rsa_pubkey[] [static]

Initial value:

    "\xe7\xd7\x44\xf2\xa2\xe2\x78\x8b\x6c\x1f\x55\xa0\x8e\xb7\x05\x44"
    "\xa8\xfa\x79\x45\xaa\x8b\xe6\xc6\x2c\xe5\xf5\x1c\xbd\xd4\xdc\x68"
    "\x42\xfe\x3d\x10\x83\xdd\x2e\xde\xc1\xbf\xd4\x25\x2d\xc0\x2e\x6f"
    "\x39\x8b\xdf\x0e\x61\x48\xea\x84\x85\x5e\x2e\x44\x2d\xa6\xd6\x26"
    "\x64\xf6\x74\xa1\xf3\x04\x92\x9a\xde\x4f\x68\x93\xef\x2d\xf6\xe7"
    "\x11\xa8\xc7\x7a\x0d\x91\xc9\xd9\x80\x82\x2e\x50\xd1\x29\x22\xaf"
    "\xea\x40\xea\x9f\x0e\x14\xc0\xf7\x69\x38\xc5\xf3\x88\x2f\xc0\x32"
    "\x3d\xd9\xfe\x55\x15\x5f\x51\xbb\x59\x21\xc2\x01\x62\x9f\xd7\x33"
    "\x52\xd5\xe2\xef\xaa\xbf\x9b\xa0\x48\xd7\xb8\x13\xa2\xb6\x76\x7f"
    "\x6c\x3c\xcf\x1e\xb4\xce\x67\x3d\x03\x7b\x0d\x2e\xa3\x0c\x5f\xff"
    "\xeb\x06\xf8\xd0\x8a\xdd\xe4\x09\x57\x1a\x9c\x68\x9f\xef\x10\x72"
    "\x88\x55\xdd\x8c\xfb\x9a\x8b\xef\x5c\x89\x43\xef\x3b\x5f\xaa\x15"
    "\xdd\xe6\x98\xbe\xdd\xf3\x59\x96\x03\xeb\x3e\x6f\x61\x37\x2b\xb6"
    "\x28\xf6\x55\x9f\x59\x9a\x78\xbf\x50\x06\x87\xaa\x7f\x49\x76\xc0"
    "\x56\x2d\x41\x29\x56\xf8\x98\x9e\x18\xa6\x35\x5b\xd8\x15\x97\x82"
    "\x5e\x0f\xc8\x75\x34\x3e\xc7\x82\x11\x76\x25\xcd\xbf\x98\x44\x7b"

Referenced by EncryptAesKeyBase64().

const char psz_delim_colon[] = ":" [static]

Referenced by ReadHeader().

const char psz_delim_equal[] = "=" [static]

Referenced by SplitHeader().

const char psz_delim_semicolon[] = ";" [static]

Referenced by SplitHeader().

const char psz_delim_space[] = " " [static]

Referenced by ReadStatusLine(), and SplitHeader().


Generated on Tue May 25 08:05:27 2010 for VLC by  doxygen 1.5.6