summaryrefslogtreecommitdiff
path: root/libavformat/rtpdec_vp8.c
Commit message (Collapse)AuthorAgeFilesLines
* rtpdec: Initialize some variables to silence compiler warningsMartin Storsjö2013-03-021-1/+1
| | | | | | | | The warnings are false positives, older gcc versions (such as 4.5) think the variables can be used uninitialized while they in practice can't, while newer (4.6) gets it right. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Don't trim too much data from broken framesMartin Storsjö2013-01-101-4/+2
| | | | | | | | | | | | | Previously, for broken frames, we only returned the first partition of the frame (we would append all the received packets to the packet buffer, then set pkt->size to the size of the first partition, since the rest of the frame could have lost data inbetween) - now instead return the full buffered data we have, but don't append anything more to the buffer after the lost packet discontinuity. Decoding the truncated packet should hopefully get better quality than trimming out everything after the first partition. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Simplify code by using an existing helper functionMartin Storsjö2013-01-101-5/+2
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Mark broken packets with AV_PKT_FLAG_CORRUPTMartin Storsjö2013-01-091-0/+5
| | | | | | | | This allows the caller to either include them (and get more packets decoded, but possibly some nonperfect frames), or discard them (by setting fflags=discardcorrupt). Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Request a keyframe if RTP packets are lostMartin Storsjö2013-01-081-1/+27
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Avoid a warning about a possibly unused variableMartin Storsjö2013-01-081-1/+1
| | | | | | | | The warning is a false positive, but I prefer actually initializing it over masking it with av_uninit, since the code is not performance critical. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Make sure the previous packet is returnedMartin Storsjö2013-01-081-4/+5
| | | | | | | | | | | This is a bug from c7d4de3d73 - if the previous frame wasn't returned yet (due to missing the final packets), but we have enough data of it to return the first partition, we write that into pkt and set returned_old_frame. That commit forgot returning 0 for the case where this current packet didn't have the end_packet flag set. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Set the timestamp when returning a deferred packetMartin Storsjö2013-01-081-0/+1
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Don't return known-broken packetsMartin Storsjö2012-12-211-21/+149
| | | | | | | | | | | | | | | | This is built on the assumption that the first partition of each VP8 packet is essential for decoding any later packet - if this partition is broken/missed, the arithmetic coder gets out of sync and decoding the bitstream in further packet ends up with total garbage. If packets of a frame are lost, make sure the first partition is intact (return only this part of the packet, nothing else), otherwise stop returning data until the next keyframe is received. Alternatively, one would simply not return any packets at all until the next keyframe, if packet loss is detected. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec: Pass the sequence number to depacketizersMartin Storsjö2012-12-211-7/+4
| | | | | | This allows depacketizers to figure out if packets have been lost. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Cosmetics: Fix bad alignment/indentationMartin Storsjö2012-12-161-2/+2
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec_vp8: Don't parse fields that aren't usedMartin Storsjö2012-11-021-19/+6
| | | | | | This avoids warnings about unused variables. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtpdec: factorize identical code used in several handlersAnton Khirnov2012-11-021-10/+3
|
* rtpdec_vp8: Make the depacketizer implement the latest spec draftMartin Storsjö2012-10-081-53/+64
| | | | | | | | | | | Not all details are implemented, but it's enough for proper playback as long as there is no packet loss. Tested to work with the packetizer in gstreamer (which although uses a different codec name, to clarify that it is still a spec draft). Signed-off-by: Martin Storsjö <martin@martin.st>
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-071-1/+1
|
* doxygen: use Doxygen markup for authors and web links where appropriateDiego Biurrun2011-07-151-1/+1
|
* rtp: Rename the open/close functions to alloc/freeMartin Storsjö2011-04-241-2/+2
| | | | | | | This avoids clashes if we internally want to override the global open function. Signed-off-by: Martin Storsjö <martin@martin.st>
* avio: avio_ prefix for url_close_dyn_bufAnton Khirnov2011-04-031-2/+2
|
* avio: avio_ prefix for url_open_dyn_bufAnton Khirnov2011-04-031-1/+1
|
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-191-4/+4
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* avio: avio: avio_ prefixes for put_* functionsAnton Khirnov2011-02-211-1/+1
| | | | | | | | | | | | In the name of consistency: put_byte -> avio_w8 put_<type> -> avio_w<type> put_buffer -> avio_write put_nbyte will be made private put_tag will be merged with avio_put_str Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avio: rename ByteIOContext to AVIOContext.Anton Khirnov2011-02-201-1/+1
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* RTP/VP8: Update the warning about the VP8 payloadMartin Storsjö2010-12-051-1/+2
| | | | | | | The current implementation is incompatible with the latest spec drafts, this should be communicated clearly to the user. Originally committed as revision 25887 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add RTP depacketization of VP8Josh Allmann2010-08-161-0/+153
Patch by Josh Allmann, joshua dot allmann at gmail Originally committed as revision 24798 to svn://svn.ffmpeg.org/ffmpeg/trunk