summaryrefslogtreecommitdiff
path: root/libavformat/rtmpproto.c
Commit message (Collapse)AuthorAge
* Merge commit '59cb5747ec3c5cd842b94e574c37889521c97cc4'Michael Niedermayer2014-06-02
|\ | | | | | | | | | | | | * commit '59cb5747ec3c5cd842b94e574c37889521c97cc4': rtmpproto: read metadata to set correct FLV header Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: read metadata to set correct FLV headerUwe L. Korn2014-06-01
| | | | | | | | | | | | | | | | In the presence of no metadata, do not set any stream flag in the FLV header but let the demuxer handle the detection and creation of streams as data arrives. Signed-off-by: Martin Storsjö <martin@martin.st>
* | rtmpproto: info out for unsupported auth varsReynaldo H. Verdejo Pinochet2014-05-16
| | | | | | | | | | | | Should aid debugging badly formatted URLs Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
* | rtmpproto: avoid setting auth var value if nullReynaldo H. Verdejo Pinochet2014-05-16
| | | | | | | | | | | | | | | | | | | | | | Use default values if parsed variable is found not to have any value. Avoids crashing at strlen for salt/user on the auth call afterwards and needless NULL assignments for the rest (default is already NULL for those). Should fix Coverity Scan issues #966644 and #966645 Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
* | Merge commit '0bacfa8d37710b904897e7cbeb8d6f96fbf75e2e'Michael Niedermayer2014-05-08
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '0bacfa8d37710b904897e7cbeb8d6f96fbf75e2e': rtmpproto: Check the buffer sizes when copying app/playpath strings Conflicts: libavformat/rtmpproto.c See: 0c2a6dabced53b4df57aedf47f0c1b8233035fed See: 02ac3398eb52679301028c2fd3ebad1b6261b4da Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Check the buffer sizes when copying app/playpath stringsMartin Storsjö2014-05-08
| | | | | | | | | | | | | | As pointed out by Reimar Döffinger. CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* | avformat/rtmpproto: add FFMIN() to av_strlcpy()Michael Niedermayer2014-05-08
| | | | | | | | | | Suggested-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '7ce3bd9614717e545af8fb8455032c807e389b78'Michael Niedermayer2014-05-07
|\| | | | | | | | | | | | | * commit '7ce3bd9614717e545af8fb8455032c807e389b78': rtmpproto: Support alternative slist parameter in rtmp URLs Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Support alternative slist parameter in rtmp URLsUwe L. Korn2014-05-06
| | | | | | | | | | | | | | | | | | | | | | | | Support the URL scheme where the playpath is in an RTMP URL is passed as the slist argument and the app is given infront of the query part of the URL: rtmp://host[:port]/[app]?slist=[playpath] (other arguments in the query part are stripped as they are not used) Signed-off-by: Martin Storsjö <martin@martin.st>
| * rtmpproto: Handle RTMP chunk size packets before the connect packetStephan Soller2014-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | In all other cases where ff_rtmp_packet_read is used, the packet returned is passed to rtmp_parse_result more or less immediately. In this single case, the content of the packet was required to be a connect packet. Some clients, e.g. Open Broadcaster Software, send a chunk size packet before the connect packet. If the first packet is a chunk size packet, handle it and read another one, requiring this to be a connect packet instead. Signed-off-by: Martin Storsjö <martin@martin.st>
* | avformat/rtmpproto: Added handling of an initial RTMP chunk size packet.Stephan Soller2014-04-14
| | | | | | | | | | | | | | Fixes ticket #2911. Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '6477139721f559b26eafd415e23e13ea2b0c27e1'Michael Niedermayer2014-04-14
|\| | | | | | | | | | | | | * commit '6477139721f559b26eafd415e23e13ea2b0c27e1': rtmpproto: Make sure to pass on the error code if read_connect failed Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Make sure to pass on the error code if read_connect failedMartin Storsjö2014-04-14
| | | | | | | | | | | | | | | | | | Previously, if read_connect failed, the ret variable was unmodified and had the value 0, indicating success, which then was returned from the rtmp_open function, even though it actually failed. CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '24eb3c791606fe98a1591c13a8b2ba6c342bb3b5'Michael Niedermayer2014-01-21
|\| | | | | | | | | | | | | * commit '24eb3c791606fe98a1591c13a8b2ba6c342bb3b5': rtmpproto: Avoid using uninitialized memory Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Avoid using uninitialized memoryMartin Storsjö2014-01-20
| | | | | | | | | | | | | | If the url ends with .flv, we stripped it but didn't initialize rt->playpath, doing av_strlcat on an uninitialized buffer. Signed-off-by: Martin Storsjö <martin@martin.st>
| * rtmpproto: Reorder conditions to help dead code eliminationVittorio Giovara2013-11-03
| | | | | | | | | | This makes sure that these branches are eliminated properly with clang with optimizations disabled.
* | Merge commit '84a125c4c28f3e3e215d2e6c32f7f0ec43bbc04c'Michael Niedermayer2013-10-14
|\| | | | | | | | | | | | | * commit '84a125c4c28f3e3e215d2e6c32f7f0ec43bbc04c': rtmp: Allocate the prev_pkt arrays dynamically Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmp: Allocate the prev_pkt arrays dynamicallyMartin Storsjö2013-10-14
| | | | | | | | | | | | | | | | | | | | Normally, all channel ids are between 0 and 10, while they in uncommon cases can have values up to 64k. This avoids allocating two arrays for up to 64k entries (at a total of over 6 MB in size) each when most of them aren't used at all. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'cd818b3a5709b9b08bd5901cb8863a8b61be265e'Michael Niedermayer2013-10-04
|\| | | | | | | | | | | | | * commit 'cd818b3a5709b9b08bd5901cb8863a8b61be265e': rtmpproto: Validate the embedded flv packet size before copying Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Validate the embedded flv packet size before copyingMartin Storsjö2013-10-04
| | | | | | | | | | | | | | | | | | | | This wasn't an issue prior to 58404738, when the whole RTMP packet was copied at once and the length of the individual embedded flv packets only were validated by the flv demuxer. Prior to this patch, this could lead to reads and writes out of bound. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '8921e32f730c191543b84e61338bc9d549aa05a3'Michael Niedermayer2013-10-04
|\| | | | | | | | | | | | | * commit '8921e32f730c191543b84e61338bc9d549aa05a3': rtmpproto: Readjust the end of the flv buffer if handle_metadata exited early Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Readjust the end of the flv buffer if handle_metadata exited earlyMartin Storsjö2013-10-04
| | | | | | | | | | | | | | | | If the embedded flv packets were incomplete and we aborted the copying loop early, make sure the flv buffer is trimmed to only contain full packets. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '24fee95321c1463360ba7042d026dae021854360'Michael Niedermayer2013-10-04
|\| | | | | | | | | | | | | * commit '24fee95321c1463360ba7042d026dae021854360': rtmpproto: Move the flv header/trailer addition to append_flv_data Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Move the flv header/trailer addition to append_flv_dataMartin Storsjö2013-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | update_offset is also called from handle_metadata, where the packet header sizes is already included in the size. Previously this lead to flv_data/flv_size including 15 uninitialized bytes at the end after each call to handle_metadata, making the flv demuxer lose sync with the stream. Also remove leftover copying in handle_metadata. This is a leftover from the refactoring in 5840473. (Previously this final mempcy was the one that copied all the packets at once, while this is done within the loop right now.) After making sure flv_size is set to the right size, this write was out of bounds. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '72540e514ceaaed8ecb97ed63637b2a2a4447ab8'Michael Niedermayer2013-10-04
|\| | | | | | | | | | | | | * commit '72540e514ceaaed8ecb97ed63637b2a2a4447ab8': rtmpproto: Clear the flv allocation size on reallocp failures Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Clear the flv allocation size on reallocp failuresMartin Storsjö2013-10-04
| | | | | | | | | | | | | | This was overlooked in d872fb0f7 since I assumed all the realloc issues in the rtmp code was fixed already. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '4d6d70292e91a7ef027824d731b6b6570ceabf2f'Michael Niedermayer2013-10-04
|\| | | | | | | | | | | | | * commit '4d6d70292e91a7ef027824d731b6b6570ceabf2f': rtmpproto: Pass the 'live' parameter in the right unit Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Pass the 'live' parameter in the right unitMartin Storsjö2013-10-04
| | | | | | | | | | | | | | | | | | | | | | The current magic numbers passed are values in seconds, while the parameter itself should be passed over the wire in milliseconds. This makes (some/all?) live streams from Red5 work correctly, that previously returned StreamNotFound even with "-rtmp_live live". After this commit, the default 'any' also works on these streams. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'a6b361325f2bfc8d9d4e5f761d6c1a07b209c4fb'Michael Niedermayer2013-10-04
|\| | | | | | | | | | | | | * commit 'a6b361325f2bfc8d9d4e5f761d6c1a07b209c4fb': rtmpproto: Print the error code string if there's no description Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Print the error code string if there's no descriptionMartin Storsjö2013-10-04
| | | | | | | | | | | | | | | | | | | | On (certain streams/setups at least on) Red5, the description string actually is present, but empty. Therefore, first try loading the description, but if not found or empty, load the code string instead. The code string is quite understandable in most cases anyway (like "NetStream.Play.StreamNotFound"). Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-10-02
|\| | | | | | | | | | | | | * qatar/master: rtmp: alias rtmp_listen to listen Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmp: alias rtmp_listen to listenLuca Barbato2013-10-01
| | | | | | | | Make it uniform with the other protocols.
* | Merge commit 'd872fb0f7ff2ff0ba87f5ccf6a1a55ca2be472c9'Michael Niedermayer2013-09-27
|\| | | | | | | | | | | | | | | | | | | * commit 'd872fb0f7ff2ff0ba87f5ccf6a1a55ca2be472c9': lavf: Reset the entry count and allocation size variables on av_reallocp failures Conflicts: libavformat/avienc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavf: Reset the entry count and allocation size variables on av_reallocp ↵Martin Storsjö2013-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | failures When av_reallocp fails, the associated variables that keep track of the number of elements in the array (and in some cases, the separate number of allocated elements) need to be reset. Not all of these might technically be needed, but it's better to reset them if in doubt, to make sure variables don't end up conflicting. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'ba77757a7efafe38924b6b423acfca8c1e1c62d6'Michael Niedermayer2013-09-23
|\| | | | | | | | | | | | | * commit 'ba77757a7efafe38924b6b423acfca8c1e1c62d6': rtmp: Replace a magic number with a macro Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmp: Replace a magic number with a macroLuca Barbato2013-09-22
| | | | | | | | 11 is the RTMP header size.
* | Merge commit '5840473890440dbe0bd2cce530ebb3d93e187ae6'Michael Niedermayer2013-09-23
|\| | | | | | | | | | | | | * commit '5840473890440dbe0bd2cce530ebb3d93e187ae6': rtmp: Rewrite embedded flv handling Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmp: Rewrite embedded flv handlingLuca Barbato2013-09-22
| | | | | | | | | | | | Use update_offset() as done for rtmp audio, video and notifications and read update and write the fields instead of replacing them in the rtmp packet and then memcpying it to the output buffer.
* | Merge commit 'e40a0e822801d2485e4e555909d7a82713fa86a5'Michael Niedermayer2013-09-23
|\| | | | | | | | | | | | | * commit 'e40a0e822801d2485e4e555909d7a82713fa86a5': rtmp: Refactor get_packet Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmp: Refactor get_packetLuca Barbato2013-09-22
| |
* | Merge commit '5532ee6d7d554bb54d4374d0b69f72bc9ab9fd91'Michael Niedermayer2013-09-20
|\| | | | | | | | | | | | | * commit '5532ee6d7d554bb54d4374d0b69f72bc9ab9fd91': rtmp: Unbreak get_packet Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmp: Unbreak get_packetLuca Barbato2013-09-20
| | | | | | | | Commit 5626f994f273af80fb100d4743b963304de9e05c broke it.
* | Merge commit 'b97b1adb3f807e1acd00d56319ee6cb41cc727e4'Michael Niedermayer2013-09-20
|\| | | | | | | | | | | | | * commit 'b97b1adb3f807e1acd00d56319ee6cb41cc727e4': rtmpproto: Add a comment explaining the logic in handle_notify Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmpproto: Add a comment explaining the logic in handle_notifyMartin Storsjö2013-09-20
| | | | | | | | | | | | | | This explains why the cleanup in 5626f994f was wrong and why ae0f316a was needed. Signed-off-by: Martin Storsjö <martin@martin.st>
| * rtmp: Unbreak handle_notifyLuca Barbato2013-09-19
| | | | | | | | Commit 5626f994f273af80fb100d4743b963304de9e05c broke it.
* | rtmp: Unbreak handle_notifyLuca Barbato2013-09-19
| | | | | | | | Commit 5626f994f273af80fb100d4743b963304de9e05c broke it.
* | Merge commit '5626f994f273af80fb100d4743b963304de9e05c'Michael Niedermayer2013-09-19
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '5626f994f273af80fb100d4743b963304de9e05c': avformat: Use av_reallocp() where suitable Conflicts: libavformat/avidec.c libavformat/avienc.c libavformat/aviobuf.c libavformat/oggparsevorbis.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avformat: Use av_reallocp() where suitableAlexandra Khirnova2013-09-18
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '8583b14252deac71136f1dec231910abab0ba503'Michael Niedermayer2013-09-18
|\| | | | | | | | | | | | | * commit '8583b14252deac71136f1dec231910abab0ba503': rtmp: Support reading interleaved chunks. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * rtmp: Support reading interleaved chunks.Josh Allmann2013-09-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A given packet won't always come in contiguously; sometimes they may be broken up on chunk boundaries by packets of another channel. This support primarily involves tracking information about the data that's been read, so the reader can pick up where it left off for a given channel. As a side effect, we no longer over-report the bytes read if (toread = MIN(size, chunk_size)) == size Signed-off-by: Martin Storsjö <martin@martin.st>