summaryrefslogtreecommitdiff
path: root/libavcodec/mmaldec.c
Commit message (Collapse)AuthorAge
...
| * mmaldec: disable timestamp interpolationwm42015-09-12
| | | | | | | | | | | | | | | | | | This MMAL feature fills in missing timestamps from the framerate set on the input port. This is generally unwanted, since libavcodec decoders merely pass through timestamps without ever "fixing" them. The framerate is also unknown, and even the timebase doesn't have to be set. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * mmaldec: fix problems with flush logicwm42015-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't try to do a blocking wait for MMAL output if we haven't even sent a single real packet, but only flush packets. Obviously we can't expect to get anything back. Additionally, don't send a flush packet to MMAL in the same case. It appears the MMAL decoder will sometimes hang in mmal_vc_port_disable() (called from ffmmal_close_decoder()), waiting for a reply from the GPU which never arrives. Either MMAL disallows sending flush packets without preceding real data, or it's a MMAL bug. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * mmaldec: hack against buffering problems on broken inputwm42015-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I can't come up with a nice way to handle this. It's hard to keep the lock-stepped input/output in this case. You can't predict whether the MMAL decoder will output a picture (because it's asynchronous), so you have to assume in general that any packet could produce 0 or 1 frames. You can't continue to write input packets to the decoder, because then you might get too many output frames, which you can't get rid of because the lavc decoding API does not allow the decoder to return an output frame without consuming an input frame (except when flushing). The ideal fix is a M:N decoding API (preferably asynchronous), which would make this code potentially much cleaner. For now, this hack will do. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | mmaldec: fix problems with flush logicwm42015-08-11
| | | | | | | | | | | | | | | | | | | | | | | | Don't try to do a blocking wait for MMAL output if we haven't even sent a single real packet, but only flush packets. Obviously we can't expect to get anything back. Additionally, don't send a flush packet to MMAL in the same case. It appears the MMAL decoder will sometimes hang in mmal_vc_port_disable() (called from ffmmal_close_decoder()), waiting for a reply from the GPU which never arrives. Either MMAL disallows sending flush packets without preceding real data, or it's a MMAL bug.
* | mmaldec: do not mutate user's AVCodecContext extradata fieldwm42015-08-11
| |
* | mmaldec: hack against buffering problems on broken inputwm42015-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I can't come up with a nice way to handle this. It's hard to keep the lock-stepped input/output in this case. You can't predict whether the MMAL decoder will output a picture (because it's asynchronous), so you have to assume in general that any packet could produce 0 or 1 frames. You can't continue to write input packets to the decoder, because then you might get too many output frames, which you can't get rid of because the lavc decoding API does not allow the decoder to return an output frame without consuming an input frame (except when flushing). The ideal fix is a M:N decoding API (preferably asynchronous), which would make this code potentially much cleaner. For now, this hack will do.
* | Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'Michael Niedermayer2015-07-27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'def97856de6021965db86c25a732d78689bd6bb0': lavc: AV-prefix all codec capabilities Conflicts: cmdutils.c ffmpeg.c ffplay.c libavcodec/8svx.c libavcodec/aacenc.c libavcodec/ac3dec.c libavcodec/adpcm.c libavcodec/alac.c libavcodec/atrac3plusdec.c libavcodec/bink.c libavcodec/dnxhddec.c libavcodec/dvdec.c libavcodec/dvenc.c libavcodec/ffv1dec.c libavcodec/ffv1enc.c libavcodec/fic.c libavcodec/flacdec.c libavcodec/flacenc.c libavcodec/flvdec.c libavcodec/fraps.c libavcodec/frwu.c libavcodec/gifdec.c libavcodec/h261dec.c libavcodec/hevc.c libavcodec/iff.c libavcodec/imc.c libavcodec/libopenjpegdec.c libavcodec/libvo-aacenc.c libavcodec/libvorbisenc.c libavcodec/libvpxdec.c libavcodec/libvpxenc.c libavcodec/libx264.c libavcodec/mjpegbdec.c libavcodec/mjpegdec.c libavcodec/mpegaudiodec_float.c libavcodec/msmpeg4dec.c libavcodec/mxpegdec.c libavcodec/nvenc_h264.c libavcodec/nvenc_hevc.c libavcodec/pngdec.c libavcodec/qpeg.c libavcodec/ra288.c libavcodec/rv10.c libavcodec/s302m.c libavcodec/sp5xdec.c libavcodec/takdec.c libavcodec/tiff.c libavcodec/tta.c libavcodec/utils.c libavcodec/v210dec.c libavcodec/vp6.c libavcodec/vp9.c libavcodec/wavpack.c libavcodec/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * lavc: AV-prefix all codec capabilitiesVittorio Giovara2015-07-27
| | | | | | | | | | | | Express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '49e531ff4706279c7eed774f2c8b896942924ce2'Michael Niedermayer2015-04-14
|\| | | | | | | | | | | | | * commit '49e531ff4706279c7eed774f2c8b896942924ce2': mmal: Reference MMAL VC lib explicitly Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mmal: Reference MMAL VC lib explicitlywm42015-04-14
| | | | | | | | | | | | | | | | | | | | This is optional, but ensures that linking with -Wl,--as-needed does not drop the library containing the MMAL VC driver. The driver normally "registers" itself in the library constructor, but since no symbols are explicitly referenced, the linker could remove it with --as-needed enabled. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '2de7650451d90520135d8cf6f96caa0658824208'Michael Niedermayer2015-04-14
|\| | | | | | | | | | | | | * commit '2de7650451d90520135d8cf6f96caa0658824208': mmal: Move system headers before local headers Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mmal: Move system headers before local headerswm42015-04-14
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit 'c48456166e95648719a8be8f8613f9dee98205c1'Michael Niedermayer2015-03-29
|/ | | | | | | | | | | | | | | | * commit 'c48456166e95648719a8be8f8613f9dee98205c1': lavc: add MMAL hardware decoder wrapper Conflicts: Changelog configure doc/APIchanges libavcodec/Makefile libavcodec/allcodecs.c libavcodec/version.h libavutil/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
* lavc: add MMAL hardware decoder wrapperwm42015-03-29
Based on a patch by Rodger Combs. Signed-off-by: Anton Khirnov <anton@khirnov.net>