summaryrefslogtreecommitdiff
path: root/libavformat/mpeg.c
Commit message (Collapse)AuthorAge
* avformat/mpeg: zero initialize idx_pktJames Almer2017-09-23
| | | | | | Prevents use of uninitialized stack. Signed-off-by: James Almer <jamrial@gmail.com>
* Merge commit '83548fe894cdb455cc127f754d09905b6d23c173'James Almer2017-03-21
|\ | | | | | | | | | | | | * commit '83548fe894cdb455cc127f754d09905b6d23c173': lavf: fix usage of AVIOContext.seekable Merged-by: James Almer <jamrial@gmail.com>
| * lavf: fix usage of AVIOContext.seekableAnton Khirnov2016-09-30
| | | | | | | | | | | | | | | | It is supposed to be a flag. The only currently defined value is AVIO_SEEKABLE_NORMAL, but other ones may be added in the future. However all the current lavf code treats this field as a bool (mainly for historical reasons). Change all those cases to properly check for AVIO_SEEKABLE_NORMAL.
* | lavf/mpeg: Initialize a stack variable used by memcmp().Carl Eugen Hoyos2017-02-21
| | | | | | | | | | | | Silence a valgrind warning. Fixes ticket #6160.
* | avformat/mpeg: Adjust vid probe threshold to correct mis-detectionMichael Niedermayer2016-11-23
| | | | | | | | | | | | Fixes: _ij.mp3 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch2016-06-21
|\| | | | | | | | | | | | | * commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
| * cosmetics: Fix spelling mistakesVittorio Giovara2016-05-04
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * Drop pointless assert.h #includesDiego Biurrun2016-05-03
| |
* | 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/mpeg: Identify sub-stream ID 0xa1 as mlp.Carl Eugen Hoyos2016-03-09
| | | | | | | | | | | | Fixes ticket #4786. Auto-detection seems difficult, patch mostly confirmed by http://dvd-audio.sourceforge.net/spec/aob.shtml
* | avformat: Add a protocol blacklisting APIDerek Buitenhuis2016-03-04
| | | | | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | lavf/mpeg: use FFERROR_REDO instead of AVERROR(EAGAIN).Nicolas George2015-12-03
| |
* | Replace remaining occurances of av_free_packet with av_packet_unrefHendrik Leppkes2015-10-27
| |
* | avformat/vobsub: do not attempt to check duplicate subtitleswm42015-09-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some .idx files actually contain duplicate subtitle events: timestamp: 00:07:52:600, filepos: 00004e800 timestamp: 00:07:52:600, filepos: 00004f800 The second will be dropped, because it has same pts, duration, and text (the text is just a dummy empty string; the real data is retrieved when actually reading vobsub subtitle packets). Dropping this is probably not intended/safe, so avoid it. See trac issue #4872 for a sample. This patch doesn't fix decoding of the sample, though.
* | avformat/vobsub: compare correct packet stream IDswm42015-09-21
| | | | | | | | | | | | | | | | | | | | | | | | The stream ID is essentially an arbitrary number defined by the .idx file headers. They have to match the IDs in the .sub stream. The vobsub demuxer assumed the IDs would just start from 0, increassing by 1 for each stream. This is not correct. In the sample I had, the IDs were starting from 1, leading to no subtitles being displayed at all. Fix this by using the correct stream ID. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/subtitles: forward log context in ff_subtitles_queue_finalize() for ↵Clément Bœsch2015-09-10
| | | | | | | | logging
* | lavf/mpeg: Allow users to force audio codec MLP.Carl Eugen Hoyos2015-08-20
| | | | | | | | Fixes part of ticket #4786.
* | lavf/mpeg: Do not detect unknown audio in Hikvision streams as alaw.Carl Eugen Hoyos2015-05-17
| |
* | avformat/mpeg: put timestamp trace av_logs under FF_DEBUG_TSMichael Niedermayer2015-04-20
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '1a3eb042c704dea190c644def5b32c9cee8832b8'Michael Niedermayer2015-04-20
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '1a3eb042c704dea190c644def5b32c9cee8832b8': Replace av_dlog with normal av_log at trace level Conflicts: ffplay.c libavdevice/fbdev_dec.c libavfilter/avfilter.c libavfilter/internal.h libavfilter/setpts.c libavfilter/src_movie.c libavfilter/vf_crop.c libavfilter/vf_drawtext.c libavfilter/vf_fieldorder.c libavformat/assdec.c libavformat/avidec.c libavformat/flvdec.c libavformat/http.c libavformat/ipmovie.c libavformat/isom.c libavformat/mov.c libavformat/mpegenc.c libavformat/mpegts.c libavformat/mpegtsenc.c libavformat/mux.c libavformat/mxfdec.c libavformat/nsvdec.c libavformat/oggdec.c libavformat/r3d.c libavformat/rtspdec.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Replace av_dlog with normal av_log at trace levelVittorio Giovara2015-04-19
| | | | | | | | This applies to every library where performance is not critical.
* | lavf/mpeg: vobsub add an option to specify the .sub's URIRodger Combs2015-04-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/mpeg: Support alaw in Hikvision CCTV recordings.Carl Eugen Hoyos2015-04-03
| | | | | | | | Fixes a sample from ticket #4182.
* | lavf/mpeg: Support more audio codecs in Hikvision CCTV recordings.Carl Eugen Hoyos2015-04-03
| | | | | | | | Fixes a sample from ticket #4182.
* | avformat/mpeg: remove unneeded #include, there are no assert() only av_assert*Paul B Mahol2015-01-31
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avformat/mpeg: Avoid dead assignmentMichael Niedermayer2015-01-14
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/mpeg: add commented out av_log() to probeMichael Niedermayer2014-12-06
| | | | | | | | | | | | This is commonly needed for debugging mis-detections Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/mpeg: do not count PES packets inside PES packets during probingMichael Niedermayer2014-12-06
| | | | | | | | | | | | Fixes: misdetection of test2.mp3 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/mpeg: fix memleak of sub_name on errorMichael Niedermayer2014-11-16
| | | | | | | | | | | | Fixes CID1254666 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/mpeg: Use av_find_input_format() instead of directly linking to the ↵Michael Niedermayer2014-10-25
| | | | | | | | | | | | demuxer Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat: Add and use ff_copy_whitelists()Michael Niedermayer2014-10-24
| | | | | | | | | | | | | | Fixes potential security issue in case of running out of memory Found-by: ubitux Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/mpeg: Forward whitelists to the mpegps demuxerMichael Niedermayer2014-10-23
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/vobsub: fix NULL dereferenceClément Bœsch2014-09-13
| |
* | avformat/mpeg: update comment on probe scoreMichael Niedermayer2014-09-09
| | | | | | | | | | Found-by: Timothy Gu <timothygu99@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/mpeg: increase score for short mpeg-ps by 1Michael Niedermayer2014-09-09
| | | | | | | | | | | | Fixes Ticket 3855 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | replace calls to url_feof() with avio_feof()James Almer2014-08-08
| | | | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | fix various typosLou Logan2014-06-03
| | | | | | | | | | Signed-off-by: Lou Logan <lou@lrcd.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/vobsub: do not create empty streams.Clément Bœsch2014-05-24
| | | | | | | | | | | | Fixes NULL dereference in vobsub_read_packet() on vobsub->q[i]->subs. Fixes ticket #3669.
* | avformat/vobsub: use av_make_q().Clément Bœsch2014-05-01
| |
* | avformat/vobsub: remove pointless FAIL macro.Clément Bœsch2014-05-01
| |
* | Merge commit '5b8f0a5eac75d16376af60a6f6bb79b3e9e6dab7'Michael Niedermayer2014-03-24
|\| | | | | | | | | | | | | | | | | | | * commit '5b8f0a5eac75d16376af60a6f6bb79b3e9e6dab7': mpeg: K&R formatting cosmetics Conflicts: libavformat/mpeg.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mpeg: K&R formatting cosmeticsTanja Batchelor2014-03-24
| | | | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Ignore es_map_length when parsing mpeg program stream map.Carl Eugen Hoyos2013-12-05
| | | | | | | | Fixes ticket #3195.
* | Support AC-3 in Sega Dreamcast Sofdec files.Carl Eugen Hoyos2013-12-01
| | | | | | | | Fixes ticket #3184
* | avformat/vobsub: fix invalid sub queue access while seeking.Clément Bœsch2013-10-20
| | | | | | | | | | | | | | | | | | If there is only 1 stream and seek isn't called with a specific stream index, we pick the first (and only) one. Regression since dbfe6110. Fixes CID1108591.
* | avformat/vobsub: raise packet even if apparently incomplete.Clément Bœsch2013-10-04
| | | | | | | | | | This restore the latest packet which was dropped from the FATE test in dbfe61100.
* | avformat/vobsub: fix several issues.Clément Bœsch2013-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Here is an extract of fate-samples/sub/vobsub.idx, with an additional text at the end of each line to better identify each bitmap: timestamp: 00:04:55:445, filepos: 00001b000 Ace! timestamp: 00:05:00:049, filepos: 00001b800 Wake up, honey! timestamp: 00:05:02:018, filepos: 00001c800 I gotta go to work. timestamp: 00:05:02:035, filepos: 00001d000 <???> timestamp: 00:05:04:203, filepos: 00001d800 Look after Clayton, okay? timestamp: 00:05:05:947, filepos: 00001e800 I'll be back tonight. timestamp: 00:05:07:957, filepos: 00001f800 Bye! Love you. timestamp: 00:05:21:295, filepos: 000020800 Hey, Ace! What's up? timestamp: 00:05:23:356, filepos: 000021800 Hey, how's it going? timestamp: 00:05:24:640, filepos: 000022800 Remember what today is? The 3rd! timestamp: 00:05:27:193, filepos: 000023800 Look over there! timestamp: 00:05:28:369, filepos: 000024800 Where are they going? timestamp: 00:05:28:361, filepos: 000025000 <???> timestamp: 00:05:29:946, filepos: 000025800 Let's go see. timestamp: 00:05:31:230, filepos: 000026000 I can't, man. I got Clayton. Note the two "<???>": they are basically split subtitles (with the previous one), which the dvdsub decoder is now supposed to reconstruct with a previous commit. But also note that while the first chunk has increasing timestamps, timestamp: 00:05:02:018, filepos: 00001c800 timestamp: 00:05:02:035, filepos: 00001d000 ...it's not the case of the second one (and this is not an exception in the original file): timestamp: 00:05:28:369, filepos: 000024800 timestamp: 00:05:28:361, filepos: 000025000 For the dvdsub decoder, they need to be "filepos'ed" ordered, but the FFDemuxSubtitlesQueue is timestamps ordered, which is the reason of the introduction of a sub sort method in the context, to allow giving priority to the position, and then the timestamps. With that change, the dvdsub decoder get fed with ordered packets. Now the packet size estimation was also broken: the filepos differences in the vobsub index defines the full data read between two subtitles chunks, and it is necessary to take into account what is read by the mpegps_read_pes_header() function since the length returned by that function doesn't count the size of the data it reads. This is fixed with the introduction of total_read, and {old,new}_pos. By doing this change, we can drop the unreliable len16 heuristic and simplify the whole loop. Note that mpegps_read_pes_header() often read more than one PES packet (typically in one call it can read 0x1ba and 0x1be chunk along with the relevant 0x1bd packet), which triggers the "total_read + pkt_size > psize" check. This is an expected behaviour, which could be avoided by having a more chunked version of mpegps_read_pes_header(). The latest change is the extraction of each stream into its own subtitles queue. If we don't do this, the maximum size for a subtitle chunk is broken, and the previous changes can not work. Having each stream in a different queue requires some little adjustments in the seek code of the demuxer. This commit is only meaningful as a whole change and can not be easily split. The FATE test changes because it uses the vobsub demuxer.
* | avformat/vobsub: fix seeking.Clément Bœsch2013-09-08
| |
* | Merge commit 'a42e3a6700547e4e49445bda81d3a89ec3e081a9'Michael Niedermayer2013-09-01
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'a42e3a6700547e4e49445bda81d3a89ec3e081a9': pcm_dvd: consolidate pieces from pcm.c and mpeg.c Conflicts: libavcodec/pcm.c libavcodec/version.h libavformat/mpeg.c Merged-by: Michael Niedermayer <michaelni@gmx.at>