1559 Commits

Author SHA1 Message Date
Anton Khirnov
fe1c1198e6 lavf: use dts difference instead of AVPacket.duration in find_stream_info()
AVPacket.duration is mostly made up and thus completely useless, this is
especially true for video streams.
Therefore use dts difference for framerate estimation and
the max_analyze_duration check.

The asyncts test now needs -analyzeduration, because the default is 5
seconds and the audio stream in the sample appears at ~10 seconds.
2012-07-29 08:04:42 +02:00
Luca Barbato
681ed00099 avf: introduce nobuffer option
Useful in cases where a significant analyzeduration is
still needed, while minimizing buffering before output.

An example is processing low-latency streams where all
media types won't necessarily come in if the
analyzeduration is small.

Additional changes by Josh Allmann <joshua.allmann@gmail.com>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-07-29 07:58:00 +02:00
Michael Niedermayer
706bd8ea19 Merge remote-tracking branch 'qatar/master'
* qatar/master: (35 commits)
  h264_idct_10bit: port x86 assembly to cpuflags.
  x86inc: clip num_args to 7 on x86-32.
  x86inc: sync to latest version from x264.
  fft: rename "z" to "zc" to prevent name collision.
  wv: return meaningful error codes.
  wv: return AVERROR_EOF on EOF, not EIO.
  mp3dec: forward errors for av_get_packet().
  mp3dec: remove a pointless local variable.
  mp3dec: remove commented out cruft.
  lavfi: bump minor to mark stabilizing the ABI.
  FATE: add tests for yadif.
  FATE: add a test for delogo video filter.
  FATE: add a test for amix audio filter.
  audiogen: allow specifying random seed as a commandline parameter.
  vc1dec: Override invalid macroblock quantizer
  vc1: avoid reading beyond the last line in vc1_draw_sprites()
  vc1dec: check that coded slice positions and interlacing match.
  vc1dec: Do not ignore ff_vc1_parse_frame_header_adv return value
  configure: Move parts that should not be user-selectable to CONFIG_EXTRA
  lavf: remove commented out cruft in avformat_find_stream_info()
  ...

Conflicts:
	Makefile
	configure
	libavcodec/vc1dec.c
	libavcodec/x86/h264_deblock.asm
	libavcodec/x86/h264_deblock_10bit.asm
	libavcodec/x86/h264dsp_mmx.c
	libavfilter/version.h
	libavformat/mp3dec.c
	libavformat/utils.c
	libavformat/wv.c
	libavutil/x86/x86inc.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-29 02:16:26 +02:00
Anton Khirnov
efd34918ba lavf: remove commented out cruft in avformat_find_stream_info() 2012-07-28 10:00:38 +02:00
Anton Khirnov
c4ef6a3e4b Add missing libavutil/time.h includes. 2012-07-28 09:02:07 +02:00
Michael Niedermayer
12d1ee6a5e ff_add_index_entry: reject AV_NOPTS_VALUE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 03:05:31 +02:00
Michael Niedermayer
2cd491a47c lavf: move generic index generation code to a later point
By moving it to a later point relative and unknown timestamps
are more likely to have been corrected

similar patch reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Conflicts:

	libavformat/utils.c
2012-07-26 03:04:49 +02:00
Michael Niedermayer
2880c31660 parse_packet: use pkt.pos always instead of the avparser offset.
This is more correct and will be needed when the code is moved to
a later point.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 02:20:59 +02:00
Michael Niedermayer
9054f6b66b probe_codec: fix memory corruption
Found-by: Tanami Ohad
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 01:10:55 +02:00
Michael Niedermayer
da62b4326b av_find_stream_info: skip flushing codecs and estimating timings if probe_size==0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 17:39:25 +02:00
Michael Niedermayer
1c2beff04a lavf: Set pos for all packets of AVSTREAM_PARSE_FULL_RAW files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 01:57:25 +02:00
Michael Niedermayer
e2fd18d40d lavf: factor AVStream st out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 00:45:17 +02:00
Michael Niedermayer
6b38101df5 parse_packet: reset pkt->pos after it has been used
This should have no effect as it was not used in this case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 00:42:50 +02:00
Michael Niedermayer
01272e7662 Revert "lavf: count skipped samples for initial timestamps."
This reverts commit 885fc058655efee94203314984ce99b301fdebb1.
This commit caused timestamps in case of generic seeking to become
inconsistent.
2012-07-24 17:10:38 +02:00
Peter Ross
1be55c82a5 av_url_split: dont let '/' char whallop '?' char
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 16:26:43 +02:00
Nicolas George
b0629366a2 lavf: make cmdutils's check_stream_specifier public.
The new function is called avformat_match_stream_specifier()
and does not include logging the error message.
2012-07-20 13:16:23 +02:00
Nicolas George
885fc05865 lavf: count skipped samples for initial timestamps.
If skip_samples is set and timestamps are synthesized using durations,
make them start at -skip_samples (rescaled) instead of 0,
so that the timestamp of the first undiscarded sample is 0.
2012-07-19 23:41:03 +02:00
Nicolas George
0e57d79b0c lavf: set pkt_timebase at the same time as stream->time_base. 2012-07-19 23:41:03 +02:00
Stefano Sabatini
5784a46986 lavf/utils: show the number of stream in case of missing parameter
Increase feedback provided in avformat_find_stream_info().
2012-07-18 18:08:57 +02:00
Stefano Sabatini
739ec710c4 lavf/utils: suggest what to do in case of missing codec information
In particular, fix trac issue #218.
2012-07-18 18:08:57 +02:00
Stefano Sabatini
a293549b32 lavf/utils: extend has_codec_parameters() to make it show what info is missing
Improve feedback.
2012-07-18 18:08:56 +02:00
Michael Niedermayer
018601dbf9 lavf: inject sample skip side data when requested by the demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 20:32:03 +02:00
Michael Niedermayer
d8ce478c43 lavf: limit "Adjusting PTS forward" code to video streams
It can end up slightly messing up a series of valid timestamps
after a invalid one.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 22:29:34 +02:00
Michael Niedermayer
a08efa2e36 has_decode_delay_been_guessed: tighten up the heuristic.
This adds the minimum delay needed with the current decoder to
recognize the reorder buffer size for the reference bitstreams.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:23:33 +02:00
Michael Niedermayer
4e9e0700fb has_decode_delay_been_guessed: skip guessing when sps.num_reorder_frames is available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:18:32 +02:00
Michael Niedermayer
2c883c6acf has_decode_delay_been_guessed: improve heuristic
This allows MR4_TANDBERG_C.264 and MR5_TANDBERG_C.264 to be decoded without -strict 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 22:59:42 +02:00
Stefano Sabatini
3cd4f9fd76 lavf: allow multiple names in output devices selected by av_guess_format()
Consistent with av_find_input_format().
2012-06-29 16:54:18 +02:00
Hendrik Leppkes
5916313967 avformat: offset fps calculation by one to include 60.00 fps
To ensure the full range of values is still used, also adjust all uses of this function to loop from 0
instead of 1. This way only 60.00 is added and nothing lost.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 01:58:57 +02:00
Hendrik Leppkes
6d887ecac2 avformat: add 48 fps to the NTSC framerates
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 12:04:47 +02:00
Michael Niedermayer
4da42ebe44 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  MS Screen 1 decoder
  aacdec: Fix popping channel layouts.
  av_gettime: support Win32 without gettimeofday()
  Use av_gettime() in various places
  Move av_gettime() to libavutil
  dct-test: use emms_c() from libavutil instead of duplicating it
  mov: fix operator precedence bug
  mathematics.h: remove a couple of math defines
  Remove unnecessary inclusions of [sys/]time.h
  lavf: remove unnecessary inclusions of unistd.h
  bfin: libswscale: add const where appropriate to fix warnings
  bfin: libswscale: remove unnecessary #includes
  udp: Properly check for invalid sockets
  tcp: Check the return value from getsockopt
  network: Use av_strerror for getting error messages
  udp: Properly print error from getnameinfo
  mmst: Use AVUNERROR() to convert error codes to the right range for strerror
  network: Pass pointers of the right type to get/setsockopt/ioctlsocket on windows
  rtmp: Reduce the number of idle posts sent by sleeping 50ms

Conflicts:
	Changelog
	configure
	libavcodec/aacdec.c
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/dct-test.c
	libavcodec/version.h
	libavformat/riff.c
	libavformat/udp.c
	libavutil/Makefile
	libswscale/bfin/yuv2rgb_bfin.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 20:47:46 +02:00
Mans Rullgard
ae0a301668 Move av_gettime() to libavutil
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 17:09:03 +01:00
Michael Bradshaw
2243f0d078 lavf: add field for how duration is estimated
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
2012-06-18 09:36:34 +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
a5db8e4a1a lavf: don't segfault when a NULL filename is passed to avformat_open_input()
This can easily happen when the caller is using a custom AVIOContext.

Behave as if the filename was an empty string in this case.

CC: libav-stable@libav.org
2012-06-16 17:09:33 +02:00
Michael Bradshaw
67703d64d7 lavf: cosmetic: format else with indentation
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 19:44:42 +02:00
Michael Niedermayer
2a622c2369 lavf: add a "warning" when discarding a oddly backward subtitle or data starttime
Idea-by: ohsix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 19:28:08 +02:00
Michael Niedermayer
47695b1d65 lavf: handle data like subtitles in start time calculation.
This fixes an issue with a crazy data track starting with a large
negative timestamp.

It could as well be solved in all user apps, but this is looking
attractively simpler ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 19:19:00 +02:00
Michael Niedermayer
107b42388c lavf: fix missing "parser not found" message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 19:02:32 +02:00
Michael Niedermayer
ad60b3b181 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vorbis: Validate that the floor 1 X values contain no duplicates.
  avprobe: Identify codec probe failures rather than calling them unsupported codecs.
  avformat: Probe codecs at score 0 on buffer exhaustion conditions.
  avformat: Factorize codec probing.
  Indeo Audio decoder
  imc: make IMDCT support stereo output
  imc: move channel-specific data into separate context
  lavfi: remove request/poll and drawing functions from public API on next bump
  lavfi: make avfilter_insert_pad and pals private on next bump.
  lavfi: make formats API private on next bump.
  avplay: use buffersrc instead of custom input filter.
  avtools: move buffer management code from avconv to cmdutils.
  avconv: don't use InputStream in the buffer management code.
  avconv: fix exiting when max frames is reached.
  mpc8: fix maximum bands handling
  aacdec: Turn PS off when switching to stereo and turn it to implicit when switching to mono.

Conflicts:
	Changelog
	cmdutils.h
	ffmpeg.c
	ffplay.c
	ffprobe.c
	libavcodec/avcodec.h
	libavcodec/mpc8.c
	libavcodec/v210dec.h
	libavcodec/version.h
	libavcodec/vorbisdec.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/formats.c
	libavfilter/src_movie.c
	libavfilter/vf_aspect.c
	libavfilter/vf_blackframe.c
	libavfilter/vf_boxblur.c
	libavfilter/vf_crop.c
	libavfilter/vf_cropdetect.c
	libavfilter/vf_delogo.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_fifo.c
	libavfilter/vf_format.c
	libavfilter/vf_frei0r.c
	libavfilter/vf_gradfun.c
	libavfilter/vf_hflip.c
	libavfilter/vf_hqdn3d.c
	libavfilter/vf_libopencv.c
	libavfilter/vf_lut.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vf_select.c
	libavfilter/vf_showinfo.c
	libavfilter/vf_transpose.c
	libavfilter/vf_unsharp.c
	libavfilter/vf_yadif.c
	libavfilter/vsrc_color.c
	libavfilter/vsrc_testsrc.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 01:08:33 +02:00
Alex Converse
f0ff9eb493 avformat: Probe codecs at score 0 on buffer exhaustion conditions. 2012-06-05 09:51:51 -07:00
Alex Converse
62bebf6edb avformat: Factorize codec probing. 2012-06-05 09:51:51 -07:00
Michael Niedermayer
5665674b55 lavf: use input keyframe flag when muxer does not provide keyframe flags.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 21:11:43 +02:00
Michael Niedermayer
121d3875b6 lavf: print the invalid tb in avpriv_set_pts_info()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-23 19:04:23 +02:00
Michael Niedermayer
a6b3471c44 avformat: add needs_parsing type to enable codec TS use.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-22 14:59:02 +02:00
Michael Niedermayer
938adb7abc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dwt: K&R prettyprinting cosmetics
  Remove libnut wrapper
  fate: change name of FATE samples location environment variable
  avformat: Add a flag to mark muxers that allow (non strict) monotone timestamps.
  http: Factorize the code by adding http_read_header()

Conflicts:
	configure
	doc/APIchanges
	doc/fate.texi
	libavcodec/dwt.c
	libavcodec/dwt.h
	libavformat/Makefile
	libavformat/avformat.h
	libavformat/libnut.c
	libavformat/matroskaenc.c
	libavformat/utils.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-21 23:53:39 +02:00
James Zern
e9cef89702 avformat: Add a flag to mark muxers that allow (non strict) monotone timestamps.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-05-20 19:50:32 -04:00
Michael Niedermayer
349c62410b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  indeo: Make ivi_calc_band_checksum() static, it is only used in one file.
  indeo: Drop unused debug function ivi_check_band().
  avcodec/utils: cast a function argument to shut up a compiler warning
  truemotion1: remove disabled code
  fix typo in comment
  fate: fix dependencies for non-SAMPLES avconv tests
  indeo: check for invalid motion vectors
  indeo: check that band output buffer exists
  indeo: clear allocated band buffers
  indeo: track tile macroblock size
  indeo: check custom Huffman tables for errors
  factor out common decoding code for Indeo 4 and Indeo 5
  mp3: fix start band index for block type 2 in 8kHz audio
  lavf: change some (de)muxer names to lowercase
  lavf: make output format matching case insensitive

Conflicts:
	libavcodec/indeo4.c
	libavcodec/indeo5.c
	libavcodec/ivi_common.c
	libavcodec/utils.c
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 22:58:04 +02:00
Marton Balint
b36a0a80fc lavf: also use codec aspect ratio in av_guess_sample_aspect_ratio
Use codec aspect ratio for frame aspect ratio if AVFrame is NULL.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-20 19:36:00 +02:00
Mans Rullgard
81ad97eeda lavf: make output format matching case insensitive
This is consistent with how input formats are matched.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-19 19:44:15 +01:00
Michael Niedermayer
703e920bb7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: Work around non-standard wc implementations at more places
  fate: work around non-standard wc implementations
  x86: rv40: Mark rv40_weight functions as MMX2; they use MMX2 instructions.
  ac3dsp: simplify x86 versions of ac3_max_msb_abs_int16
  fate: use standard diff options
  tta: Fix comment about channel number; TTA supports >2 channels.
  avfilter: Move ff_get_ref_perms_string() to where it is used.
  build: Add 'check' target to run all compile and test targets.
  indeo3: validate new frame size before resetting decoder
  indeo3: when freeing buffers, set pointers referencing them to NULL as well
  indeo3: initialise pixel planes on allocation
  indeo3: ensure that decoded cell data is in 7-bit range as presumed by decoder
  fate: rename psx-str-v3-mdec to mdec-v3
  fate: convert psx-str to a demuxer test
  lavf: add mdec to is_intra_only() list

Conflicts:
	doc/developer.texi
	libavcodec/indeo3.c
	libavfilter/video.c
	libavformat/utils.c
	tests/fate/demux.mak
	tests/fate/video.mak
	tests/lavf-regression.sh
	tests/ref/vsynth1/cljr
	tests/ref/vsynth1/ffvhuff
	tests/ref/vsynth2/cljr
	tests/ref/vsynth2/ffvhuff

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-16 22:32:05 +02:00