Some RTMP commands need the most recent timestamp as their parameter, so
keep track of it. This must be the most recent one and not e.g. the max
received timestamp as it can decrease again through seeking.
Signed-off-by: Martin Storsjö <martin@martin.st>
This fixes the abnormally high ts overhead in the files produced by the
HLS and segments muxers. See https://trac.ffmpeg.org/ticket/2857 . For
example makes it much more likely that it can produces streams that fit
under the 64kb App store limit.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Some encoders do not use syncsafe sizes in v2.4 id3 tags. Check the next
tag to try to choose between the two.
Fixes ticket #4003
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '324b23dde1bc8638959eb32419c95a93906db272':
rtmpproto: Add function to read a number response
Merged-by: Michael Niedermayer <michaelni@gmx.at>
In (non-live) streams with no metadata, the duration of a stream can
be retrieved by calling the RTMP function getStreamLength with the
playpath. The server will return a positive duration upon the request if
the duration is known, otherwise either no response or a duration of 0
will be returned.
Signed-off-by: Martin Storsjö <martin@martin.st>
Packets that contain a number as a result to a rtmp function call are
structured the same way (String, Number, Null, Number). This new method
also includes more bounds checks to better handle packets that are not
structured as expected.
Signed-off-by: Martin Storsjö <martin@martin.st>
Add the judement after create a new program to avoid segment fault.
Signed-off-by: Di Wu <di1028.wu@samsung.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ced7238cd01cc2199acf9225305628641a27c1d7':
rtpdec_hevc: Use av_realloc instead of av_malloc+memcpy
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '74b02377980321934e33969c84733ace7e9f4eeb':
mov: Correctly check the color transfer characteristics range
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e5cfc8fdad901c9487fe896421972852f38bcf5':
sdp: Provide out of bound parameter sets for HEVC if extradata is set
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9b7f932ee568cadfc0f556a061fcc00cb63f9780':
rtpdec_hevc: Parse out of band vps/sps/pps/sei from fmtp lines
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2d6e58497e76836604364b037df9b00ba3d75b69':
lavf: switch to AVCodecContext.framerate for demuxing
Conflicts:
libavformat/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
These allow getting the absolute start timestamp of a fragment
without reading preceding timestamps. This fixes sync between
tracks if starting from fragments in different streams that don't
align exactly.
This also is a prerequisite for producing DASH content.
Signed-off-by: Martin Storsjö <martin@martin.st>
E-AC-3 samples should contain 6 audio blocks, so concatenate syncframes
in order to achieve this.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This introduces a new option to the mov demuxer: -use_mfra_for
(pts|dts). When it's given and moofs and a MFRA are present, the MFRA's
TFRAs are read for fragment start times.
Unfortunately some programs that produce fragmented mp4s use the TFRA
time field for dts and some for pts. There is no realistic way to detect
which is the case, hence the responsibility is punted onto the user.
This also means that no behavioural change is enabled by default - you
must pass either dts or pts for anything to happen.
Without this change, timestamps for some discontinuous fragmented mp4 are
wrong, and cause audio/video desync and are not usable for generating
HLS.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>