Commit Graph

171 Commits

Author SHA1 Message Date
Michael Niedermayer
951a365504 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  oggdec: do not fall back on binary search in the generic code.

Conflicts:
	libavformat/oggdec.c
	tests/ref/seek/lavf-ogg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-02 11:50:30 +02:00
Anton Khirnov
8ad3267ce3 oggdec: do not fall back on binary search in the generic code.
Binary search is already attempted in the format-specific seek function,
so the fallback is only reached if binary search failed already.
2013-07-02 10:37:22 +02:00
Michael Niedermayer
780b1aa1ef Merge commit 'f963f701d90bd7bb03e39aab4e59bd137084e082'
* commit 'f963f701d90bd7bb03e39aab4e59bd137084e082':
  ogg: relax demuxer conformance checks

Conflicts:
	libavformat/oggdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-06-23 13:21:21 +02:00
Luca Barbato
f963f701d9 ogg: relax demuxer conformance checks
Some samples in the wild are missing headers that are expected by the
specification but in practice do not affect decoding.
2013-06-22 20:54:59 +02:00
Michael Niedermayer
e278500181 oggdec: Support byte based seeking
Fixed Ticket2317

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-04 04:04:24 +02:00
Paul B Mahol
a9b424879f lavc & lavf: replace deprecated av_log* functions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-15 18:10:28 +00:00
Michael Niedermayer
5d2f2c7643 oggdec: chained oggs have timestamp discontinuities
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-27 03:46:12 +01:00
Michael Niedermayer
ed37a566c9 oggdec: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 16:41:50 +01:00
Michael Niedermayer
c74d4658dc oggdec: #if 0 disabled code
Fixes CID968589
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 03:01:53 +01:00
Michael Niedermayer
7cb27d216d oggdec: Support chained streams, support replacing streams in multistream files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Conflicts:

	Changelog
2013-01-20 17:53:51 +01:00
Michael Niedermayer
c994bb2fb7 oggdec: Leave treatment of serial changes to the decoder.
Attempting to re-parse the headers at demuxer level is a
pandora box the way its done currently.

This allows full reconfiguration of vorbis streams

Fixes Ticket2117
Fixes Ticket2121

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 20:19:30 +01:00
Michael Niedermayer
c5cf58d4b9 oggdec: resync from the last page.
Previously we re synced from where we where which cam lead
to loosing pages.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-15 20:19:28 +01:00
Michael Niedermayer
1700be5855 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  oggdec: make sure the private parse data is cleaned up

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 14:20:21 +01:00
Michael Niedermayer
2db8660f09 Merge commit '89b51b570daa80e6e3790fcd449fe61fc5574e07'
* commit '89b51b570daa80e6e3790fcd449fe61fc5574e07':
  oggdec: free the ogg streams on read_header failure

Conflicts:
	libavformat/oggdec.c

Original commit this was based on: (this merge just moves the function up)
commit 07a866282f
Author: Michael Niedermayer <michaelni@gmx.at>
Date:   Tue Nov 20 15:12:37 2012 +0100

    oggdec: fix memleak on header parsing failure

    Fixes Ticket1931

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-07 14:03:48 +01:00
Luca Barbato
d894f74762 oggdec: make sure the private parse data is cleaned up 2013-01-06 17:59:54 +01:00
Luca Barbato
89b51b570d oggdec: free the ogg streams on read_header failure
Plug an annoying memory leak on broken files.
2013-01-06 17:59:54 +01:00
Michael Niedermayer
ec40d15d82 oggdec: fix warning: assignment discards qualifiers from pointer target type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 22:37:24 +01:00
Michael Niedermayer
d69238e991 Merge commit 'f3298f12997eb4b7ad203766f768f92e3dd72a2a'
* commit 'f3298f12997eb4b7ad203766f768f92e3dd72a2a':
  Return proper error code after av_log_ask_for_sample()
  configure: cosmetics: Separate hwaccel dependencies from decoders/encoders
  oggdec: check memory allocation

Conflicts:
	configure
	libavcodec/pictordec.c
	libavformat/anm.c
	libavformat/oggdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 15:09:58 +01:00
Michael Niedermayer
c6664242e0 Merge commit 'f5f1cf52240759208b42477e2157a7b4409ade10'
* commit 'f5f1cf52240759208b42477e2157a7b4409ade10':
  oggdec: K&R cosmetic formatting
  hlsenc: correctly report target duration

Conflicts:
	libavformat/oggdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 14:43:03 +01:00
Luca Barbato
ba064ebe48 oggdec: check memory allocation 2012-12-23 12:19:15 +01:00
Luca Barbato
f5f1cf5224 oggdec: K&R cosmetic formatting 2012-12-23 12:19:08 +01:00
Michael Niedermayer
9db3fb6ed8 oggdec: prevent codec from changing through ogg_replace_stream()
This prevents inconsistencies leading to out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 04:40:19 +01:00
Michael Niedermayer
07a866282f oggdec: fix memleak on header parsing failure
Fixes Ticket1931

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 15:14:12 +01:00
Michael Niedermayer
248b1ff26b Fix various uses of av_log_missing_feature()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 23:13:53 +02:00
Michael Niedermayer
0842e32f99 Merge commit 'd1f05dd18375f2f8e68372edee11436927e43ba8'
* commit 'd1f05dd18375f2f8e68372edee11436927e43ba8':
  ogg: calculate the start position once all the headers are parsed

Conflicts:
	libavformat/oggdec.c
	libavformat/oggparseskeleton.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 16:00:09 +02:00
Michael Niedermayer
4c273eb64c oggdec: print a warning if the number of headers mismatch expectations.
This is based on:
	commit 7751e4693d
	Author: Luca Barbato <lu_zero@gentoo.org>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 15:34:58 +02:00
Michael Niedermayer
cc4deafed1 oggdec: print error when headers couldnt be parses successfully
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 15:22:05 +02:00
Michael Niedermayer
46a35959d8 Merge commit '7751e4693dd10ec98c20fbd9887233b575034272'
* commit '7751e4693dd10ec98c20fbd9887233b575034272':
  ogg: check that the expected number of headers had been parsed
  libx264: change default to closed gop to match x264cli
  Use avcodec_free_frame() to free AVFrames.
  lavf: use a malloced AVFrame in try_decode_frame().
  lavc: add avcodec_free_frame().
  lavc: ensure extended_data is set properly on decoding
  lavc: initialize AVFrame.extended_data in avcodec_get_frame_defaults()
  lavc: use av_mallocz to allocate AVFrames.
  lavc: rename the argument of avcodec_alloc_frame/get_frame_defaults

Conflicts:
	doc/APIchanges
	doc/examples/decoding_encoding.c
	libavcodec/utils.c
	libavcodec/version.h
	libavfilter/src_movie.c
	libavformat/oggdec.c
	libavformat/oggdec.h
	libavformat/oggparsetheora.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 15:15:16 +02:00
Luca Barbato
d1f05dd183 ogg: calculate the start position once all the headers are parsed
The fisbone packets can be muxed in any order as long the last one
comes before the first data packet.
2012-09-24 22:35:29 +02:00
Luca Barbato
7751e4693d ogg: check that the expected number of headers had been parsed
Not having the header for a codec is a tell-tale of a broken file.
2012-09-24 22:35:29 +02:00
Clément Bœsch
ea5bd7ea6f lavf/oggdec: check for begin-of-stream flag in case of chained streams.
Fix Ticket #1617, revealing a regression I introduced in 8f3eebd.

We need to make sure no stream is added in between Ogg context save and
restore operations (because it would likely lead to a mismatch between
ogg->nstreams and AVFormatContext->nb_streams after the restore op).
This is the reason the ogg->state check is added in ogg_new_stream().
Before this patch, checking for ogg->headers was preventing this:
ogg->headers is always set before any ogg save/restore (though, it was
also preventing from creating the stream when necessary).
2012-09-22 00:40:51 +02:00
Clément Bœsch
094991eb69 lavf/oggdec: reword stream creation error message. 2012-09-16 18:28:52 +02:00
Clément Bœsch
23f6420026 lavf/oggdec: reindent and comment blocks. 2012-09-16 18:28:51 +02:00
Clément Bœsch
a218c5ebd2 lavf/oggdec: make stream replacement less convoluted.
Also re-use the allocated buffer instead of re-allocating a new one.
2012-09-16 18:28:15 +02:00
Clément Bœsch
e18ea76523 lavf/oggdec: more explicit zeroing of the new ogg stream. 2012-09-16 18:28:14 +02:00
Clément Bœsch
3a89553347 lavf/oggdec: rework allocations in ogg_new_streams(). 2012-09-16 18:27:58 +02:00
Clément Bœsch
edca80387c lavf/oggdec: simplify destroying streams with chained audio streams.
nstreams is assumed to be 1 at that point, so the loop is pointless.
2012-09-16 16:52:06 +02:00
Clément Bœsch
277ddf127d lavf/oggdec: rename str to sid.
"str" is misleading here (it's often used for string). "sid" makes more
sense to identify a stream id.
2012-09-16 16:52:06 +02:00
Clément Bœsch
e1ca1dd71b lavf/oggdec: remove a comment not matching anything. 2012-09-16 16:52:06 +02:00
Clément Bœsch
bf8bfc6a11 lavf/oggdec: inline ogg_get_headers().
There is no point in a distant definition of a small function like this
used only once.

Additional spacing to distinguish better the block.
2012-09-16 16:52:06 +02: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
Reimar Döffinger
69aeba1396 oggdec: Initialize stream index to -1 in ogg_packet.
The previous method of having to initialize it outside lead
to incorrect code: even if it was initialized, it usually was
only initialized once, thus a packet that could not be matched
to any stream would just be processed with the return values
from the previous call.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-05 19:47:52 +02:00
Reimar Döffinger
a4163b2d65 oggdec: simplify start time calculation code.
Also slightly more correct behaviour in case streams_left for
some reason is 0 from the start.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-05 19:47:52 +02:00
Michael Niedermayer
9e1c55cfde oggdec: check stream index before using it in ogg_get_length()
Fixes crash based on a uninitialized array index read.
If the read does not crash then out of array writes based
on the same index might have been triggered afterwards.

Found-by: inferno@chromium.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-05 05:08:15 +02:00
Nicolas George
e62fd6619f oggdec: add support for Opus codec.
This patch also introduces CODEC_ID_OPUS.
2012-07-20 11:16:52 +02:00
Michael Niedermayer
e0eaf10049 oggdec: fix regression that caused reading the whole file during open
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 22:50:40 +02:00
Michael Niedermayer
8443082db6 ogg: rewrite first timestamp reading code.
this is simpler and closer to how timestamps are found for seeking.

Fixes Ticket1186

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 14:15:34 +02:00
Michael Niedermayer
5931c754b8 ogg: in ogg_get_length() start from data_offset not 0.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-14 14:15:34 +02:00
Michael Niedermayer
ef32fbafcd oggdec: fix off by one error on pos_limit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00
Michael Niedermayer
a6bb09fc1a oggdec: print error on failure to create streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-04 14:40:22 +02:00