Xinzheng Zhang
ad14aab3b4
avformat/flvdec: parse keyframe before a\v stream was created add_keyframes_index() when stream created or keyframe parsed
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 19:29:55 +02:00
Xinzheng Zhang
cd141e71bd
avformat/flvdec: splitting add_keyframes_index() out from parse_keyframes_index()
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-27 19:29:55 +02:00
Michael Niedermayer
e0faad837c
avformat/flvdec: Do not check last size if it could not be read due to EOF
...
Fixes part of Ticket5648
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 03:02:47 +02:00
Michael Niedermayer
3f380b9b40
avformat/flvdec: Also print sum_flv_tag_size on size mismatches
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 03:02:47 +02:00
Michael Niedermayer
e8931d79cc
avformat/flvdec: Accept last size if its off by 1
...
Fixes part of Ticket5648
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-22 03:02:47 +02:00
Clément Bœsch
8ef57a0d61
Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'
...
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
cosmetics: Fix spelling mistakes
Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 21:55:34 +02:00
Vittorio Giovara
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Paul B Mahol
323b8c95e4
avformat: add AVFormatContext to ff_get_extradata()
...
Needed for av_log() inside that function.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-14 18:21:08 +02:00
Derek Buitenhuis
6f69f7a8bf
Merge commit '9200514ad8717c63f82101dc394f4378854325bf'
...
* 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>
2016-04-10 20:59:55 +01:00
Anton Khirnov
9200514ad8
lavf: replace AVStream.codec with AVStream.codecpar
...
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.
2016-02-23 17:01:58 +01:00
Thierry Foucu
9a09952695
lavf/flvdec: Allow files where the PreviousTagSize is not set according to the spec.
...
Some muxer use the FLV field PreviousTagSize to be the sum of tag
length. Without this change, the flv demuxer think the file is broken
and the re-sync will fail.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-29 22:30:12 +01:00
Derek Buitenhuis
e5b5676c00
Merge commit 'e4eb13ca77624401ea7cef1ed6ad8e2d13fd2063'
...
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 18:32:28 +00:00
Derek Buitenhuis
949d6dd51c
Merge commit '09f4822e4eaf61513b9092414450f3ae920ccd9d'
...
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 18:29:21 +00:00
Martin Storsjö
e4eb13ca77
flvdec: Add sanity checking of the last packet size
...
For http, this avoids spurious warnings about failed requests (e.g.
HTTP error 416 Requested Range Not Satisfiable), if the last packet
is truncated and the size read is bogus.
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-01-19 14:24:35 +02:00
Michael Niedermayer
09f4822e4e
flvdec: perform duration search just once
...
When loading a truncated flv file, it would previously try to do a seek to
the end of every packet read. For some input protocols (such as http), such
repeated seek attempts are cripple the reading performance.
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-01-19 14:24:34 +02:00
Anton Khirnov
09ae7b81ea
flvdec: do not create any streams in read_header()
...
The current muxer behaviour is to create streams in read_header() based
on the audio/video presence flags, but fill in the stream parameters
later when we actually get some packets for them. This is rather shady,
since other demuxers set the stream parameters immediately when the
stream is created and do not touch the stream codec context after that.
Change the flv demuxer to behave in the same way as other similar
demuxers -- create the streams only when we get a packet for them.
2015-12-12 21:26:48 +01:00
Michael Niedermayer
ab7ff38052
avformat/flvdec: Fix left shift of 137 by 24 places cannot be represented in type int
...
Fixes: 3c857d4d90365731524716e6d051e43a/signal_sigsegv_7f4f59bcc29e_1386_20abd2c8e655cb9c75b24368e65fe3b1.flv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 18:54:39 +01:00
Clément Bœsch
43ecec0f03
avformat: use AV_OPT_TYPE_BOOL in a bunch of places
2015-12-04 15:43:33 +01:00
Nicolas George
0bac7a436b
lavf/flvdec: use FFERROR_REDO instead of AVERROR(EAGAIN).
...
Fix trac ticket #5041 .
2015-12-03 19:16:12 +01:00
Hendrik Leppkes
c2f861ca42
Replace remaining occurances of av_free_packet with av_packet_unref
2015-10-27 14:35:30 +01:00
Michael Niedermayer
ce0834bdd6
avformat/flvdec: set broken_sizes for "metadatacreator : MEGA"
...
The 2nd size value is wrong for the sample file
Fixes: Ticket4903
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-12 05:36:39 +02:00
Michael Niedermayer
f4585e666f
avformat/flvdec: Print stream type in case a new stream is discovered after the header
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-07 02:41:40 +02:00
Michael Niedermayer
e34ba5ec53
avformat/flvdec: Remove dead loop
...
Fixes CID1325682
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-06 01:22:35 +02:00
Michael Niedermayer
14f6c4356b
avformat/flvdec: accept sizes if they are off by 11
...
This error was produced by rtmproto.c, it is possibly such streams
where dumped, this commit is needed to support them
Fixes: z0e.flv
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-02 20:18:53 +02:00
Thierry Foucu
7f72f2d75e
libavformat/flvdec.c: free always the packet after a resync.
...
In case of resync, always free the packet, but retry only if the resync
did not get to the end of the file. Otherwise, there is a memory leak when the
last packet in the file is corrupted.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-29 04:01:50 +02:00
Michael Niedermayer
e3cf978cdd
avformat/flvdec: Detect broken sizes (OBS 0.655b), disable resync for affected files
...
Fixes Ticket4867
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-19 18:34:55 +02:00
Michael Niedermayer
cbbd906be6
avformat/flvdec: Check that sizes match and resync if not
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-16 03:43:21 +02:00
Michael Niedermayer
3496a20bb9
avformat/flvdec: Change packet loop to return EAGAIN instead of looping until a valid packet is foud
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-16 03:32:27 +02:00
Michael Niedermayer
5629143433
avformat/flvdec: Use the first index entry to find the first packet if there was a parsing error in the header
...
Fixes: unknow_codec.flv
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-13 14:22:31 +02:00
Michael Niedermayer
fd6296e412
avformat/flvdec: Print last packet size at trace level
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-13 14:22:31 +02:00
Michael Niedermayer
6bed88ac78
avformat/flvdec: Print terminator value found if it differs from AMF_END_OF_OBJECT in AMF_DATA_TYPE_MIXEDARRAY
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-13 14:22:21 +02:00
Michael Niedermayer
29d147c94d
Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
...
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
lavc: Consistently prefix input buffer defines
Conflicts:
doc/examples/decoding_encoding.c
libavcodec/4xm.c
libavcodec/aac_adtstoasc_bsf.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.h
libavcodec/asvenc.c
libavcodec/avcodec.h
libavcodec/avpacket.c
libavcodec/dvdec.c
libavcodec/ffv1enc.c
libavcodec/g2meet.c
libavcodec/gif.c
libavcodec/h264.c
libavcodec/h264_mp4toannexb_bsf.c
libavcodec/huffyuvdec.c
libavcodec/huffyuvenc.c
libavcodec/jpeglsenc.c
libavcodec/libxvid.c
libavcodec/mdec.c
libavcodec/motionpixels.c
libavcodec/mpeg4videodec.c
libavcodec/mpegvideo.c
libavcodec/noise_bsf.c
libavcodec/nuv.c
libavcodec/nvenc.c
libavcodec/options.c
libavcodec/parser.c
libavcodec/pngenc.c
libavcodec/proresenc_kostya.c
libavcodec/qsvdec.c
libavcodec/svq1enc.c
libavcodec/tiffenc.c
libavcodec/truemotion2.c
libavcodec/utils.c
libavcodec/utvideoenc.c
libavcodec/vc1dec.c
libavcodec/wmalosslessdec.c
libavformat/adxdec.c
libavformat/aiffdec.c
libavformat/apc.c
libavformat/apetag.c
libavformat/avidec.c
libavformat/bink.c
libavformat/cafdec.c
libavformat/flvdec.c
libavformat/id3v2.c
libavformat/isom.c
libavformat/matroskadec.c
libavformat/mov.c
libavformat/mpc.c
libavformat/mpc8.c
libavformat/mpegts.c
libavformat/mvi.c
libavformat/mxfdec.c
libavformat/mxg.c
libavformat/nutdec.c
libavformat/oggdec.c
libavformat/oggparsecelt.c
libavformat/oggparseflac.c
libavformat/oggparseopus.c
libavformat/oggparsespeex.c
libavformat/omadec.c
libavformat/rawdec.c
libavformat/riffdec.c
libavformat/rl2.c
libavformat/rmdec.c
libavformat/rtpdec_latm.c
libavformat/rtpdec_mpeg4.c
libavformat/rtpdec_qdm2.c
libavformat/rtpdec_svq3.c
libavformat/sierravmd.c
libavformat/smacker.c
libavformat/smush.c
libavformat/spdifenc.c
libavformat/takdec.c
libavformat/tta.c
libavformat/utils.c
libavformat/vqf.c
libavformat/westwood_vqa.c
libavformat/xmv.c
libavformat/xwma.c
libavformat/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:15:19 +02:00
Vittorio Giovara
059a934806
lavc: Consistently prefix input buffer defines
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Michael Niedermayer
00ebf89dcd
Merge commit 'a7ac1a7b94447f33ae95be4d6d186e2775977f91'
...
* commit 'a7ac1a7b94447f33ae95be4d6d186e2775977f91':
flv: Name an enum and use its type
Conflicts:
libavformat/flvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 22:55:49 +02:00
Vittorio Giovara
a7ac1a7b94
flv: Name an enum and use its type
2015-06-12 17:02:49 +01:00
Igor Derzhavin
203f9c8ff0
libavformat/flvdec.c: don't build index_entries for input stream if AVIOContext is not seekable
...
Signed-off-by: Igor Derzhavin <igor.derzhavin@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-10 16:22:11 +02:00
Ganesh Ajjanagadde
a86928d2ab
flvdec: fix lack of duration for some files
...
Fixes #4579
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 21:56:09 +02:00
Michael Niedermayer
108b738db1
avformat/flvdec: Show unknown tags at debug level
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 21:56:09 +02:00
Michael Niedermayer
790a3cdf76
avformat/flvdec: Add TYPE_ONCAPTIONINFO
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 21:56:09 +02:00
Michael Niedermayer
b2fecce3c1
avformat/flvdec: increase buffer size for parsing metadata string key
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-05 21:55:45 +02:00
Michael Niedermayer
40d552dae6
Merge commit '1a3eb042c704dea190c644def5b32c9cee8832b8'
...
* 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>
2015-04-20 03:19:47 +02:00
Vittorio Giovara
1a3eb042c7
Replace av_dlog with normal av_log at trace level
...
This applies to every library where performance is not critical.
2015-04-19 12:41:59 +01:00
Michael Niedermayer
3727cd5416
avformat/flvdec: add support for OnCaption
2015-03-13 16:25:27 +01:00
Michael Niedermayer
1df64d6c46
avformat/flvdec: re enable flv_data_packet()
...
Found-by: kurosu
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 16:24:12 +01:00
Michael Niedermayer
7869b2959d
avformat/flvdec: Change subtitle stream type to subtitle type
...
Previous-version-reviewed-by: Andreas Cadhalpun
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 16:03:28 +01:00
Michael Niedermayer
a0fe1a25fa
Merge commit 'daf8cf358a098a903d59adb6c0d0cc3262a8c93e'
...
* commit 'daf8cf358a098a903d59adb6c0d0cc3262a8c93e':
avformat: Don't anonymously typedef structs
Conflicts:
libavformat/adtsenc.c
libavformat/aiffenc.c
libavformat/avidec.c
libavformat/gif.c
libavformat/iff.c
libavformat/img2dec.c
libavformat/jvdec.c
libavformat/matroskadec.c
libavformat/udp.c
libavformat/wtvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-14 21:07:40 +01:00
Diego Biurrun
daf8cf358a
avformat: Don't anonymously typedef structs
2015-02-14 10:13:47 -08:00
Clément Bœsch
6a29499b95
avformat/flvdec: remove duplicated line error
...
Fix typo regression since 5c37ffca59
Found-By: cousin_luigi
2015-01-01 22:09:21 +01:00
Michael Niedermayer
efc4bfc195
avformat/flvdec: use named identifier instead of literal numbers as return values
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-01 20:19:09 +01:00
Michael Niedermayer
eb767a276b
avformat/flvdec: Increase string array size
...
Fixes parsing httphostheader of Scarlatti\,\ Pieter-Jan\ Belder\ -\ Sonata\ K113\ in\ A\ major\ -\ Alle.flv
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-01 18:16:04 +01:00