Clément Bœsch
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
Carl Eugen Hoyos
3733039610
lavf/flacdec: Return maximum score if the streaminfo header is valid.
2017-03-02 09:29:10 +01:00
Frank Liberato
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
Anton Khirnov
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
Michael Niedermayer
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
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
Michael Niedermayer
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
Hendrik Leppkes
c2f861ca42
Replace remaining occurances of av_free_packet with av_packet_unref
2015-10-27 14:35:30 +01:00
Ching Yi, Chan
5d926d5473
avformat/flacdec: support fast-seek
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-04 13:23:42 +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
Carl Eugen Hoyos
7b39d853b8
lavf/flac: Autodetect raw flac files.
2015-04-10 12:35:02 +02:00
Michael Niedermayer
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
Anton Khirnov
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
Michael Niedermayer
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
Andrew Stone
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
James Almer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Anton Khirnov
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
Anton Khirnov
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
Anton Khirnov
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
Michael Niedermayer
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
Michael Niedermayer
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
Rainer Hochecker
e1fcd3a007
flac demuxer: improve seeking
2014-04-14 17:43:19 +02:00
Michael Niedermayer
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
Alessandro Ghedini
1d55f8d5f6
flacdec: export replaygain tags from Vorbis comments
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
Michael Niedermayer
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
James Almer
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
James Almer
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
Michael Niedermayer
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
Diego Biurrun
e0f8be6413
avformat: Add AVPROBE_SCORE_EXTENSION define and use where appropriate
2013-05-04 21:43:06 +02:00
Michael Niedermayer
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
Xi Wang
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
Michael Niedermayer
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
Anton Khirnov
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
Michael Niedermayer
4fcf6aa7a3
flac_probe: make buffer pointers const
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:43:14 +01:00
Michael Niedermayer
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
Anton Khirnov
36ef5369ee
Replace all CODEC_ID_* with AV_CODEC_ID_*
2012-08-07 16:00:24 +02:00
Paul B Mahol
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
Michael Niedermayer
5ea4ee7bcb
flacdec: mark as AVSTREAM_PARSE_FULL_RAW
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 02:03:58 +02:00
Michael Niedermayer
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
Anton Khirnov
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
Anton Khirnov
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
Michael Niedermayer
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
Anton Khirnov
ae702edf43
flacdec: read attached pictures.
2012-06-16 17:10:23 +02:00
Michael Niedermayer
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
Martin Storsjö
20234a4bd7
cosmetics: Align muxer/demuxer declarations
...
Also add missing trailing commas, break long codec_tag lines and
add spaces in codec_tag declarations.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 19:19:59 +03:00