summaryrefslogtreecommitdiff
path: root/libavformat/img2dec.c
Commit message (Collapse)AuthorAge
* avformat/img2dec: Don't include disabled demuxersAndreas Rheinhardt2022-01-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/img2dec: probe JFIF/Exif headerAlex Xu (Hello71)2021-11-27
| | | | | | | | | | | | | | | | | Due to reasons, mpv doesn't pass filename when probing. mpv also sets default probescore threshold to 26. Since the current jpeg_probe implementation returns 25 until EOI, it means that the whole image needs to be probed to succeed. Worse, the whole image is not passed at once; increasingly large buffers are tried before that. Adding it up together, if many demuxers are enabled, moderately large JPEG files (few MB) can take several seconds to open, despite taking less than 1 second to actually decode. Therefore, adjust the heuristic to be more optimistic if proper JFIF or Exif segments are found. While not strictly required, the vast majority of JPEG-ish files have one or the other or both. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/img2dec: add GEM Raster image demuxerPeter Ross2021-10-08
| | | | Signed-off-by: Peter Ross <pross@xvid.org>
* avformat: Avoid allocation for AVStreamInternalAndreas Rheinhardt2021-09-17
| | | | | | | | | | Do this by allocating AVStream together with the data that is currently in AVStreamInternal; or rather: Put AVStream at the beginning of a new structure called FFStream (which encompasses more than just the internal fields and is a proper context in its own right, hence the name) and remove AVStreamInternal altogether. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/img2dec: Fix typo in AVClass nameAndreas Rheinhardt2021-07-08
| | | | | Found-by: Gyan Doshi <ffmpeg@gyani.pro> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/img2dec: Deduplicate AVClassesAndreas Rheinhardt2021-07-08
| | | | | | | | The child_class_next API relied on different (de)muxers to use different AVClasses; yet this API has been replaced by child_class_iterate. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/img2dec: Make ff_img2pipe_options staticAndreas Rheinhardt2021-07-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat: move AVStream.{parser,need_parsing} to AVStreamInternalJames Almer2021-05-07
| | | | | | | Those are private fields, no reason to have them exposed in a public header. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: Constify all muxer/demuxersAndreas Rheinhardt2021-04-27
| | | | | | | This is possible now that the next-API is gone. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/buffer: Switch AVBuffer API to size_tAndreas Rheinhardt2021-04-27
| | | | | | | Announced in 14040a1d913794d9a3fd6406a6d8c2f0e37e0062. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/img2dec: set r_frame_rate in addition to avg_frame_rateJan Ekström2021-04-11
| | | | | | | | | Apparently for various image sequences libavformat/utils.c can calculate rather fancy r_frame_rate values, such as `186/1921`, and since ffmpeg.c utilizes r_frame_rate for the filter chain time base, this can quite deteriorate the output frame timing - even though the user has requested the image sequence to be interpreted at a specific, constant frame rate.
* avcodec/packet: Also change av_packet_pack/unpack_dictionary to size_tAndreas Rheinhardt2021-03-19
| | | | | | | | | These are auxiliary side-data functions, so they should have been switched to size_t in d79e0fe65c51491f9bf8a470bbe36fb09f3e1280, but this has been forgotten. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* lavf/img2dec: Autodetect pfm images.Carl Eugen Hoyos2021-02-15
|
* avformat/img2dec: improve xbm probingPaul B Mahol2021-02-05
|
* avformat: add xbm_pipe demuxerPaul B Mahol2021-02-05
|
* lavf/img2dec: Increase score for very large jpeg images.Carl Eugen Hoyos2020-12-24
| | | | Avoids a conflict with the raw mjpeg demuxer.
* img2dec: export avg_frame_rateAnton Khirnov2020-12-10
|
* lavf: move AVStream.*index_entries* to AVStreamInternalAnton Khirnov2020-10-28
| | | | | | | Those are private fields, no reason to have them exposed in a public header. Since there are some (semi-)public fields located after these, even though this section is supposed to be private, keep some dummy padding there until the next major bump to preserve ABI compatibility.
* lavf/img2dec: Auto-detect Cintel scanner images.Carl Eugen Hoyos2020-10-08
|
* lavf/img2dec: Auto-detect Kodak Photo CD image files.Carl Eugen Hoyos2020-09-05
|
* libavformat/img2dec: Added pgx demuxerGautam Ramakrishnan2020-07-03
| | | | | | | This patch adds support to demux pgx file format. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/img2dec: Avoid duplicating buffer when adding side-dataAndreas Rheinhardt2020-05-28
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat: Remove unnecessary av_packet_unref()Andreas Rheinhardt2020-02-10
| | | | | | | | | Since bae8844e the packet will always be unreferenced when a demuxer returns an error, so that a lot of calls to av_packet_unref() in lots of demuxers are now redundant and can be removed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/img2dec: add option to provide metadata fields related to input pathAlexandre Heitor Schmidt2020-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libavformat/img2.h: New field export_path_metadata to VideoDemuxData to only allow the use of the extra metadata upon explicit user request, for security reasons. libavformat/img2dec.c: Modify image2 demuxer to make available two special metadata entries called lavf.image2dec.source_path and lavf.image2dec.source_basename, which represents, respectively, the complete path to the source image for the current frame and the basename i.e. the file name related to the current frame. These can then be used by filters like drawtext and others. The metadata fields will only be available when explicitly enabled with image2 option -export_path_metadata 1. doc/demuxers.texi: Documented the new metadata fields available for image2 and how to use them. doc/filters.texi: Added an example on how to use the new metadata fields with drawtext filter, in order to plot the input file path to each output frame. Usage example: ffmpeg -f image2 -export_path_metadata 1 -pattern_type glob -framerate 18 -i '/path/to/input/files/*.jpg' -filter_complex drawtext="fontsize=40:fontcolor=white: fontfile=FreeSans.ttf:borderw=2:bordercolor=black: text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=5:y=50" output.avi Fixes #2874. Signed-off-by: Alexandre Heitor Schmidt <alexandre.schmidt@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/img2dec: Fix probe_buffer leak in ff_img_read_header()Michael Niedermayer2019-06-25
| | | | | | | | Fixes: memleak Fixes: 15171/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5683881644130304 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavf: Constify the probe function argument.Carl Eugen Hoyos2019-03-21
| | | | | Reviewed-by: Lauri Kasanen Reviewed-by: Tomas Härdin
* lavf: Constify AVInputFormat pointer.Carl Eugen Hoyos2019-03-20
|
* lavf/img2: Move "loop" into common options.Carl Eugen Hoyos2019-02-10
| | | | | While the image2pipe demuxer ignores the option - confusing users - the autodetecting demuxers that are favoured over image2 act on it.
* lavf/img2dec: Split img2 and img2pipe options.Carl Eugen Hoyos2019-02-10
|
* avformat: add gif pipe demuxerPaul B Mahol2018-12-10
|
* lavf/img2dec: Auto-detect xwd images.Carl Eugen Hoyos2018-05-25
|
* lavf/img2dec: use new iteration APIJosh de Kock2018-04-02
| | | | Signed-off-by: Josh de Kock <josh@itanimul.li>
* avformat/img2dec: fix infinite loopMichael Niedermayer2018-03-10
| | | | | | | | Fixes: kira-poc Found-by: Kira <kira_cxy@foxmail.com> Change suggested by Kira Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat: migrate to AVFormatContext->urlMarton Balint2018-01-28
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* lavf/img2dec: Auto-detect svg images.Carl Eugen Hoyos2017-10-07
|
* lavf/img2: Add svg and svgz to allow reading image sequences.Carl Eugen Hoyos2017-05-22
| | | | Increase the return value for svg_probe() to make it != AVPROBE_SCORE_EXTENSION.
* img2dec: use standard way to probe for svg/svgz filesRostislav Pehlivanov2017-05-16
|
* img2dec: add support for piped SVG demuxingRostislav Pehlivanov2017-05-16
| | | | | | | Only checks the extension and MIME type, since determining whether a file is SVG is difficult since they're just XML files. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* avcodec: add XPM decoder and demuxerParas Chadha2017-03-12
| | | | Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
* lavf/img2dec: Reduce the probe score for incomplete jpgs.Carl Eugen Hoyos2017-01-27
| | | | Ensures that probing doesn't finish prematurely for small files.
* lavf/img2dec: Increase detection score of jpgs without EOI.Carl Eugen Hoyos2017-01-01
| | | | | Also increases the score for large jpeg files. Fixes autodetection for the file from mpv issue 3973.
* avformat/img2dec: Remove dead code from psd_probe()Michael Niedermayer2016-12-21
| | | | | | Fixes CID1397124 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* libavformat : add Photoshop PSD demuxer.Martin Vignali2016-12-14
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavf/img2dec: Skip DQT segment when auto-detecting jpg.Carl Eugen Hoyos2016-09-03
| | | | DQT segments may contain 0xFFs which break auto-detection.
* lavf/img2dec: Also auto-detect (unusual) uncompressed pcx.Carl Eugen Hoyos2016-07-15
|
* lavf/img2dec: add pnm pipe demuxersClément Bœsch2016-06-22
|
* avformat: Fix max value of AV_OPT_TYPE_VIDEO_RATEMichael Niedermayer2016-06-09
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit '9200514ad8717c63f82101dc394f4378854325bf'Derek Buitenhuis2016-04-10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '9200514ad8717c63f82101dc394f4378854325bf': lavf: replace AVStream.codec with AVStream.codecpar This has been a HUGE effort from: - Derek Buitenhuis <derek.buitenhuis@gmail.com> - Hendrik Leppkes <h.leppkes@gmail.com> - wm4 <nfxjfg@googlemail.com> - Clément Bœsch <clement@stupeflix.com> - James Almer <jamrial@gmail.com> - Michael Niedermayer <michael@niedermayer.cc> - Rostislav Pehlivanov <atomnuker@gmail.com> Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavf: replace AVStream.codec with AVStream.codecparAnton Khirnov2016-02-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, AVStream contains an embedded AVCodecContext instance, which is used by demuxers to export stream parameters to the caller and by muxers to receive stream parameters from the caller. It is also used internally as the codec context that is passed to parsers. In addition, it is also widely used by the callers as the decoding (when demuxer) or encoding (when muxing) context, though this has been officially discouraged since Libav 11. There are multiple important problems with this approach: - the fields in AVCodecContext are in general one of * stream parameters * codec options * codec state However, it's not clear which ones are which. It is consequently unclear which fields are a demuxer allowed to set or a muxer allowed to read. This leads to erratic behaviour depending on whether decoding or encoding is being performed or not (and whether it uses the AVStream embedded codec context). - various synchronization issues arising from the fact that the same context is used by several different APIs (muxers/demuxers, parsers, bitstream filters and encoders/decoders) simultaneously, with there being no clear rules for who can modify what and the different processes being typically delayed with respect to each other. - avformat_find_stream_info() making it necessary to support opening and closing a single codec context multiple times, thus complicating the semantics of freeing various allocated objects in the codec context. Those problems are resolved by replacing the AVStream embedded codec context with a newly added AVCodecParameters instance, which stores only the stream parameters exported by the demuxers or read by the muxers.
* | lavf/img2dec: Skip COM when auto-detecting jpeg.Carl Eugen Hoyos2016-03-22
| | | | | | | | It could theoretically contain invalid data that gets ignored by decoders.