FFmpeg
|
#include <libxml/parser.h>
#include "libavutil/intreadwrite.h"
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavutil/parseutils.h"
#include "internal.h"
#include "avio_internal.h"
#include "dash.h"
Go to the source code of this file.
Data Structures | |
struct | fragment |
struct | timeline |
struct | representation |
struct | DASHContext |
Macros | |
#define | INITIAL_BUFFER_SIZE 32768 |
#define | OFFSET(x) offsetof(DASHContext, x) |
#define | FLAGS AV_OPT_FLAG_DECODING_PARAM |
Enumerations | |
enum | ReadFromURLMode { READ_NORMAL, READ_COMPLETE, READ_NORMAL, READ_COMPLETE } |
Functions | |
static uint64_t | get_current_time_in_sec (void) |
static uint64_t | get_utc_date_time_insec (AVFormatContext *s, const char *datetime) |
static uint32_t | get_duration_insec (AVFormatContext *s, const char *duration) |
static int64_t | get_segment_start_time_based_on_timeline (struct representation *pls, int64_t cur_seq_no) |
static int64_t | calc_next_seg_no_from_timelines (struct representation *pls, int64_t cur_time) |
static void | free_fragment (struct fragment **seg) |
static void | free_fragment_list (struct representation *pls) |
static void | free_timelines_list (struct representation *pls) |
static void | free_representation (struct representation *pls) |
static void | set_httpheader_options (DASHContext *c, AVDictionary *opts) |
static void | update_options (char **dest, const char *name, void *src) |
static int | open_url (AVFormatContext *s, AVIOContext **pb, const char *url, AVDictionary *opts, AVDictionary *opts2, int *is_http) |
static char * | get_content_url (xmlNodePtr *baseurl_nodes, int n_baseurl_nodes, char *rep_id_val, char *rep_bandwidth_val, char *val) |
static char * | get_val_from_nodes_tab (xmlNodePtr *nodes, const int n_nodes, const char *attrname) |
static xmlNodePtr | find_child_node_by_name (xmlNodePtr rootnode, const char *nodename) |
static enum AVMediaType | get_content_type (xmlNodePtr node) |
static int | parse_manifest_segmenturlnode (AVFormatContext *s, struct representation *rep, xmlNodePtr fragmenturl_node, xmlNodePtr *baseurl_nodes, char *rep_id_val, char *rep_bandwidth_val) |
static int | parse_manifest_segmenttimeline (AVFormatContext *s, struct representation *rep, xmlNodePtr fragment_timeline_node) |
static int | parse_manifest_representation (AVFormatContext *s, const char *url, xmlNodePtr node, xmlNodePtr adaptionset_node, xmlNodePtr mpd_baseurl_node, xmlNodePtr period_baseurl_node, xmlNodePtr fragment_template_node, xmlNodePtr content_component_node, xmlNodePtr adaptionset_baseurl_node) |
static int | parse_manifest_adaptationset (AVFormatContext *s, const char *url, xmlNodePtr adaptionset_node, xmlNodePtr mpd_baseurl_node, xmlNodePtr period_baseurl_node) |
static int | parse_manifest (AVFormatContext *s, const char *url, AVIOContext *in) |
static int64_t | calc_cur_seg_no (AVFormatContext *s, struct representation *pls) |
static int64_t | calc_min_seg_no (AVFormatContext *s, struct representation *pls) |
static int64_t | calc_max_seg_no (struct representation *pls) |
static void | move_timelines (struct representation *rep_src, struct representation *rep_dest) |
static void | move_segments (struct representation *rep_src, struct representation *rep_dest) |
static int | refresh_manifest (AVFormatContext *s) |
static struct fragment * | get_current_fragment (struct representation *pls) |
static int | read_from_url (struct representation *pls, struct fragment *seg, uint8_t *buf, int buf_size, enum ReadFromURLMode mode) |
static int | open_input (DASHContext *c, struct representation *pls, struct fragment *seg) |
static int | update_init_section (struct representation *pls) |
static int64_t | seek_data (void *opaque, int64_t offset, int whence) |
static int | read_data (void *opaque, uint8_t *buf, int buf_size) |
static int | save_avio_options (AVFormatContext *s) |
static int | nested_io_open (AVFormatContext *s, AVIOContext **pb, const char *url, int flags, AVDictionary **opts) |
static int | reopen_demux_for_component (AVFormatContext *s, struct representation *pls) |
static int | open_demux_for_component (AVFormatContext *s, struct representation *pls) |
static int | dash_read_header (AVFormatContext *s) |
static int | dash_read_packet (AVFormatContext *s, AVPacket *pkt) |
static int | dash_close (AVFormatContext *s) |
static int | dash_seek (AVFormatContext *s, struct representation *pls, int64_t seek_pos_msec, int flags) |
static int | dash_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags) |
static int | dash_probe (AVProbeData *p) |
Variables | |
static const AVOption | dash_options [] |
static const AVClass | dash_class |
AVInputFormat | ff_dash_demuxer |
#define INITIAL_BUFFER_SIZE 32768 |
Definition at line 31 of file dashdec.c.
Referenced by reopen_demux_for_component().
#define OFFSET | ( | x | ) | offsetof(DASHContext, x) |
#define FLAGS AV_OPT_FLAG_DECODING_PARAM |
enum ReadFromURLMode |
|
static |
Definition at line 146 of file dashdec.c.
Referenced by calc_cur_seg_no(), calc_max_seg_no(), and calc_min_seg_no().
|
static |
Definition at line 151 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 181 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 225 of file dashdec.c.
Referenced by calc_cur_seg_no(), get_current_fragment(), and refresh_manifest().
|
static |
Definition at line 254 of file dashdec.c.
Referenced by calc_cur_seg_no(), and refresh_manifest().
Definition at line 284 of file dashdec.c.
Referenced by free_fragment_list(), free_representation(), and read_data().
|
static |
Definition at line 293 of file dashdec.c.
Referenced by free_representation(), and move_segments().
|
static |
Definition at line 304 of file dashdec.c.
Referenced by free_representation(), and move_timelines().
|
static |
Definition at line 315 of file dashdec.c.
Referenced by dash_close(), dash_read_header(), parse_manifest_representation(), and refresh_manifest().
|
static |
Definition at line 334 of file dashdec.c.
Referenced by open_input(), and parse_manifest().
Definition at line 344 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 352 of file dashdec.c.
Referenced by open_input().
|
static |
Definition at line 419 of file dashdec.c.
Referenced by parse_manifest_representation(), and parse_manifest_segmenturlnode().
|
static |
Definition at line 468 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 484 of file dashdec.c.
Referenced by parse_manifest(), and parse_manifest_representation().
|
static |
Definition at line 501 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 525 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 580 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 616 of file dashdec.c.
Referenced by parse_manifest_adaptationset().
|
static |
Definition at line 826 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 862 of file dashdec.c.
Referenced by dash_read_header(), and refresh_manifest().
|
static |
Definition at line 1035 of file dashdec.c.
Referenced by get_current_fragment(), and open_demux_for_component().
|
static |
Definition at line 1069 of file dashdec.c.
Referenced by get_current_fragment().
|
static |
Definition at line 1082 of file dashdec.c.
Referenced by get_current_fragment(), move_segments(), move_timelines(), and open_demux_for_component().
|
static |
Definition at line 1104 of file dashdec.c.
Referenced by refresh_manifest().
|
static |
Definition at line 1118 of file dashdec.c.
Referenced by refresh_manifest().
|
static |
Definition at line 1136 of file dashdec.c.
Referenced by get_current_fragment().
|
static |
Definition at line 1198 of file dashdec.c.
Referenced by read_data().
|
static |
Definition at line 1275 of file dashdec.c.
Referenced by read_data(), and update_init_section().
|
static |
Definition at line 1299 of file dashdec.c.
Referenced by read_data(), and update_init_section().
|
static |
Definition at line 1340 of file dashdec.c.
Referenced by read_data().
Definition at line 1387 of file dashdec.c.
Referenced by reopen_demux_for_component().
Definition at line 1397 of file dashdec.c.
Referenced by pulse_read_packet(), reopen_demux_for_component(), and tls_client_handshake_loop().
|
static |
Definition at line 1458 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 1479 of file dashdec.c.
Referenced by reopen_demux_for_component().
|
static |
Definition at line 1489 of file dashdec.c.
Referenced by dash_read_packet(), dash_seek(), and open_demux_for_component().
|
static |
Definition at line 1556 of file dashdec.c.
Referenced by dash_read_header().
|
static |
|
static |
|
static |
|
static |
Definition at line 1721 of file dashdec.c.
Referenced by dash_read_seek().
|
static |
|
static |
|
static |
|
static |
AVInputFormat ff_dash_demuxer |