1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-12 19:18:44 +02:00
Commit Graph

135 Commits

Author SHA1 Message Date
Andreas Rheinhardt
17963a6ad7 avformat/dashdec: Don't overwrite and leak old initialization fragments
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-09-21 04:31:30 +02:00
Andreas Rheinhardt
01a4c35969 avformat/dashdec: Don't leave representation in inconsistent state on error
This currently doesn't cause any trouble, because the only caller did
not clean up the representation upon error at all; but fixing this is
a prerequisite for doing so.

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-09-21 04:31:26 +02:00
Andreas Rheinhardt
248ef276be avformat/dashdec: Remove dead code
The code in question seems to have been copied from about 70 lines
above; yet the code here is only executed if some of the variables
(namely representation_segmenttemplate_node and fragment_template_node)
are NULL, so it makes no sense to check them for a child element.

Also remove a redundant resetting of a pointer to an AVFormatContext
after avformat_close_input() (which already sets the pointer to NULL).

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-09-21 04:31:19 +02:00
Andreas Rheinhardt
e09e2c6442 avformat/dashdec: Avoid double free on error
When using one of the AV_DICT_DONT_STRDUP_KEY/VAL flags, av_dict_set()
already frees the key/value on error, so that freeing it again would
lead to a double free.

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-09-21 04:29:18 +02:00
Jan Ekström
3249c757ae avformat/dashdec: drop arbitrary DASH manifest size limit
Currently the utilized AVBPrint API is internally limited to unsigned
integers, so if we limit the file size as well as the amount to read
to UINT_MAX - 1, we do not require additional limiting to be performed
on the values.

This change is based on the fact that initially the 8*1024 value added
in 96d70694ae was only for the case where
the file size was not known. It was not a maximum file size limit.

In 2912118898 this was reworked to be
a maximum manifest file size limit, while its commit message appears
to only note that it added support for larger manifest file sizes.

This should enable various unfortunately large MPEG-DASH manifests,
such as Youtube's multi-megabyte live stream archives to load up
as well as bring back the original intent of the logic.
2020-09-05 11:50:49 +03:00
Jun Zhao
ba31fdfd7b lavf/dashdec: enable custom interrup callback in sub-demuxer
Enable the custom callback in sub-demuxer

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-07-20 19:23:15 +08:00
Jun Zhao
3cf2f515e3 lavf/dashdec: Add missed side data/disposition
dash demuxer get the stream info from sub-stream, but missed side
data/disposition part, e,g, missed the DOVI side data when the
stream is Dolby Vision streams

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-06-18 17:51:41 +08:00
Steven Liu
3523df947a avformat/dashdec: compute the segment size use current pos minus offset plus one
because the offset should use one byte

Reviewed-by: Zhao Jun <barryjzhao@tencent.com>
Reported-by: Zhao Jun <barryjzhao@tencent.com>
Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
2020-05-07 19:33:35 +08:00
rcombs
2912118898 lavf/dashdec: support larger manifests 2020-05-06 00:11:37 -05:00
Steven Liu
51db0a472a avformat/dashdec: add attribute lang for audio and subtitle streams
There should have language in the metadata of streams which show to user

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2020-04-15 12:45:23 +08:00
Andreas Rheinhardt
3c138e5ceb avformat/dashdec: Don't allocate and leak strings that are never used
Since commit e134c203 strdups of several elements of a manifest are kept
in the DASHContext; but said commit completely forgot to free these
strings again (with xmlFree()). Given that these strings are never used
at all, this commit closes this leak by reverting said commit.

This reverts commit e134c20374.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-03-29 08:45:16 +08:00
Jun Zhao
e27a35e045 lavf/dashdec: add 3GPP TS26.247 probe in dash demuxer
Enabled the 3GP-DASH Release-10/Relase-11(3GPP TS26.247) profile
to dash demuxer probe.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-03-05 14:15:41 +08:00
Jun Zhao
ab316a19aa lavf/dashdec: Add ts to the list of allowed extensions.
Dashdec can able to handle MPEG-2 TS streams by default as well,
used MP4Box to create the segmented MPEG-2 TS files for
verification.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-03-05 14:15:32 +08:00
Marvin Scholz
f37bfd3f62 avformat/dashdec: propagate icy to child AVIOContexts
When the user decides they do not want to to send the Icy-MetaData
header, this should be respected for all requests, not just the first
one.

Fix #5578

Reviewed-by: Liu Steven <lq@chinaffmpeg.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-12-27 14:58:51 -03:00
Michael Niedermayer
a0ae4b7df9 Remove redundant ;
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-12-10 16:09:14 +01:00
Jun Zhao
e700038990 lavf/dashdec: drop unnecessary check before ff_format_io_close
ff_format_io_close will check the AVIOContext pointer pb, so drop
the unnecessary check before ff_format_io_close.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-11-08 11:39:02 +08:00
Jun Zhao
a23c8d75ec lavf/dashenc: enable probesize/max_analyze_duration setting in sub-demuxer
Enable probesize/max_analyze_duration setting when open the sub-demuxer,
it's will be used to minimizing the initial delay.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-11-08 11:39:02 +08:00
vectronic
8c90bb8ebb avformat/dashdec: fix segfault when parsing segmentlist
index into segmentlists_tab was specified as 4 instead of 3 causing invalid access

further fix to: 8135

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: vectronic <hello.vectronic@gmail.com>
2019-09-23 10:06:46 +08:00
vectronic
598962cd3a avformat/dashdec: fix pointer being freed was not allocated
prevent attempt to call xmlFree if val was not allocated
fixes: 8135

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: vectronic <hello.vectronic@gmail.com>
2019-09-23 10:06:08 +08:00
Steven Liu
2e82b50bce avformat/dashdec: reindent code at parse_manifest 2019-09-14 12:54:21 +08:00
Steven Liu
e55018ee11 avformat/dashdec: add startNumber parser for segmentlist
and get start_number for compute current segment number.

fix ticket: 7976

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-09-12 10:41:06 +08:00
Steven Liu
2a21487b9e avformat/dashdec: start from the root uri when baseURL is start with '/'
fix ticket: 8097

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-09-02 13:40:19 +08:00
Steven Liu
24f7a8a168 avformat/dashdec: fix code style and remove some empty line 2019-07-10 17:26:33 +08:00
Steven Liu
a514244319 avformat/dashdec: fix code style in dash_read_packet 2019-07-05 11:52:49 +08:00
Steven Liu
6e988b75df avformat/dashdec: refine and fix code style of dash_read_header
move the temp variable to the top of the expression paragraph
rename the pls to rep(representation)
2019-07-04 16:11:47 +08:00
Steven Liu
43e0ddd33d avformat/dashdec: simplified code in open_demux_for_component
change from pls->ctx->streams[i]->codecpar to ist->codecpar

Signed-off-by: Steven Liu <lq@onvideo.cn>
2019-07-04 15:08:41 +08:00
sfan5
034b72fc0b avformat/dashdec: Fix reading values from SegmentTimeline inside Period
This was missed in commit e752da5464.
2019-07-01 11:06:06 +08:00
Steven Liu
665759c3c8 avformat/dashdec: check copy_init_section memory alloc result
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-06-14 17:06:40 +08:00
Steven Liu
aea524e6e3 avformat/dashdec: add http_proxy, referer and rw_timeout http method support for segments
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-06-14 10:53:26 +08:00
Jun Zhao
bf6e0f709b lavf/dashdec: refactoring error handle logic for open_input
refactoring error handle logic for open_input.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-14 17:36:19 +08:00
Jun Zhao
c663046b41 lavf/dashdec: fix the coding logic after open_input fail
setting return status following goto will never be executed, so
adjust the location in the code.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-14 17:36:11 +08:00
Steven Liu
613ca7b100 avformat/dashdec: add ProgramInformation parser
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-04-22 12:51:34 +08:00
Carl Eugen Hoyos
4d8875ec23 lavf: Constify the probe function argument.
Reviewed-by: Lauri Kasanen
Reviewed-by: Tomas Härdin
2019-03-21 11:42:17 +01:00
Carl Eugen Hoyos
3aa6208db9 lavf: Constify AVInputFormat pointer. 2019-03-20 18:52:38 +01:00
Paweł Wegner
835ab35ef0 libavformat/dashdec: disable seeking only for live streams.
Signed-off-by: Paweł Wegner <pawel.wegner95@gmail.com>
2019-02-06 13:01:34 +01:00
Gorilla Maguila
bb586a9703 avformat/dashdec: refine uri path with double dot process
fix ticket: 7540
2018-12-23 15:18:55 +08:00
Steven Liu
ba71ebbbfa avformat/dashdec: add subtitle stream support
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-11-30 16:39:19 +08:00
Andrey Semashev
1035206102 lavf/dashdec: Add webm to the list of allowed extensions.
This is in coherence with dashenc, which can now generate segments with
webm file name extension by default. Dashdec should be able to handle
such streams by default as well.
2018-11-27 11:27:19 +05:30
Steven Liu
7bb90a9449 avformat/dashdec: minus minBufferTime when there have value
fix ticket 7382
2018-09-06 13:40:56 +08:00
Steven Liu
ad9b4ecc26 avformat/dashdec: refine compute current fragment for presentation_timeoffset mode
fix ticket id: #7369 #7382.
use ((wallclock - availability_start_time) * timescale -presentation_timeoffset) / duration

Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-09-05 14:33:53 +08:00
Steven Liu
d0be0de065 avformat/dashdec: reindent code for previous commit
Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-09-05 14:21:33 +08:00
Steven Liu
8eac027cd1 avformat/dashdec: add min_buffer_time process logic
if there have min_buffer_time in playlist, use the min_buffer_time
value for realtime.

Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-09-05 14:20:52 +08:00
Steven Liu
e35e915465 avformat/dashdec: add trace message for get the logic output message
Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-09-05 14:19:43 +08:00
Steven Liu
a222798ef3 avformat/dashdec: reindent code for previous commit
Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-09-05 14:17:03 +08:00
Steven Liu
28578e6143 avformat/dashdec: remove redundant code
Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-09-05 14:16:29 +08:00
Steven Liu
e134c20374 avformat/dashdec: refine adaptionset attribute members
Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-09-05 14:15:47 +08:00
Steven Liu
f499679e17 avformat/dashdec: refine mpd element of attribute name availabilityEndTime
Signed-off-by: Steven Liu <lq@onvideo.cn>
2018-09-05 14:13:56 +08:00
Colin NG
b205635fbc avformat/dashdec: Add a re-entrance check point after an interrupt operation 2018-08-29 16:28:03 +08:00
Jacek Jendrzej
3cff2311ab avformat/dashdec: Fix calc_cur_seg_no if availability_start_time not
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
2018-08-29 15:20:00 +08:00
Michael Niedermayer
46753bfdd0 avformat/dashdec: Fix strlen(rep_id_val) with it being NULL
Fixes: dash-crash-da39a3ee5e6b4b0d3255bfef95601890afd80709.xml

Found-by: Paul Ch <paulcher@icloud.com>
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-08-19 02:47:33 +02:00
sanil
551a029a18 libavformat/dashdec: Support negative value of the @r attrbute of S in SegmentTimeline element.
The following patch supports parsing negative value of the @r attribute of S in SegmentTimeline element.

Example streams:
1. http://dash.edgesuite.net/dash264/TestCases/1c/qualcomm/1/MultiRate.mpd
2. http://dash.edgesuite.net/dash264/TestCases/1c/qualcomm/2/MultiRate.mpd
2018-08-13 16:53:59 +08:00
Colin NG
af4c2acddd libavformat/dashdec: Fix for un-free memory
Fixes ticket #7338.
2018-08-08 23:55:25 +02:00
Steven Liu
d54ae9b782 avformat/dashdec: remove unused functions and process code
Based on a patch for hls by Richard Shaffer

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-08-07 12:37:02 +08:00
Jacek Jendrzej
0cf5e6b5b4 avformat/dashdec: Fix memleak when resolve_content_path
Can be reproduced with:  valgrind  --leak-check=full  -v ffmpeg -i
http://yt-dash-mse-test.commondatastorage.googleapis.com/media/motion-20120802-manifest.mpd

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-08-07 12:31:55 +08:00
Jacek Jendrzej
2f45378ba1 avformat/dashdec: fix for ticket #7336
fix for ticket #7336

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-08-07 12:31:49 +08:00
Steven Liu
04b6060616 avformat/dashdec: replace user-agent to user_agent for deprecate warning message 2018-05-24 11:49:04 +08:00
Colin NG
93fc96e199 avformat/dashdec: Fix for ticket 7149 (Segfault when decoding dash streams)
simplify the code to check common init section
2018-05-24 11:49:00 +08:00
Colin NG
9aee574dd0 avformat/dashdec: Fix for ticket 7149 (Segfault when decoding dash streams)
Add NULL pointer check for init_section
2018-05-24 11:48:39 +08:00
Steven Liu
798ae8794e avformat/dashdec: fix compling warning "filename is deprecated"
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-04-26 16:19:30 +08:00
guikunzhi
8ea8be5951 fix memory leak of parsing dash MPD
Signed-off-by: guikunzhi <guikunzhi@163.com>
2018-04-26 12:40:52 +08:00
Carl Eugen Hoyos
8592ae1a1e lavf/dashdec: Do not use memcpy() to copy a struct.
Fixes a warning:
libavformat/dashdec.c:1900:65: warning: argument to 'sizeof' in 'memcpy' call is the same pointer type 'struct fragment *' as the destination; expected 'struct fragment' or an explicit length
2018-04-21 22:59:34 +02:00
sanilraut
9e2b4c7ecc libavformat/dashdec: Avoid multiple HTTP requests for initialization segment that is common among all representations
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: sanilraut <raut.sanil@gmail.com>
2018-04-17 14:36:45 +08:00
Steven Liu
6eaaad37f8 Revert "avformat/dashdec: Avoid multiple HTTP requests for initialization segment that is common among all representations"
This reverts commit 4effd1c4a2.
2018-04-17 14:32:27 +08:00
Steven Liu
4effd1c4a2 avformat/dashdec: Avoid multiple HTTP requests for initialization segment that is common among all representations
Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: sanilraut <raut.sanil@gmail.com>
2018-04-17 14:19:00 +08:00
sanilraut
10d008f0fd avformat/dashdec: Support signaling of last segment number
Last segment indicated by mpd is not parsed.
Example stream: http://dash.akamaized.net/dash264/TestCasesIOP41/LastSegmentNumber/1/manifest_last_segment_num.mpd

This patch supports parsing of Supplemental Descriptor with @schemeIdUri set to http://dashif.org/guide-
lines/last-segment-number with the @value set to the last segment number.

Reviewed-by: Steven Liu <lq@onvideo.cn>
2018-03-28 19:52:27 +08:00
sanilraut
1dd7bb9784 avformat/dashdec: Correct spelling mistakes
Signed-off-by: Steven Liu <lingjiujianke@gmail.com>
2018-03-15 11:36:20 -08:00
sfan5
e752da5464 dashdec: Support SegmentTimeline inside Period
Reviewed-by: Steven Liu <lq@onvideo.cn>
2018-02-09 10:54:24 +08:00
Brendan McGrath
4e3e8980b5 dashdec: Fix segfault on decoding segment timeline
If first_seq_no is not within the bounds of timelines then a segfault
will occur.
This patch removes the use of first_seq_no within the timelines array
It also adds first_seq_no to the value returned by calc_next_seg_no_from_timelines
(which allows for different values of 'startNumber')

Signed-off-by: Brendan McGrath <redmcg@redmandi.dyndns.org>
2018-01-29 10:46:50 +08:00
Colin NG
78e884f3fb libavformat/dashdec: Fix for ticket 6856 (filename limited to 1024) 2018-01-21 13:56:57 +08:00
Colin NG
7a63da8910 libavformat/dashdec: Fix for ticket 6658 (Dash demuxer segfault)
1 Add function 'resolve_content_path' to propagate the baseURL from
upper level nodes.
 * if no baseURL is available, the path of mpd file will be set as the baseURL.
2 Remove checking for newly established connection.
3 Establish the communication protocol in each connection rather than
 applying one protocol to all connection.
2018-01-21 13:35:30 +08:00
Colin NG
8db4ef3e6d avformat/dashdec.c: Download dash content with byte range info 2018-01-21 13:27:48 +08:00
Brendan McGrath
1f48c5c067 dashdec: Only free url string if being reused
If no representation bandwidth value is set, the url value returned
by get_content_url is corrupt (as it has been freed).
This change ensures the url string is not freed unless it is about
to be reused
Changes since v1:
 1 removed the unneeded 'if' statement (as pointed out by Michael Niedermayer
 2 added comment to make it clear why the av_free was required
Signed-off-by: Brendan McGrath <redmcg@redmandi.dyndns.org>
2018-01-21 13:20:02 +08:00
sfan5
777d6c677b dashdec: Make use of frame rate specified in Representation
If the manifest provides this, setting r_frame_rate
avoids warnings regarding frame rate estimation.
2018-01-21 13:14:51 +08:00
sfan5
57dbabd9c1 dashdec: Support SegmentTemplate inside Period
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-01-14 23:02:26 +08:00
sfan5
01d74c4055 dashdec: Avoid trying to read any segments beyond the last
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-01-14 23:01:45 +08:00
sfan5
74b143d81f dashdec: Correct seeking behaviour
dash_read_seek() is called only once to issue a seek
of *all* streams to the specified timestamp. But to
avoid reopening each stream, do a "dry run" for streams
that are in a discarded state.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-01-14 22:36:02 +08:00
sfan5
bb0cc2e7bd dashdec: Search for segment timeline inside AdaptionSets too 2018-01-14 22:35:31 +08:00
sfan5
94cc16499f dashdec: Support for multiple video/audio streams
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-01-14 22:34:43 +08:00
sfan5
66e551eafb dashdec: Expose bandwidth and representation ID as metadata
The primary goal was making it viable to play YouTube/Vimeo/... videos
using the native demuxer, since mpv currently uses a workaround in form
of Edit Decision Lists (EDL).

Implemented features:

1 Exposing id / bitrate as stream metadata (similar to the HLS demuxer)
2 Support for multiple video and audio streams
3 A few minor parts of the specification that are in use at YouTube

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-01-14 22:33:57 +08:00
Carl Eugen Hoyos
52b9575d4a lavf/dashdec: Fix several memleaks. 2017-11-12 22:20:22 +08:00
Steven Liu
56960ed9c3 Revert "lavf/dashdec: Fix several memleaks."
This reverts commit e7fe5e511a.
2017-11-12 22:19:28 +08:00
Steven Liu
1b323c3f9c avformat/dashdec: use the current DASHContext for the rep_dest
fix ticket id: #6820

Signed-off-by: Steven Liu <lq@onvideo.cn>
Tested-by: mrskman
2017-11-10 07:01:45 +08:00
Carl Eugen Hoyos
e7fe5e511a lavf/dashdec: Fix several memleaks.
Signed-off-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Tested-by: Steven Liu <lq@chinaffmpeg.org>
2017-11-10 06:59:25 +08:00
Steven Liu
ab96e2ca81 avformat/dashdec: free resource allocated by xml
modify from av_free to xmlFree

Suggested-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2017-09-09 08:34:07 +08:00
Steven Liu
96d70694ae avformat/dashdec: add dash demuxer base version
ffmpeg need a dash demuxer for demux the dash formats base on
https://github.com/samsamsam-iptvplayer/exteplayer3/blob/master/tmp/ffmpeg/patches/3.2.2/000001_add_dash_demux.patch

TODO:
1. support multi bitrate dash.

v2 fixed:
1. from autodetect to disabled
2. from camelCase code style to ffmpeg code style
3. from RepType to AVMediaType
4. fix variable typo
5. change time value from uint32_t to uint64_t
6. removed be used once API
7. change 'time(NULL)`, except it is not 2038-safe.' to av_gettime and av_timegm
8. merge complex free operation to free_fragment
9. use API from snprintf to av_asprintf

v3 fixed:
1. fix typo from --enabled-xml2 to --enable-xml2

v4 fixed:
1. from --enable-xml2 to --enable-libxml2
2. move system includes to top
3. remove nouse includes
4. rename enum name
5. add a trailing comma for the last entry enum
6. fix comment typo
7. add const to DASHContext class front
8. check sscanf if return arguments and give warning message when error
9. check validity before free seg->url and seg
10. check if the val is null, before use atoll

v5 fixed:
1. fix typo from mainifest to manifest

v6 fixed:
1. from realloc to av_realloc
2. from free to av_free

v7 fixed:
1. remove the -lxml2 from configure when require_pkg_config

v8 fixed:
1. fix replace filename template by av_asprintf secure problem

v9 modified:
1. make manifest parser clearly

v10 fixed:
1. fix function API name code style
2. remove redundant strreplace call
3. remove redundant memory operation and check return value from get_content_url()
4. add space between ) and {
5. remove no need to log the value for print

v11 fixed:
1. from atoll to strtoll
Suggested-by: Michael Niedermayer <michael@niedermayer.cc>

v12 fixed:
1. remove strreplace and instead by av_strreplace
Suggested-by: Nicolas George <george@nsup.org>

v13 fixed:
1. fix bug: cannot play:
http://dash.edgesuite.net/akamai/bbb_30fps/bbb_30fps.mpd
Reported-by: Andy Furniss <adf.lists@gmail.com>

v14 fixed:
1. fix bug: TLS connection was non-properly terminated
2. fix bug: No trailing CRLF found in HTTP header
Reported-by: Andy Furniss <adf.lists@gmail.com>

v15 fixed:
1. play youtube link: ffmpeg -i $(youtube-dl -J "https://www.youtube.com/watch?v=XmL19DOP_Ls" | jq -r ".requested_formats[0].manifest_url")
2. code refine for timeline living stream
Reported-by: Ricardo Constantino <wiiaboo@gmail.com>

v16 fixed:
1. remove the snprintf and instead by get_segment_filename make safety
2. remove unnecessary loops
3. updated xmlStrcmp and xmlFree to av_* functions
4. merge code repeat into one function
5. add memory alloc faild check
6. update update_init_section and open_url
7. output safety error message when filename template not safe
Suggested-by : wm4 <nfxjfg@googlemail.com>

v17 fixed:
1. add memory alloc faild check
2. fix resource space error at free_representation

v18 fixed:
1. add condition of template format

v19 fixed:
1. fix typo of the option describe

v20 fixed:
1. add the c->base_url alloc check
2. make the DASHTmplId same to dashenc

v21 fixed:
1. remove get_repl_pattern_and_format and get_segment_filename
2. process use dashcomm APIs

v22 fixed:
1. modify the include "dashcomm.h" to include "dash.h"
2. use internal API from dash_fill_tmpl_params to ff_dash_fill_tmpl_params

Signed-off-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: samsamsam <samsamsam@o2.pl>
2017-09-09 08:32:03 +08:00