FFmpeg
4.0
|
#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 int | ishttp (char *url) |
static int | aligned (int val) |
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 | free_video_list (DASHContext *c) |
static void | free_audio_list (DASHContext *c) |
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, int max_url_size, 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 struct fragment * | get_Fragment (char *range) |
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 | resolve_content_path (AVFormatContext *s, const char *url, int *max_url_size, xmlNodePtr *baseurl_nodes, int n_baseurl_nodes) |
static int | parse_manifest_representation (AVFormatContext *s, const char *url, xmlNodePtr node, xmlNodePtr adaptionset_node, xmlNodePtr mpd_baseurl_node, xmlNodePtr period_baseurl_node, xmlNodePtr period_segmenttemplate_node, xmlNodePtr period_segmentlist_node, xmlNodePtr fragment_template_node, xmlNodePtr content_component_node, xmlNodePtr adaptionset_baseurl_node, xmlNodePtr adaptionset_segmentlist_node, xmlNodePtr adaptionset_supplementalproperty_node) |
static int | parse_manifest_adaptationset (AVFormatContext *s, const char *url, xmlNodePtr adaptionset_node, xmlNodePtr mpd_baseurl_node, xmlNodePtr period_baseurl_node, xmlNodePtr period_segmenttemplate_node, xmlNodePtr period_segmentlist_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, DASHContext *c) |
static void | move_timelines (struct representation *rep_src, struct representation *rep_dest, DASHContext *c) |
static void | move_segments (struct representation *rep_src, struct representation *rep_dest, DASHContext *c) |
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 void | close_demux_for_component (struct representation *pls) |
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 void | recheck_discard_flags (AVFormatContext *s, struct representation **p, int n) |
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, int dry_run) |
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 154 of file dashdec.c.
Referenced by resolve_content_path().
Definition at line 160 of file dashdec.c.
Referenced by ff_avg_h264_qpel16_mc12_mmi(), ff_avg_h264_qpel16_mc21_mmi(), ff_avg_h264_qpel16_mc22_mmi(), ff_avg_h264_qpel16_mc23_mmi(), ff_avg_h264_qpel16_mc32_mmi(), ff_avg_h264_qpel8_mc12_mmi(), ff_avg_h264_qpel8_mc21_mmi(), ff_avg_h264_qpel8_mc22_mmi(), ff_avg_h264_qpel8_mc23_mmi(), ff_avg_h264_qpel8_mc32_mmi(), ff_check_alignment(), ff_put_h264_qpel16_mc12_mmi(), ff_put_h264_qpel16_mc21_mmi(), ff_put_h264_qpel16_mc22_mmi(), ff_put_h264_qpel16_mc23_mmi(), ff_put_h264_qpel16_mc32_mmi(), ff_put_h264_qpel8_mc12_mmi(), ff_put_h264_qpel8_mc21_mmi(), ff_put_h264_qpel8_mc22_mmi(), ff_put_h264_qpel8_mc23_mmi(), ff_put_h264_qpel8_mc32_mmi(), filter_frame(), mjpeg_decode_app(), parse_manifest_representation(), and resolve_content_path().
|
static |
Definition at line 165 of file dashdec.c.
Referenced by calc_cur_seg_no(), calc_max_seg_no(), and calc_min_seg_no().
|
static |
Definition at line 170 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 200 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 244 of file dashdec.c.
Referenced by calc_cur_seg_no(), get_current_fragment(), and refresh_manifest().
|
static |
Definition at line 273 of file dashdec.c.
Referenced by calc_cur_seg_no(), and refresh_manifest().
Definition at line 303 of file dashdec.c.
Referenced by free_fragment_list(), free_representation(), and read_data().
|
static |
Definition at line 312 of file dashdec.c.
Referenced by free_representation(), and move_segments().
|
static |
Definition at line 323 of file dashdec.c.
Referenced by free_representation(), and move_timelines().
|
static |
Definition at line 334 of file dashdec.c.
Referenced by free_audio_list(), free_video_list(), and parse_manifest_representation().
|
static |
Definition at line 353 of file dashdec.c.
Referenced by dash_close(), and refresh_manifest().
|
static |
Definition at line 364 of file dashdec.c.
Referenced by dash_close(), and refresh_manifest().
|
static |
Definition at line 375 of file dashdec.c.
Referenced by open_input(), and parse_manifest().
Definition at line 385 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 393 of file dashdec.c.
Referenced by open_input().
|
static |
Definition at line 461 of file dashdec.c.
Referenced by parse_manifest_representation(), and parse_manifest_segmenturlnode().
|
static |
Definition at line 517 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 533 of file dashdec.c.
Referenced by parse_manifest(), and parse_manifest_representation().
|
static |
Definition at line 550 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 574 of file dashdec.c.
Referenced by parse_manifest_segmenturlnode().
|
static |
Definition at line 592 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 659 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 695 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 798 of file dashdec.c.
Referenced by parse_manifest_adaptationset().
|
static |
Definition at line 1058 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 1106 of file dashdec.c.
Referenced by dash_read_header(), and refresh_manifest().
|
static |
Definition at line 1278 of file dashdec.c.
Referenced by get_current_fragment(), and open_demux_for_component().
|
static |
Definition at line 1309 of file dashdec.c.
Referenced by get_current_fragment().
|
static |
Definition at line 1322 of file dashdec.c.
Referenced by get_current_fragment(), move_segments(), move_timelines(), and open_demux_for_component().
|
static |
Definition at line 1343 of file dashdec.c.
Referenced by refresh_manifest().
|
static |
Definition at line 1357 of file dashdec.c.
Referenced by refresh_manifest().
|
static |
Definition at line 1375 of file dashdec.c.
Referenced by get_current_fragment().
|
static |
Definition at line 1460 of file dashdec.c.
Referenced by read_data().
|
static |
Definition at line 1540 of file dashdec.c.
Referenced by read_data(), and update_init_section().
|
static |
Definition at line 1564 of file dashdec.c.
Referenced by read_data(), and update_init_section().
|
static |
Definition at line 1598 of file dashdec.c.
Referenced by read_data().
Definition at line 1645 of file dashdec.c.
Referenced by reopen_demux_for_component().
Definition at line 1655 of file dashdec.c.
Referenced by pulse_read_packet(), reopen_demux_for_component(), and tls_client_handshake_loop().
|
static |
Definition at line 1718 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 1743 of file dashdec.c.
Referenced by reopen_demux_for_component().
|
static |
Definition at line 1753 of file dashdec.c.
Referenced by recheck_discard_flags(), and reopen_demux_for_component().
|
static |
Definition at line 1763 of file dashdec.c.
Referenced by dash_read_packet(), dash_seek(), open_demux_for_component(), and recheck_discard_flags().
|
static |
Definition at line 1832 of file dashdec.c.
Referenced by dash_read_header().
|
static |
|
static |
Definition at line 1952 of file dashdec.c.
Referenced by dash_read_packet().
|
static |
|
static |
|
static |
Definition at line 2043 of file dashdec.c.
Referenced by dash_read_seek().
|
static |
|
static |
|
static |
|
static |
AVInputFormat ff_dash_demuxer |