4d8875ec23
lavf: Constify the probe function argument.
...
Reviewed-by: Lauri Kasanen
Reviewed-by: Tomas Härdin
2019-03-21 11:42:17 +01:00
e887d685f7
Merge commit 'ed1cd81076434b76f37576d4d806973476a8e96c'
...
* commit 'ed1cd81076434b76f37576d4d806973476a8e96c':
flac demuxer: improve probing
Suggested commit very closely matches our code, except with regards to
AVPROBE_SCORE_EXTENSION. The code layout is mostly merged but preserves
our behaviour.
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-15 23:17:32 +01:00
3733039610
lavf/flacdec: Return maximum score if the streaminfo header is valid.
2017-03-02 09:29:10 +01:00
95bde49982
avformat/flacdec: Check avio_read result when reading flac block header.
...
Return AVERROR_INVALIDDATA if all four bytes aren't present.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-01-25 22:08:28 +01:00
ed1cd81076
flac demuxer: improve probing
...
Extend the probe function to validate the STREAMINFO block that must
follow the fLaC ID tag.
2016-07-31 08:19:45 +02:00
d0b21b28a3
avformat/flacdec: Fix seeking close to EOF
...
Fixes Ticket5428
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-06-22 21:10:37 +02:00
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
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
8cfa912e25
avformat/flacdec: remove unused return code assignment
...
Fixes CID1271811
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-12-09 16:47:55 +01:00
c2f861ca42
Replace remaining occurances of av_free_packet with av_packet_unref
2015-10-27 14:35:30 +01:00
5d926d5473
avformat/flacdec: support fast-seek
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-10-04 13:23:42 +02:00
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
059a934806
lavc: Consistently prefix input buffer defines
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2015-07-27 15:24:59 +01:00
7b39d853b8
lavf/flac: Autodetect raw flac files.
2015-04-10 12:35:02 +02:00
b6a9956396
Merge commit '7784f47762d59e859b4d0f74b3e021ad9368ee2c'
...
* commit '7784f47762d59e859b4d0f74b3e021ad9368ee2c':
lavf: stop using avpriv_flac_parse_streaminfo()
Conflicts:
libavcodec/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-11-06 13:42:41 +01:00
7784f47762
lavf: stop using avpriv_flac_parse_streaminfo()
...
The only parameters needed by the demuxers are the sample rate and sample
count, which can be trivially extracted manually, without resorting to
an avpriv function.
2014-11-06 09:02:25 +01:00
a8db787932
Merge commit 'db68ef898a3802e51b6f41fd600d0d46d058e3f8'
...
* commit 'db68ef898a3802e51b6f41fd600d0d46d058e3f8':
ogg: update event_flags with STREAM_/METADATA_UPDATED whenever metadata changes.
Conflicts:
libavformat/oggparsevorbis.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-08-14 00:05:49 +02:00
db68ef898a
ogg: update event_flags with STREAM_/METADATA_UPDATED whenever metadata changes.
...
Originally, AVFormatContext and a metadata dict were provided to ff_vorbis_comment(),
but this presented issues if an AVStream was being updated or the metadata on
AVFormatContext wasn't actually being updated. To remedy this, ff_vorbis_stream_comment()
explicitly updates a stream's metadata and sets any necessary flags.
ff_vorbis_comment() does not modify any flags, and any calls to it that update
AVFormatContext's metadata (just a single call) must also update
AVFormatContext.event_flags after detecting any metadata changes to the provided
dictionary, as signaled by a positive return value.
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2014-08-13 16:25:19 +00:00
d34ec64a22
replace calls to url_feof() with avio_feof()
...
Signed-off-by: James Almer <jamrial@gmail.com >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-08-08 00:48:38 +02:00
579e2b2874
Merge commit '23f741f79327e31be7b2a75ebb2e02111e06e52f'
...
* commit '23f741f79327e31be7b2a75ebb2e02111e06e52f':
matroskadec: parse the channel layout mask for FLAC
Conflicts:
libavformat/oggparsevorbis.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-05-28 13:02:19 +02:00
40beec6a43
Merge commit '5fdaf312c5541b77b6364db8b49d6abb416a25c0'
...
* commit '5fdaf312c5541b77b6364db8b49d6abb416a25c0':
flac: make avpriv_flac_parse_block_header() inline
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-05-28 12:33:49 +02:00
03ffaed3f0
Merge commit 'd6b9ce99ea384fb676561461768b8316725a4ccd'
...
* commit 'd6b9ce99ea384fb676561461768b8316725a4ccd':
flac demuxer: parse the WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-05-28 12:21:50 +02:00
23f741f793
matroskadec: parse the channel layout mask for FLAC
...
It is commonly stored in a vorbiscomment block in codec private data.
2014-05-28 07:50:32 +02:00
5fdaf312c5
flac: make avpriv_flac_parse_block_header() inline
...
This avoids all the ABI troubles associated with avpriv_.
Since this function is very small and does not depend on any tables,
making it inline should have no adverse effects.
2014-05-28 07:48:30 +02:00
d6b9ce99ea
flac demuxer: parse the WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag
...
It is used to store the channel mask for non-standard layouts.
2014-05-28 07:47:15 +02:00
bdc812ab9e
avformat/flacdec/flac_read_timestamp: free the correct packet
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-04-16 00:23:31 +02:00
6d8ccc7ac7
avformat/flacdec/flac_read_timestamp: dont modify AVStream state
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-04-15 23:53:31 +02:00
e1fcd3a007
flac demuxer: improve seeking
2014-04-14 17:43:19 +02:00
8e8c8607fc
Merge commit '1d55f8d5f6f2cd74fa27170e2be37a72441d9202'
...
* commit '1d55f8d5f6f2cd74fa27170e2be37a72441d9202':
flacdec: export replaygain tags from Vorbis comments
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-04-04 22:59:28 +02:00
1d55f8d5f6
flacdec: export replaygain tags from Vorbis comments
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2014-04-04 17:40:51 +02:00
92b03cf926
Merge commit '601d6228c4811d8971a2412a759e1a4ab775ebe8'
...
* commit '601d6228c4811d8971a2412a759e1a4ab775ebe8':
flac: move picture parsing code in a separate file
Conflicts:
libavformat/Makefile
libavformat/flacdec.c
See: 1e5bbbfcf3
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-10-13 09:37:21 +02:00
601d6228c4
flac: move picture parsing code in a separate file
...
Signed-off-by: James Almer <jamrial@gmail.com >
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2013-10-12 15:30:39 +02:00
1e5bbbfcf3
lavf/flacdec: Share the function to parse cover art blocks
...
Signed-off-by: James Almer <jamrial@gmail.com >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-07-09 19:19:42 +02:00
f083b4c338
Merge commit 'e0f8be6413b6a8d334d6052e610af32935c310af'
...
* commit 'e0f8be6413b6a8d334d6052e610af32935c310af':
avformat: Add AVPROBE_SCORE_EXTENSION define and use where appropriate
Conflicts:
libavformat/ac3dec.c
libavformat/avformat.h
libavformat/avs.c
libavformat/m4vdec.c
libavformat/mov.c
libavformat/mp3dec.c
libavformat/mpeg.c
libavformat/mpegvideodec.c
libavformat/psxstr.c
libavformat/pva.c
libavformat/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-05 12:31:03 +02:00
e0f8be6413
avformat: Add AVPROBE_SCORE_EXTENSION define and use where appropriate
2013-05-04 21:43:06 +02:00
aef816f957
Merge commit 'ca6c3f2c53be70aa3c38e8f1292809db89ea1ba6'
...
* commit 'ca6c3f2c53be70aa3c38e8f1292809db89ea1ba6':
lzo: fix overflow checking in copy_backptr()
flacdec: simplify bounds checking in flac_probe()
atrac3: avoid oversized shifting in decode_bytes()
Conflicts:
libavformat/flacdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-03-16 14:10:09 +01:00
8425d693ee
flacdec: simplify bounds checking in flac_probe()
...
Simplify `p->buf > p->buf + p->buf_size - 4' as `p->buf_size < 4'.
Avoid a possible out-of-bounds pointer, which is undefined behavior
in C.
CC: libav-stable@libav.org
Signed-off-by: Xi Wang <xi.wang@gmail.com >
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2013-03-15 12:51:57 +01:00
2653e12520
Merge commit '1afddbe59e96af75f1c07605afc95615569f388f'
...
* commit '1afddbe59e96af75f1c07605afc95615569f388f':
avpacket: use AVBuffer to allow refcounting the packets.
Conflicts:
libavcodec/avpacket.c
libavcodec/utils.c
libavdevice/v4l2.c
libavformat/avidec.c
libavformat/flacdec.c
libavformat/id3v2.c
libavformat/matroskaenc.c
libavformat/mux.c
libavformat/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-03-08 19:12:03 +01:00
1afddbe59e
avpacket: use AVBuffer to allow refcounting the packets.
...
This will allow us to avoid copying the packets in many cases.
This breaks ABI.
2013-03-08 07:33:45 +01:00
4fcf6aa7a3
flac_probe: make buffer pointers const
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-12-25 01:43:14 +01:00
7a72695c05
Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85'
...
* commit '36ef5369ee9b336febc2c270f8718cec4476cb85':
Replace all CODEC_ID_* with AV_CODEC_ID_*
lavc: add AV prefix to codec ids.
Conflicts:
doc/APIchanges
doc/examples/decoding_encoding.c
doc/examples/muxing.c
ffmpeg.c
ffprobe.c
ffserver.c
libavcodec/8svx.c
libavcodec/avcodec.h
libavcodec/dnxhd_parser.c
libavcodec/dvdsubdec.c
libavcodec/error_resilience.c
libavcodec/h263dec.c
libavcodec/libvorbisenc.c
libavcodec/mjpeg_parser.c
libavcodec/mjpegenc.c
libavcodec/mpeg12.c
libavcodec/mpeg4videodec.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/pcm.c
libavcodec/r210dec.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/version.h
libavdevice/alsa-audio-dec.c
libavdevice/bktr.c
libavdevice/v4l2.c
libavformat/asfdec.c
libavformat/asfenc.c
libavformat/avformat.h
libavformat/avidec.c
libavformat/caf.c
libavformat/electronicarts.c
libavformat/flacdec.c
libavformat/flvdec.c
libavformat/flvenc.c
libavformat/framecrcenc.c
libavformat/img2.c
libavformat/img2dec.c
libavformat/img2enc.c
libavformat/ipmovie.c
libavformat/isom.c
libavformat/matroska.c
libavformat/matroskadec.c
libavformat/matroskaenc.c
libavformat/mov.c
libavformat/movenc.c
libavformat/mp3dec.c
libavformat/mpeg.c
libavformat/mpegts.c
libavformat/mxf.c
libavformat/mxfdec.c
libavformat/mxfenc.c
libavformat/nsvdec.c
libavformat/nut.c
libavformat/oggenc.c
libavformat/pmpdec.c
libavformat/rawdec.c
libavformat/rawenc.c
libavformat/riff.c
libavformat/sdp.c
libavformat/utils.c
libavformat/vocenc.c
libavformat/wtv.c
libavformat/xmv.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2012-08-07 22:45:46 +02:00
36ef5369ee
Replace all CODEC_ID_* with AV_CODEC_ID_*
2012-08-07 16:00:24 +02:00
8a6d673eff
flacdec: fix memleaks
...
While here refactor code.
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2012-07-30 02:45:21 +00:00
5ea4ee7bcb
flacdec: mark as AVSTREAM_PARSE_FULL_RAW
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-07-26 02:03:58 +02:00
ca1f2b3e10
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
cmutils: include shellapi.h on Win32 (for CommandLineToArgvW).
x86/timer: implement an intrinsic-based version for rdtsc (AV_READ_TIME).
id3v2: add a mimetype for bmp pictures.
flacdec: be less strict when parsing attached pictures.
flacdec: don't create an attached picture stream until we have all information.
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2012-07-08 22:33:32 +02:00
b7d3a9a015
flacdec: be less strict when parsing attached pictures.
...
Only return an error if memory allocation fails or error recognition is
set to explode. Otherwise just print an error message and continue
reading the file.
2012-07-07 20:34:20 +02:00
dba5b06ead
flacdec: don't create an attached picture stream until we have all information.
...
This way we don't end with an invalid stream if parsing the picture
fails.
2012-07-07 20:33:44 +02:00
5c14b282d1
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
flacdec: read attached pictures.
lavf: don't segfault when a NULL filename is passed to avformat_open_input()
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-16 23:22:42 +02:00
ae702edf43
flacdec: read attached pictures.
2012-06-16 17:10:23 +02:00
2e0c360abd
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
cosmetics: Align muxer/demuxer declarations
mpeg12: Do not change frame_pred_frame_dct flag and demote error into a warning
avcodec: remove avcodec_guess_channel_layout()
avutil: Add av_get_default_channel_layout()
Conflicts:
doc/APIchanges
libavcodec/mpeg12.c
libavformat/cdg.c
libavformat/matroskaenc.c
libavformat/mpegts.c
libavformat/nuv.c
libavformat/wav.c
libavutil/audioconvert.c
libavutil/audioconvert.h
libavutil/avutil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2012-04-06 22:52:01 +02:00