FFmpeg
|
#include <libxml/parser.h>
#include <time.h>
#include "libavutil/bprint.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "internal.h"
#include "avio_internal.h"
#include "dash.h"
#include "demux.h"
#include "url.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 |
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 | free_subtitle_list (DASHContext *c) |
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_attr (AVFormatContext *s, xmlNodePtr adaptionset_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_programinformation (AVFormatContext *s, xmlNodePtr 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) |
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 | 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 | is_common_init_section_exist (struct representation **pls, int n_pls) |
static int | copy_init_section (struct representation *rep_dest, struct representation *rep_src) |
static void | move_metadata (AVStream *st, const char *key, char **value) |
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 (const AVProbeData *p) |
Variables | |
static const AVOption | dash_options [] |
static const AVClass | dash_class |
const FFInputFormat | ff_dash_demuxer |
#define OFFSET | ( | x | ) | offsetof(DASHContext, x) |
#define FLAGS AV_OPT_FLAG_DECODING_PARAM |
|
static |
Definition at line 164 of file dashdec.c.
Referenced by resolve_content_path().
Definition at line 170 of file dashdec.c.
Referenced by av_pixelutils_get_sad_fn(), 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_loop_filter_h_16_16_lsx(), ff_loop_filter_h_16_8_lsx(), ff_loop_filter_v_16_16_lsx(), ff_pixelutils_sad_init_x86(), 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(), realign_frame(), and resolve_content_path().
|
static |
Definition at line 175 of file dashdec.c.
Referenced by calc_cur_seg_no(), calc_max_seg_no(), and calc_min_seg_no().
|
static |
Definition at line 180 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 210 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 254 of file dashdec.c.
Referenced by calc_cur_seg_no(), get_current_fragment(), and refresh_manifest().
|
static |
Definition at line 289 of file dashdec.c.
Referenced by calc_cur_seg_no(), and refresh_manifest().
|
static |
Definition at line 319 of file dashdec.c.
Referenced by free_fragment_list(), free_representation(), parse_manifest_segmenturlnode(), and read_data().
|
static |
Definition at line 328 of file dashdec.c.
Referenced by free_representation(), and move_segments().
|
static |
Definition at line 339 of file dashdec.c.
Referenced by free_representation(), and move_timelines().
|
static |
Definition at line 350 of file dashdec.c.
Referenced by free_audio_list(), free_subtitle_list(), free_video_list(), and parse_manifest_representation().
|
static |
Definition at line 370 of file dashdec.c.
Referenced by dash_close(), and refresh_manifest().
|
static |
Definition at line 381 of file dashdec.c.
Referenced by dash_close(), and refresh_manifest().
|
static |
Definition at line 392 of file dashdec.c.
Referenced by dash_close(), and refresh_manifest().
|
static |
Definition at line 403 of file dashdec.c.
Referenced by open_input().
|
static |
Definition at line 470 of file dashdec.c.
Referenced by parse_manifest_representation(), and parse_manifest_segmenturlnode().
|
static |
Definition at line 521 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 537 of file dashdec.c.
Referenced by parse_manifest(), and parse_manifest_representation().
|
static |
Definition at line 554 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 580 of file dashdec.c.
Referenced by parse_manifest_segmenturlnode().
|
static |
Definition at line 598 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 664 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 705 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 824 of file dashdec.c.
Referenced by parse_manifest_adaptationset().
|
static |
Definition at line 1103 of file dashdec.c.
Referenced by parse_manifest_adaptationset().
|
static |
Definition at line 1116 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 1172 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 1201 of file dashdec.c.
Referenced by dash_read_header(), and refresh_manifest().
|
static |
Definition at line 1375 of file dashdec.c.
Referenced by get_current_fragment(), and open_demux_for_component().
|
static |
Definition at line 1413 of file dashdec.c.
Referenced by get_current_fragment().
|
static |
Definition at line 1427 of file dashdec.c.
Referenced by get_current_fragment(), move_segments(), move_timelines(), and open_demux_for_component().
|
static |
Definition at line 1453 of file dashdec.c.
Referenced by refresh_manifest().
|
static |
Definition at line 1467 of file dashdec.c.
Referenced by refresh_manifest().
|
static |
Definition at line 1485 of file dashdec.c.
Referenced by get_current_fragment().
|
static |
Definition at line 1584 of file dashdec.c.
Referenced by read_data().
|
static |
Definition at line 1667 of file dashdec.c.
Referenced by read_data(), and update_init_section().
|
static |
Definition at line 1683 of file dashdec.c.
Referenced by read_data(), and update_init_section().
|
static |
Definition at line 1715 of file dashdec.c.
Referenced by read_data().
Definition at line 1761 of file dashdec.c.
Referenced by reopen_demux_for_component().
Definition at line 1771 of file dashdec.c.
Referenced by pulse_read_packet(), reopen_demux_for_component(), and tls_client_handshake_loop().
|
static |
Definition at line 1834 of file dashdec.c.
Referenced by reopen_demux_for_component().
|
static |
Definition at line 1844 of file dashdec.c.
Referenced by recheck_discard_flags(), and reopen_demux_for_component().
|
static |
Definition at line 1853 of file dashdec.c.
Referenced by dash_read_packet(), dash_seek(), open_demux_for_component(), and recheck_discard_flags().
|
static |
Definition at line 1928 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 1964 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 1991 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 2006 of file dashdec.c.
Referenced by dash_read_header().
|
static |
|
static |
Definition at line 2130 of file dashdec.c.
Referenced by dash_read_packet().
|
static |
|
static |
|
static |
Definition at line 2229 of file dashdec.c.
Referenced by dash_read_seek().
|
static |
|
static |
|
static |
|
static |
const FFInputFormat ff_dash_demuxer |