FFmpeg
|
Apple HTTP Live Streaming demuxer http://tools.ietf.org/html/draft-pantos-http-live-streaming. More...
#include "libavutil/avstring.h"
#include "libavutil/avassert.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/dict.h"
#include "libavutil/time.h"
#include "avformat.h"
#include "internal.h"
#include "avio_internal.h"
#include "url.h"
#include "id3v2.h"
Go to the source code of this file.
Data Structures | |
struct | segment |
struct | playlist |
struct | rendition |
struct | variant |
struct | HLSContext |
struct | variant_info |
struct | key_info |
struct | rendition_info |
Macros | |
#define | INITIAL_BUFFER_SIZE 32768 |
#define | MAX_FIELD_LEN 64 |
#define | MAX_CHARACTERISTICS_LEN 512 |
#define | MPEG_TIME_BASE 90000 |
#define | MPEG_TIME_BASE_Q (AVRational){1, MPEG_TIME_BASE} |
#define | OFFSET(x) offsetof(HLSContext, x) |
#define | FLAGS AV_OPT_FLAG_DECODING_PARAM |
Enumerations | |
enum | KeyType { KEY_NONE, KEY_AES_128, KEY_SAMPLE_AES } |
enum | PlaylistType { PLS_TYPE_UNSPECIFIED, PLS_TYPE_EVENT, PLS_TYPE_VOD } |
enum | ReadFromURLMode { READ_NORMAL, READ_COMPLETE } |
Functions | |
static int | read_chomp_line (AVIOContext *s, char *buf, int maxlen) |
static void | free_segment_list (struct playlist *pls) |
static void | free_playlist_list (HLSContext *c) |
static void | free_variant_list (HLSContext *c) |
static void | free_rendition_list (HLSContext *c) |
static void | reset_packet (AVPacket *pkt) |
static struct playlist * | new_playlist (HLSContext *c, const char *url, const char *base) |
static struct variant * | new_variant (HLSContext *c, struct variant_info *info, const char *url, const char *base) |
static void | handle_variant_args (struct variant_info *info, const char *key, int key_len, char **dest, int *dest_len) |
static void | handle_key_args (struct key_info *info, const char *key, int key_len, char **dest, int *dest_len) |
static struct rendition * | new_rendition (HLSContext *c, struct rendition_info *info, const char *url_base) |
static void | handle_rendition_args (struct rendition_info *info, const char *key, int key_len, char **dest, int *dest_len) |
static int | ensure_playlist (HLSContext *c, struct playlist **pls, const char *url) |
static int | parse_playlist (HLSContext *c, const char *url, struct playlist *pls, AVIOContext *in) |
static int | read_from_url (struct playlist *pls, uint8_t *buf, int buf_size, enum ReadFromURLMode mode) |
static void | parse_id3 (AVFormatContext *s, AVIOContext *pb, AVDictionary **metadata, int64_t *dts, ID3v2ExtraMetaAPIC **apic, ID3v2ExtraMeta **extra_meta) |
static int | id3_has_changed_values (struct playlist *pls, AVDictionary *metadata, ID3v2ExtraMetaAPIC *apic) |
static void | handle_id3 (AVIOContext *pb, struct playlist *pls) |
static void | intercept_id3 (struct playlist *pls, uint8_t *buf, int buf_size, int *len) |
static void | update_options (char **dest, const char *name, void *src) |
static int | open_input (HLSContext *c, struct playlist *pls) |
static int64_t | default_reload_interval (struct playlist *pls) |
static int | read_data (void *opaque, uint8_t *buf, int buf_size) |
static int | playlist_in_multiple_variants (HLSContext *c, struct playlist *pls) |
static void | add_renditions_to_variant (HLSContext *c, struct variant *var, enum AVMediaType type, const char *group_id) |
static void | add_metadata_from_renditions (AVFormatContext *s, struct playlist *pls, enum AVMediaType type) |
static int | find_timestamp_in_playlist (HLSContext *c, struct playlist *pls, int64_t timestamp, int *seq_no) |
static int | select_cur_seq_no (HLSContext *c, struct playlist *pls) |
static int | hls_read_header (AVFormatContext *s) |
static int | recheck_discard_flags (AVFormatContext *s, int first) |
static void | fill_timing_for_id3_timestamped_stream (struct playlist *pls) |
static AVRational | get_timebase (struct playlist *pls) |
static int | compare_ts_with_wrapdetect (int64_t ts_a, struct playlist *pls_a, int64_t ts_b, struct playlist *pls_b) |
static int | hls_read_packet (AVFormatContext *s, AVPacket *pkt) |
static int | hls_close (AVFormatContext *s) |
static int | hls_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags) |
static int | hls_probe (AVProbeData *p) |
Variables | |
static const AVOption | hls_options [] |
static const AVClass | hls_class |
AVInputFormat | ff_hls_demuxer |
Apple HTTP Live Streaming demuxer http://tools.ietf.org/html/draft-pantos-http-live-streaming.
Definition in file hls.c.
#define INITIAL_BUFFER_SIZE 32768 |
Definition at line 42 of file hls.c.
Referenced by hls_read_header().
#define MPEG_TIME_BASE 90000 |
Definition at line 47 of file hls.c.
Referenced by hls_read_header().
#define MPEG_TIME_BASE_Q (AVRational){1, MPEG_TIME_BASE} |
Definition at line 48 of file hls.c.
Referenced by compare_ts_with_wrapdetect(), fill_timing_for_id3_timestamped_stream(), and get_timebase().
#define OFFSET | ( | x | ) | offsetof(HLSContext, x) |
#define FLAGS AV_OPT_FLAG_DECODING_PARAM |
enum PlaylistType |
enum ReadFromURLMode |
|
static |
Definition at line 187 of file hls.c.
Referenced by parse_playlist().
Definition at line 195 of file hls.c.
Referenced by free_playlist_list(), and parse_playlist().
|
static |
Definition at line 207 of file hls.c.
Referenced by hls_close(), and hls_read_header().
|
static |
Definition at line 233 of file hls.c.
Referenced by hls_close(), and hls_read_header().
|
static |
Definition at line 245 of file hls.c.
Referenced by hls_close(), and hls_read_header().
Definition at line 258 of file hls.c.
Referenced by hls_read_packet(), hls_read_seek(), and new_playlist().
|
static |
Definition at line 264 of file hls.c.
Referenced by new_rendition(), and new_variant().
|
static |
Definition at line 289 of file hls.c.
Referenced by ensure_playlist(), and parse_playlist().
|
static |
Definition at line 315 of file hls.c.
Referenced by parse_playlist().
|
static |
Definition at line 339 of file hls.c.
Referenced by parse_playlist().
|
static |
Definition at line 366 of file hls.c.
Referenced by parse_playlist().
|
static |
Definition at line 443 of file hls.c.
Referenced by parse_playlist().
|
static |
Definition at line 485 of file hls.c.
Referenced by parse_playlist().
|
static |
Definition at line 497 of file hls.c.
Referenced by hls_read_header(), read_data(), and select_cur_seq_no().
|
static |
Definition at line 689 of file hls.c.
Referenced by intercept_id3(), and read_data().
|
static |
Definition at line 711 of file hls.c.
Referenced by handle_id3().
|
static |
Definition at line 737 of file hls.c.
Referenced by handle_id3().
|
static |
Definition at line 766 of file hls.c.
Referenced by intercept_id3().
Definition at line 808 of file hls.c.
Referenced by read_data().
Definition at line 908 of file hls.c.
Referenced by hls_read_header(), and open_input().
|
static |
Definition at line 916 of file hls.c.
Referenced by read_data().
|
static |
Definition at line 1013 of file hls.c.
Referenced by read_data(), and select_cur_seq_no().
Definition at line 1020 of file hls.c.
Referenced by hls_read_header(), and pulse_read_packet().
|
static |
Definition at line 1115 of file hls.c.
Referenced by hls_read_header().
|
static |
Definition at line 1134 of file hls.c.
Referenced by hls_read_header().
|
static |
Definition at line 1158 of file hls.c.
Referenced by hls_read_header().
|
static |
Definition at line 1190 of file hls.c.
Referenced by hls_read_seek(), and select_cur_seq_no().
|
static |
Definition at line 1216 of file hls.c.
Referenced by hls_read_header(), and recheck_discard_flags().
|
static |
|
static |
Definition at line 1449 of file hls.c.
Referenced by hls_read_packet().
Definition at line 1490 of file hls.c.
Referenced by hls_read_packet().
|
static |
Definition at line 1515 of file hls.c.
Referenced by compare_ts_with_wrapdetect(), and hls_read_packet().
|
static |
Definition at line 1523 of file hls.c.
Referenced by hls_read_packet().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
AVInputFormat ff_hls_demuxer |