| VLC
    3.0.18
    | 

| Files | |
| file | stream_extractor.c | 
| Data Structures | |
| struct | stream_extractor_private | 
| Functions | |
| static char * | StreamExtractorCreateMRL (char const *base, char const *subentry) | 
| Create an MRL for a specific sub-entry.  More... | |
| static void | se_Release (struct stream_extractor_private *priv) | 
| Release the private data associated with a stream-extractor.  More... | |
| static int | se_AttachWrapper (struct stream_extractor_private *priv, stream_t *source) | 
| Create the public stream_t that wraps a stream-extractor.  More... | |
| static int | StreamExtractorAttach (stream_t **source, char const *identifier, char const *module_name) | 
| int | vlc_stream_directory_Attach (stream_t **source, char const *module_name) | 
| int | vlc_stream_extractor_Attach (stream_t **source, char const *identifier, char const *module_name) | 
| int | stream_extractor_AttachParsed (stream_t **source, char const *data, char const **out_extra) | 
| Attach Stream Extractors according to specified data.  More... | |
| char * | vlc_stream_extractor_CreateMRL (stream_directory_t *directory, char const *subentry) | 
| Create a relative MRL for the associated entity.  More... | |
| Callbacks to forward work to the underlying stream-extractor | |
| static void | se_StreamDelete (stream_t *stream) | 
| static ssize_t | se_StreamRead (stream_t *stream, void *buf, size_t len) | 
| static block_t * | se_StreamBlock (stream_t *stream, bool *eof) | 
| static int | se_StreamSeek (stream_t *stream, uint64_t offset) | 
| static int | se_ReadDir (stream_t *stream, input_item_node_t *node) | 
| static int | se_StreamControl (stream_t *stream, int req, va_list args) | 
| static int | se_DirControl (stream_t *stream, int req, va_list args) | 
| stream-extractor resource handlers | |
| static int | se_InitStream (struct stream_extractor_private *priv, stream_t *s) | 
| static void | se_CleanStream (struct stream_extractor_private *priv) | 
| static int | se_InitDirectory (struct stream_extractor_private *priv, stream_t *s) | 
| 
 | static | 
Create the public stream_t that wraps a stream-extractor.
This initializes the relevant data-members of the public stream_t which is used to read from the underlying stream-extractor.
| priv | the private section of the stream_extractor_t | 
| source | the source stream which the stream_extractor_t should will read from | 
< Not enough memory
< Unspecified error
< No error
References stream_t::obj, stream_t::p_input, stream_t::p_sys, vlc_common_members::parent, stream_t::pf_block, stream_extractor_private::pf_init, stream_t::pf_read, se_StreamDelete(), stream_extractor_private::source, stream_CommonDelete(), stream_FilterChainNew(), unlikely, VLC_EGENERIC, VLC_ENOMEM, vlc_stream_CommonNew(), VLC_SUCCESS, and stream_extractor_private::wrapper.
Referenced by StreamExtractorAttach().
| 
 | static | 
References stream_extractor_private::extractor, and stream_extractor_t::identifier.
Referenced by StreamExtractorAttach().
| 
 | static | 
< No error
< Unspecified error
References STREAM_IS_DIRECTORY, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by se_InitDirectory().
| 
 | static | 
< Unspecified error
< No error
References stream_extractor_private::directory, stream_t::pf_control, stream_t::pf_readdir, stream_t::psz_url, se_DirControl(), se_ReadDir(), stream_directory_t::source, strdup(), unlikely, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by StreamExtractorAttach().
| 
 | static | 
< Not enough memory
< No error
References stream_extractor_private::extractor, stream_extractor_t::identifier, stream_t::pf_block, stream_t::pf_control, stream_extractor_t::pf_read, stream_t::pf_read, stream_t::pf_seek, stream_t::psz_url, se_StreamBlock(), se_StreamControl(), se_StreamRead(), se_StreamSeek(), stream_extractor_t::source, StreamExtractorCreateMRL(), unlikely, VLC_ENOMEM, and VLC_SUCCESS.
Referenced by StreamExtractorAttach().
| 
 | static | 
References stream_extractor_private::directory, stream_t::p_sys, and stream_directory_t::pf_readdir.
Referenced by se_InitDirectory().
| 
 | static | 
Release the private data associated with a stream-extractor.
| priv | pointer to the private section | 
References stream_extractor_private::module, module_unneed, stream_extractor_private::object, stream_extractor_private::pf_clean, stream_extractor_private::source, vlc_object_release, and vlc_stream_Delete().
Referenced by se_StreamDelete(), and StreamExtractorAttach().
References stream_extractor_private::extractor, stream_t::p_sys, and stream_extractor_t::pf_block.
Referenced by se_InitStream().
| 
 | static | 
References stream_extractor_private::extractor, stream_t::p_sys, and stream_extractor_t::pf_control.
Referenced by se_InitStream().
| 
 | static | 
References se_Release(), and vlc_memstream::stream.
Referenced by se_AttachWrapper().
| 
 | static | 
References stream_extractor_private::extractor, stream_t::p_sys, and stream_extractor_t::pf_read.
Referenced by se_InitStream().
| 
 | static | 
References stream_extractor_private::extractor, stream_t::p_sys, and stream_extractor_t::pf_seek.
Referenced by se_InitStream().
| int stream_extractor_AttachParsed | ( | stream_t ** | stream, | 
| const char * | psz_data, | ||
| char const ** | out_extra | ||
| ) | 
Attach Stream Extractors according to specified data.
This function will parse the passed data, and try to attach a Stream Extractor for each specified entity as per the fragment specification associated with a Media Resource Locator (MRL),
*stream can be modified even if this function only locates some of the entities specified in psz_data. It is up to the caller to free the resource referred to by *stream, no matter what this function returns.psz_data, something which is not guaranteed.| [out] | source | a pointer-to-pointer to stream where the attached stream-extractor will be applied. *streamwill refer to the last successful attachment. | 
| [out] | out_extra | *out_extrawill point to any additional data inpsz_datathat does not specify an entity (if any). | 
< Unspecified error
< No error
< Unspecified error
References count, mrl_FragmentSplit(), stream_extractor_private::source, vlc_array_clear(), vlc_array_count(), vlc_array_item_at_index, VLC_EGENERIC, vlc_stream_extractor_Attach(), and VLC_SUCCESS.
Referenced by vlc_stream_NewMRL().
| 
 | static | 
< Not enough memory
< No error
< Unspecified error
References stream_extractor_private::directory, stream_extractor_private::extractor, stream_extractor_t::identifier, stream_extractor_private::module, module_need, stream_extractor_private::object, stream_extractor_private::pf_clean, stream_extractor_private::pf_init, se_AttachWrapper(), se_CleanStream(), se_InitDirectory(), se_InitStream(), se_Release(), stream_extractor_t::source, stream_extractor_private::source, stream_directory_t::source, strdup(), unlikely, vlc_custom_create, VLC_EGENERIC, VLC_ENOMEM, VLC_OBJECT, VLC_SUCCESS, and stream_extractor_private::wrapper.
Referenced by vlc_stream_directory_Attach(), and vlc_stream_extractor_Attach().
| 
 | static | 
Create an MRL for a specific sub-entry.
This internal function is used to create an MRL that refers to \subentry within base, see MRL helpers for further information.
References mrl_EscapeFragmentIdentifier(), vlc_memstream::ptr, vlc_memstream_close(), vlc_memstream_open(), vlc_memstream_printf(), vlc_memstream_putc(), and vlc_memstream_puts().
Referenced by se_InitStream(), and vlc_stream_extractor_CreateMRL().
| int vlc_stream_directory_Attach | ( | stream_t ** | source, | 
| char const * | module_name | ||
| ) | 
References stream_extractor_private::source, and StreamExtractorAttach().
| int vlc_stream_extractor_Attach | ( | stream_t ** | source, | 
| char const * | identifier, | ||
| char const * | module_name | ||
| ) | 
References stream_extractor_private::source, and StreamExtractorAttach().
Referenced by stream_extractor_AttachParsed().
| char* vlc_stream_extractor_CreateMRL | ( | stream_directory_t * | , | 
| char const * | subentry | ||
| ) | 
Create a relative MRL for the associated entity.
This function shall be used by stream_directory_t's in order to generate an MRL that refers to an entity within the stream. Normally this function will only be invoked within pf_readdir in order to get the virtual path of the listed items.
| extractor | the stream_directory_t for which the entity belongs | 
| subentry | the name of the entity in question | 
References stream_extractor_private::directory, stream_t::psz_url, stream_directory_t::source, and StreamExtractorCreateMRL().
 1.8.16
 1.8.16