FFmpeg
|
#include <libxml/parser.h>
#include <time.h>
#include "libavutil/bprint.h"
#include "libavutil/mem.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 165 of file dashdec.c.
Referenced by resolve_content_path().
|
static |
Definition at line 171 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 176 of file dashdec.c.
Referenced by calc_cur_seg_no(), calc_max_seg_no(), and calc_min_seg_no().
|
static |
Definition at line 181 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 211 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 255 of file dashdec.c.
Referenced by calc_cur_seg_no(), get_current_fragment(), and refresh_manifest().
|
static |
Definition at line 290 of file dashdec.c.
Referenced by calc_cur_seg_no(), and refresh_manifest().
|
static |
Definition at line 320 of file dashdec.c.
Referenced by free_fragment_list(), free_representation(), parse_manifest_segmenturlnode(), and read_data().
|
static |
Definition at line 329 of file dashdec.c.
Referenced by free_representation(), and move_segments().
|
static |
Definition at line 340 of file dashdec.c.
Referenced by free_representation(), and move_timelines().
|
static |
Definition at line 351 of file dashdec.c.
Referenced by free_audio_list(), free_subtitle_list(), free_video_list(), and parse_manifest_representation().
|
static |
Definition at line 371 of file dashdec.c.
Referenced by dash_close(), and refresh_manifest().
|
static |
Definition at line 382 of file dashdec.c.
Referenced by dash_close(), and refresh_manifest().
|
static |
Definition at line 393 of file dashdec.c.
Referenced by dash_close(), and refresh_manifest().
|
static |
Definition at line 404 of file dashdec.c.
Referenced by open_input().
|
static |
Definition at line 471 of file dashdec.c.
Referenced by parse_manifest_representation(), and parse_manifest_segmenturlnode().
|
static |
Definition at line 522 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 538 of file dashdec.c.
Referenced by parse_manifest(), and parse_manifest_representation().
|
static |
Definition at line 555 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 581 of file dashdec.c.
Referenced by parse_manifest_segmenturlnode().
|
static |
Definition at line 599 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 665 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 706 of file dashdec.c.
Referenced by parse_manifest_representation().
|
static |
Definition at line 825 of file dashdec.c.
Referenced by parse_manifest_adaptationset().
|
static |
Definition at line 1104 of file dashdec.c.
Referenced by parse_manifest_adaptationset().
|
static |
Definition at line 1117 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 1173 of file dashdec.c.
Referenced by parse_manifest().
|
static |
Definition at line 1202 of file dashdec.c.
Referenced by dash_read_header(), and refresh_manifest().
|
static |
Definition at line 1376 of file dashdec.c.
Referenced by get_current_fragment(), and open_demux_for_component().
|
static |
Definition at line 1414 of file dashdec.c.
Referenced by get_current_fragment().
|
static |
Definition at line 1428 of file dashdec.c.
Referenced by get_current_fragment(), move_segments(), move_timelines(), and open_demux_for_component().
|
static |
Definition at line 1454 of file dashdec.c.
Referenced by refresh_manifest().
|
static |
Definition at line 1468 of file dashdec.c.
Referenced by refresh_manifest().
|
static |
Definition at line 1486 of file dashdec.c.
Referenced by get_current_fragment().
|
static |
Definition at line 1585 of file dashdec.c.
Referenced by read_data().
|
static |
Definition at line 1668 of file dashdec.c.
Referenced by read_data(), and update_init_section().
|
static |
Definition at line 1684 of file dashdec.c.
Referenced by read_data(), and update_init_section().
|
static |
Definition at line 1716 of file dashdec.c.
Referenced by read_data().
Definition at line 1762 of file dashdec.c.
Referenced by reopen_demux_for_component().
|
static |
Definition at line 1772 of file dashdec.c.
Referenced by pulse_read_packet(), reopen_demux_for_component(), and tls_client_handshake_loop().
|
static |
Definition at line 1835 of file dashdec.c.
Referenced by reopen_demux_for_component().
|
static |
Definition at line 1845 of file dashdec.c.
Referenced by recheck_discard_flags(), and reopen_demux_for_component().
|
static |
Definition at line 1854 of file dashdec.c.
Referenced by dash_read_packet(), dash_seek(), open_demux_for_component(), and recheck_discard_flags().
|
static |
Definition at line 1929 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 1965 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 1992 of file dashdec.c.
Referenced by dash_read_header().
|
static |
Definition at line 2007 of file dashdec.c.
Referenced by dash_read_header().
|
static |
|
static |
Definition at line 2131 of file dashdec.c.
Referenced by dash_read_packet().
|
static |
|
static |
|
static |
Definition at line 2230 of file dashdec.c.
Referenced by dash_read_seek().
|
static |
|
static |
|
static |
|
static |
const FFInputFormat ff_dash_demuxer |