- 11 2月, 2017 3 次提交
-
-
由 Anton Khirnov 提交于
-
由 Anton Khirnov 提交于
Before this commit, AVIOContext is to be freed with a plain av_free(), which prevents us from adding any deeper structure to it.
-
由 Vittorio Giovara 提交于
In order to avoid potential integer overflow change the comparison and make sure to use the same unsigned type for both elements.
-
- 10 2月, 2017 1 次提交
-
-
由 Luca Barbato 提交于
Signed-off-by: NLuca Barbato <lu_zero@gentoo.org>
-
- 08 2月, 2017 1 次提交
-
-
由 Diego Biurrun 提交于
-
- 04 2月, 2017 1 次提交
-
-
由 John Stebbins 提交于
The AVFormat stream count can be larger due external factors, such as an id3 tag appended. Avoid an out of bound read. Signed-off-by: NLuca Barbato <lu_zero@gentoo.org>
-
- 03 2月, 2017 2 次提交
-
-
由 Martin Storsjö 提交于
This swaps which field is set when the Window Acknowledgement Size and Set Peer BW packets are received, renames the fields in order to clarify their role further and adds verbose comments explaining their respective roles and how well the code currently does what it is supposed to. The Set Peer BW packet tells the receiver of the packet (which can be either client or server) that it should not send more data if it already has sent more data than the specified number of bytes, without receiving acknowledgement for them. Actually checking this limit is currently not implemented. In order to be able to check that properly, one can send the Window Acknowledgement Size packet, which tells the receiver of the packet that it needs to send Acknowledgement packets (RTMP_PT_BYTES_READ) at least after receiving a given number of bytes since the last Acknowledgement. Therefore, when we receive a Window Acknowledgement Size packet, this sets the maximum number of bytes we can receive without sending an Acknowledgement; therefore when handling this packet we should set the receive_report_size field (previously client_report_size). Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Martin Storsjö 提交于
Also rename comments and log messages accordingly, and add clarifying comments for some hardcoded values. The previous names were taken from older, reverse engineered references. These names match the official public rtmp specification, and matches the names used by wirecast in annotating captured streams. These names also avoid hardcoding the roles of server and client, since the handling of them is irrelevant of whether we act as server or client. The RTMP_PT_PING type maps to RTMP_PT_USER_CONTROL. The SERVER_BW and CLIENT_BW types are a bit more intertwined; RTMP_PT_SERVER_BW maps to RTMP_PT_WINDOW_ACK_SIZE and RTMP_PT_CLIENT_BW maps to RTMP_PT_SET_PEER_BW. Signed-off-by: NMartin Storsjö <martin@martin.st>
-
- 01 2月, 2017 3 次提交
-
-
由 Anton Khirnov 提交于
-
由 Alexandra Hájková 提交于
-
由 Diego Biurrun 提交于
-
- 31 1月, 2017 10 次提交
-
-
由 Mark Thompson 提交于
The string codec name need not be as long as the value we are comparing it to, so memcmp may make decisions derived from uninitialised data that valgrind then complains about (though the overall result of the function will always be the same). Use strncmp instead, which will stop at the first zero byte and therefore not encounter this issue.
-
由 Peter Große 提交于
Use webm muxer for VP8, VP9 and Opus codec, mp4 muxer otherwise. Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
The dash_write function drops data, if no IOContext is initialized. Since the mp4 muxer is used in "frag_custom" mode, data is only written when calling av_write_frame(NULL) explicitly and thus there will be no data loss. To add support for webm as subordinate muxer, which doesn't have such a mode, a dynamic buffer is required to provide an always initialized IOContext. Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
Previously all mapped streams of a media type (video, audio) where assigned to a single AdaptationSet. Using the DASH live profile it is mandatory, that the segments of all representations are aligned, which is currently not enforced. This leads to problems when using video streams with different key frame intervals. So to play safe, default to one AdaptationSet per stream, unless overwritten by explicit assignment. To get the old assignment scheme, use -adaptation_sets "id=0,streams=v id=1,streams=a" Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
Using the characters "v" or "a" instead of stream index numbers for assigning streams in the adaption_set option, all streams matching that given type will be added to the AdaptationSet. Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
Also makes sure all streams are assigned to exactly one AdaptationSet. This patch is originally based partially on code by Vignesh Venkatasubramanian. Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
Bandwidth information is required in the manifest, but not always provided by the demuxer. In that case calculate the bandwith based on the size and duration of the first segment. Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
The current implementation creates new segments comparing pkt->pts - first_pts > nb_segs * min_seg_duration This works fine, but if the keyframe interval is smaller than "min_seg_duration" segments shorter than the minimum segment duration are created. Example: keyint=50, min_seg_duration=3000000 segment 1 contains keyframe 1 (duration=2s < total_duration=3s) and keyframe 2 (duration=4s >= total_duration=3s) segment 2 contains keyframe 3 (duration=6s >= total_duration=6s) segment 3 contains keyframe 4 (duration=8s < total_duration=9s) and keyframe 5 (duration=10s >= total_duration=9s) ... Segment 2 is only 2s long, shorter than min_seg_duration = 3s. To fix this, new segments are created based on the actual written duration. Otherwise the option name "min_seg_duration" is misleading. Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
If set, adds a UTCTiming tag in the manifest. This is part of the recommendations listed in the "Guidelines for Implementations: DASH-IF Interoperability Points" [1][2] Section 4.7 describes means for the Availability Time Synchronization. A usable default is "https://time.akamai.com/?iso" [1] http://dashif.org/guidelines/ [2] http://dashif.org/wp-content/uploads/2016/12/DASH-IF-IOP-v4.0-clean.pdf (current version as of writing) Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
- 30 1月, 2017 1 次提交
-
-
由 Luca Barbato 提交于
Servers seem to be happy to receive the wrapped-around value as long as they receive a report, otherwise they timeout. Initially reported and analyzed by Thomas Bernhard.
-
- 27 1月, 2017 3 次提交
-
-
由 Anton Schubert 提交于
to avoid rebuffering on the clientside for difficult network conditions. Signed-off-by: NAnton Schubert <ischluff@mailbox.org> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Peter Große 提交于
Signed-off-by: NPeter Große <pegro@friiks.de> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Anton Schubert 提交于
Appends Z to timestamp to force ISO8601 datetime parsing as UTC. Without Z, some browsers (Chrome) interpret the timestamp as localtime and others (Firefox) interpret it as UTC. Signed-off-by: NAnton Schubert <ischluff@mailbox.org> Signed-off-by: NMartin Storsjö <martin@martin.st>
-
- 25 1月, 2017 2 次提交
-
-
由 Alexandra Hájková 提交于
-
由 Alexandra Hájková 提交于
-
- 13 1月, 2017 2 次提交
-
-
由 Alexandra Hájková 提交于
-
由 Alexandra Hájková 提交于
-
- 05 1月, 2017 1 次提交
-
-
由 Anton Khirnov 提交于
If a read fails, the current code will free the data but leave the size non-zero. Make sure the size is zeroed in such a case. CC: libav-stable@libav.org Bug-Id: 1001 Found-By: Kamil Frankowicz Signed-off-by: NSean McGovern <gseanmcg@gmail.com>
-
- 25 12月, 2016 1 次提交
-
-
由 John Stebbins 提交于
The codec id for SRT was changed and conditionals were not updated.
-
- 24 12月, 2016 2 次提交
-
-
由 Martin Storsjö 提交于
A negative chunk size is illegal and would end up used as length for memcpy, where it would lead to memory accesses out of bounds. Found-by: NPaul Cher <paulcher@icloud.com> CC: libav-stable@libav.org Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Diego Biurrun 提交于
-
- 22 12月, 2016 1 次提交
-
-
由 Diego Biurrun 提交于
This moves work from the configure to the Make stage where it can be parallelized and ensures that pkgconfig files are updated when library versions change. Bug-Id: 449
-
- 19 12月, 2016 2 次提交
-
-
由 Alexandra Hájková 提交于
-
由 Anton Khirnov 提交于
When the input string is too large, so the second condition in if () fails, the code will erroneously execute the else branch, indexing the mac_to_unicode table with a negative index. CC: libav-stable@libav.org Bug-Id: 1000 Found-By: Kamil Frankowicz
-
- 15 12月, 2016 2 次提交
-
-
由 Michael Niedermayer 提交于
When receiving fragmented packets, the first packet declares the size, and the later ones normally are small follow-on packets that don't repeat the size and the other header fields. But technically, the later fragments also can have a full header, declaring a different size than the previous packet. If the follow-on packet declares a larger size than the initial one, we could end up writing outside of the allocation. This fixes out of bounds writes. Found-by: NPaul Cher <paulcher@icloud.com> Reviewed-by: NPaul Cher <paulcher@icloud.com> CC: libav-stable@libav.org Signed-off-by: NMartin Storsjö <martin@martin.st>
-
由 Martin Storsjö 提交于
This seems to have been added by mistake in 11de006b, by not noticing the negation for the existing condition. This block does not contain any code that accesses the codec field in AVStream. This function is meant to serve as a complement to compute_pkt_fields2, which is guarded by FF_API_COMPUTE_PKT_FIELDS2 && FF_API_LAVF_AVCTX. Signed-off-by: NMartin Storsjö <martin@martin.st>
-
- 09 12月, 2016 2 次提交
-
-
由 Luca Barbato 提交于
Make avio_size() work with any write AVIOContext.
-
由 Diego Biurrun 提交于
-