You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
2.0 KiB
51 lines
2.0 KiB
/*****************************************************************************
|
|
* variant_maps.h
|
|
*****************************************************************************
|
|
* Copyright (C) 2023 VLC authors and VideoLAN
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation; either version 2.1 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
|
*****************************************************************************/
|
|
#ifndef HLS_VARIANT_MAPS_H
|
|
#define HLS_VARIANT_MAPS_H
|
|
|
|
/**
|
|
* Variant stream represented by a group of ES string ID. This structure
|
|
* represents the parsed user input and is used to add the incomming ES to the
|
|
* correct playlists.
|
|
*/
|
|
struct hls_variant_stream_map
|
|
{
|
|
struct VLC_VECTOR(char *) es_list;
|
|
/**
|
|
* Reference on the playlist associated with this list of ES. Having a
|
|
* reference here after the playlist creation ease subsequent searches of
|
|
* the playlist.
|
|
*/
|
|
struct hls_playlist *playlist_ref;
|
|
};
|
|
|
|
typedef struct VLC_VECTOR(struct hls_variant_stream_map *)
|
|
hls_variant_stream_maps_t;
|
|
|
|
int hls_variant_maps_Parse(const char *in, hls_variant_stream_maps_t *out);
|
|
void hls_variant_maps_Destroy(hls_variant_stream_maps_t *);
|
|
|
|
struct hls_variant_stream_map *
|
|
hls_variant_map_FromESID(hls_variant_stream_maps_t *, const char *);
|
|
struct hls_variant_stream_map *
|
|
hls_variant_map_FromPlaylist(hls_variant_stream_maps_t *,
|
|
struct hls_playlist *);
|
|
|
|
#endif
|
|
|