Commit Graph

1605 Commits

Author SHA1 Message Date
Michael Niedermayer
c250063523 get_buffers: Check that pix_fmt is not NONE.
This is somewhat redundant as no decoder should call get_buffer() with such argument.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29 06:27:38 +01:00
Michael Niedermayer
ddd86a2924 ffmpeg: Fix division by 0 due to invalid timebase
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-28 18:41:01 +01:00
Carl Eugen Hoyos
7b4e1466d4 Exit ffmpeg if swr_convert() fails. 2012-02-27 19:02:28 +01:00
Michael Niedermayer
574dcb5baf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: don't guess r_frame_rate from either stream or codec timebase.
  avconv: set discard on input streams automatically.
  Fix parser not to clobber has_b_frames when extradata is set.
  lavf: don't set codec timebase in avformat_find_stream_info().
  avconv: saner output video timebase.
  rawdec: set timebase to 1/fps.
  avconv: refactor vsync code.
  FATE: remove a bunch of useless -vsync 0
  cdxl: bit line plane arrangement support
  cdxl: remove early check for bpp
  cdxl: set pix_fmt PAL8 only if palette is available

Conflicts:
	ffmpeg.c
	libavcodec/h264_parser.c
	libavformat/rawdec.c
	tests/fate/demux.mak
	tests/fate/ea.mak
	tests/fate/h264.mak
	tests/fate/prores.mak
	tests/fate/video.mak
	tests/ref/fate/bethsoft-vid
	tests/ref/fate/creatureshock-avs
	tests/ref/fate/ea-cmv
	tests/ref/fate/interplay-mve-16bit
	tests/ref/fate/interplay-mve-8bit
	tests/ref/fate/nuv
	tests/ref/fate/prores-alpha
	tests/ref/fate/qtrle-16bit
	tests/ref/fate/qtrle-1bit
	tests/ref/fate/real-rv40
	tests/ref/fate/rpza
	tests/ref/fate/wmv8-drm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-27 04:35:35 +01:00
Reimar Döffinger
6a3f1726af Add missing av_free_packet.
Fixes memory leak when encoding at least with mpegvideo using the
new encode2 function.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-20 21:23:00 +01:00
Michael Niedermayer
f3bd226de6 ffmpeg: Fix setting flags for codec copy.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-18 14:34:16 +01:00
Michael Niedermayer
8c1ebdcea2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  shorten: Use separate pointers for the allocated memory for decoded samples.
  atrac3: Fix crash in tonal component decoding.
  ws_snd1: Fix wrong samples counts.
  movenc: Don't set a default sample duration when creating ismv
  rtp: Factorize the check for distinguishing RTCP packets from RTP
  golomb: avoid infinite loop on all-zero input (or end of buffer).
  bethsoftvid: synchronize video timestamps with audio sample rate
  bethsoftvid: add audio stream only after getting the first audio packet
  bethsoftvid: Set video packet duration instead of accumulating pts.
  bethsoftvid: set packet key frame flag for audio and I-frame video packets.
  bethsoftvid: fix read_packet() return codes.
  bethsoftvid: pass palette in side data instead of in a separate packet.
  sdp: Ignore RTCP packets when autodetecting RTP streams
  proresenc: initialise 'sign' variable
  mpegaudio: replace memcpy by SIMD code
  vc1: prevent using last_frame as a reference for I/P first frame.

Conflicts:
	libavcodec/atrac3.c
	libavcodec/golomb.h
	libavcodec/shorten.c
	libavcodec/ws-snd1.c
	tests/ref/fate/bethsoft-vid

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-17 00:35:06 +01:00
Michael Niedermayer
60991ad6ae ffmpeg: Fix image allocation.
This probably fixes some of the use of uninitialized issues valgrind shows in fate.
It might also fix other issues.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-15 20:35:14 +01:00
Michael Niedermayer
c980be9e3a Merge remote-tracking branch 'qatar/master'
* qatar/master: (21 commits)
  CDXL demuxer and decoder
  hls: Re-add legacy applehttp name to preserve interface compatibility.
  hlsproto: Rename the functions and context
  hlsproto: Encourage users to try the hls demuxer instead of the proto
  doc: Move the hls protocol section into the right place
  libavformat: Rename the applehttp protocol to hls
  hls: Rename the functions and context
  libavformat: Rename the applehttp demuxer to hls
  rtpdec: Support H263 in RFC 2190 format
  rv30: check block type validity
  ttadec: CRC checking
  movenc: Support muxing VC1
  avconv: Don't split out inline sequence headers when stream copying VC1
  rv34: handle size changes during frame multithreading
  rv40: prevent undefined signed overflow in rv40_loop_filter()
  rv34: use AVERROR return values in ff_rv34_decode_frame()
  rv34: use uint16_t for RV34DecContext.deblock_coefs
  librtmp: Add "lib" prefix to librtmp URLProtocol declarations.
  movenc: Use defines instead of hardcoded numbers for RTCP types
  smjpegdec: implement seeking
  ...

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/avcodec.h
	libavcodec/rv30.c
	libavcodec/tta.c
	libavcodec/version.h
	libavformat/Makefile
	libavformat/allformats.c
	libavformat/version.h
	libswscale/x86/swscale_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-15 01:52:14 +01:00
Stefano Sabatini
5d12b83ff1 ffmpeg.c: implement -debug_ts option
Mostly useful for debugging purposes.
2012-02-14 18:01:37 +01:00
Clément Bœsch
b986590810 ffmpeg: remove unneeded ost->picref check.
If there ost->picref is NULL, it will likely crash anyway a few lines
below by dereferencing it in order to access video attribute.
2012-02-13 23:32:39 +01:00
Clément Bœsch
c214e98634 ffmpeg: remove pointless avcodec_get_frame_defaults().
filtered_frame is overwritten just below anyway.
2012-02-13 23:32:39 +01:00
Clément Bœsch
73413e6bca ffmpeg: raise ENOMEM on avfilter_graph_alloc() failure. 2012-02-13 23:32:35 +01:00
Michael Niedermayer
4e04e1b81e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: convert yuv2yuvX() to using named arguments.
  swscale: rename "dstw" to "w" to prevent name collisions.
  swscale: use named registers in yuv2yuv1_plane() place.
  lavf: fix aspect ratio mismatch message.
  avconv: set AVFormatContext.duration from '-t'
  cljr: implement encode2.
  cljr: set the properties of the coded_frame, not input frame.
  dnxhdenc: switch to encode2.
  bmpenc: switch to encode2().

Conflicts:
	libavcodec/bmpenc.c
	libavcodec/cljr.c
	libavformat/utils.c
	tests/ref/vsynth1/cljr
	tests/ref/vsynth2/cljr

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-13 02:06:44 +01:00
Reimar Döffinger
c15f3bd3db Simplify: use local variable with same contents directly.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-02-12 18:56:07 +01:00
Michael Niedermayer
85f25cfa19 ffmpeg: fix passlogfile with multiple libx264 streams.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-12 00:03:26 +01:00
Michael Niedermayer
a78f6b8cb9 Merge remote-tracking branch 'qatar/master'
* qatar/master: (38 commits)
  v210enc: remove redundant check for pix_fmt
  wavpack: allow user to disable CRC checking
  v210enc: Use Bytestream2 functions
  cafdec: Check return value of avio_seek and avoid modifying state if it fails
  yop: Check return value of avio_seek and avoid modifying state if it fails
  tta: Check return value of avio_seek and avoid modifying state if it fails
  tmv: Check return value of avio_seek and avoid modifying state if it fails
  r3d: Check return value of avio_seek and avoid modifying state if it fails
  nsvdec: Check return value of avio_seek and avoid modifying state if it fails
  mpc8: Check return value of avio_seek and avoid modifying state if it fails
  jvdec: Check return value of avio_seek and avoid modifying state if it fails
  filmstripdec: Check return value of avio_seek and avoid modifying state if it fails
  ffmdec: Check return value of avio_seek and avoid modifying state if it fails
  dv: Check return value of avio_seek and avoid modifying state if it fails
  bink: Check return value of avio_seek and avoid modifying state if it fails
  Check AVCodec.pix_fmts in avcodec_open2()
  svq3: Prevent illegal reads while parsing extradata.
  remove ParseContext1
  vc1: use ff_parse_close
  mpegvideo parser: move specific fields into private context
  ...

Conflicts:
	libavcodec/4xm.c
	libavcodec/aacdec.c
	libavcodec/h264.c
	libavcodec/h264.h
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/mpeg4video_parser.c
	libavcodec/svq3.c
	libavcodec/v210enc.c
	libavformat/cafdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11 01:22:22 +01:00
Clément Bœsch
a3c4371f3c ffmpeg: prefer NULL over 0 for av_log context pointer parameter. 2012-02-10 20:47:42 +01:00
Clément Bœsch
158bd596a6 ffmpeg: move quality parameter to do_video_out() scope.
This make do_video_out() and do_audio_out() consistent. Also simplifies
callers.
2012-02-10 20:13:36 +01:00
Clément Bœsch
63b5e99fab ffmpeg: make use of ret error out in transcode_video(). 2012-02-10 20:13:36 +01:00
Clément Bœsch
086fc4d765 ffmpeg: move filtered_frame to the CONFIG_AVFILTER scope.
This simplifies a bit the #ifdefery.
2012-02-10 20:13:36 +01:00
Clément Bœsch
9303b794b8 ffmpeg: move do_video_stats() above do_video_out().
This avoid a forward declaration.
2012-02-10 20:12:52 +01:00
Clément Bœsch
a78dd826ee ffmpeg: move video stats code to do_video_out().
This will allow some simplifications in transcode_video().
2012-02-10 20:12:52 +01:00
Clément Bœsch
cf31060127 ffmpeg: move filtered_frame to video stream processing scope. 2012-02-10 20:12:52 +01:00
Clément Bœsch
aede21f1b6 ffmpeg: reindent after video frame polling simplification. 2012-02-10 19:59:38 +01:00
Clément Bœsch
e22c7b4e25 ffmpeg: simplify video frame polling.
input_video_filter and output_video_filter can't be NULL at this point.
If they are, the current code would likely crash anyway (since
filtered_frame would be NULL and sent to do_video_out().
2012-02-10 19:59:38 +01:00
Clément Bœsch
4ab4b3db5a ffmpeg: use exit_program() if configure_video_filters() fails. 2012-02-10 19:59:38 +01:00
Michael Niedermayer
29034e6503 ffmpeg: Add threshold to discard crazy/damaged timestamps.
The added tests are limited to the case where timestamp discontinuities
are not allowed. The default is 30 hours which is arbitrarily picked and
quite conservative.
This prevents a out of memory condition due to duplicating a frame
millions of times.

Found-by:  Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-10 05:40:42 +01:00
Michael Niedermayer
677911ad81 ffmpeg: better dox for *pts.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 19:03:31 +01:00
Michael Niedermayer
f2b20b7a8b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  pixdesc: mark pseudopaletted formats with a special flag.
  avconv: switch to avcodec_encode_video2().
  libx264: implement encode2().
  libx264: split extradata writing out of encode_nals().
  lavc: add avcodec_encode_video2() that encodes from an AVFrame -> AVPacket
  cmdutils: update copyright year to 2012.
  swscale: sign-extend integer function argument to qword on x86-64.
  x86inc: support yasm -f win64 flag also.
  h264: manually save/restore XMM registers for functions using INIT_MMX.
  x86inc: allow manual use of WIN64_SPILL_XMM.
  aacdec: Use correct speaker order for 7.1.
  aacdec: Remove incorrect comment.
  aacdec: Simplify output configuration.
  Remove Sun medialib glue code.
  dsputil: set STRIDE_ALIGN to 16 for x86 also.
  pngdsp: swap argument inversion.

Conflicts:
	cmdutils.c
	configure
	doc/APIchanges
	ffmpeg.c
	libavcodec/aacdec.c
	libavcodec/dsputil.h
	libavcodec/libx264.c
	libavcodec/mlib/dsputil_mlib.c
	libavcodec/utils.c
	libavfilter/vf_scale.c
	libavutil/avutil.h
	libswscale/mlib/yuv2rgb_mlib.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-09 01:27:12 +01:00
Michael Niedermayer
d8710228ea ffmpeg: change sync_opts code to be more similar to qatar.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 23:50:37 +01:00
Michael Niedermayer
fba318a4b0 ffmpeg: update (next_)pts in the stream copy case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 17:26:06 +01:00
Michael Niedermayer
160008a60f ffmpeg: use ist->dts in rate_emu_sleep()
Based on change by Anton Khirnov.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 17:25:40 +01:00
Michael Niedermayer
e7f4de34ad ffmpeg: use ist->dts in do_streamcopy()
Based on change by Anton Khirnov.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 17:25:01 +01:00
Anton Khirnov
67c63176ad ffmpeg: remove setting fb->pts.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:59:50 +01:00
Anton Khirnov
d97fa416d6 ffmpeg: reduce overloading for InputStream.pts.
It currently has different meanings at different times (dts of the last
read packet/pts of the last decoded frame). Reduce obfuscation by
storing pts of the decoded frame in the frame itself.

Conflicts:

	ffmpeg.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:41:32 +01:00
Michael Niedermayer
67700e877d ffmpeg: update dts variables in transcode_audio()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:28:56 +01:00
Michael Niedermayer
6028bd0dc6 ffmpeg: move next_dts/pts update out of transcode_video()
this makes it placed similar to qatar

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:16:42 +01:00
Michael Niedermayer
7665da46ce ffmpeg: update ist->pts in transcode_audio with the audio decoders output.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 16:15:47 +01:00
Michael Niedermayer
8ea81805d4 ffmpeg: print more details and rescaled timestamps in debug code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 15:49:21 +01:00
Michael Niedermayer
c0be67cac1 ffmpeg: use (next_)dts in timestamp discontinuity detection code.
Strongly based on Anton Khirnovs code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 15:49:02 +01:00
Michael Niedermayer
e806ceaa7b ffmpeg: Use the correct (dts) variables for stream copy.
Strongly based on Anton Khirnovs code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 08:01:20 +01:00
Michael Niedermayer
f070bf0894 ffmpeg: Fix (next)_dts/pts init.
Based on Anton Khirnovs code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 08:01:05 +01:00
Michael Niedermayer
4eea0cfc22 ffmpeg: use ist->dts instead of passing an argument into transcode_video().
This makes the code more similar to qatar
And fixes decoding of the last frame of fate/vc1-ism

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 06:46:58 +01:00
Michael Niedermayer
f72eaf69ab ffmpeg: Init dts variables in output_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 06:19:43 +01:00
Michael Niedermayer
fe380adbfb ffmpeg: add (next_dts/dts) variables.
Strongly based on Anton Khirnovs code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 06:13:44 +01:00
Michael Niedermayer
18d0a16fc9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: make yuv2yuv1 use named registers.
  h264: mark h264_idct_add8_10 with number of XMM registers.
  swscale: fix V plane memory location in bilinear/unscaled RGB/YUYV case.
  vp8: always update next_framep[] before returning from decode_frame().
  avconv: estimate next_dts from framerate if it is set.
  avconv: better next_dts usage.
  avconv: rename InputStream.pts to last_dts.
  avconv: reduce overloading for InputStream.pts.
  avconv: rename InputStream.next_pts to next_dts.
  avconv: rework -t handling for encoding.
  avconv: set encoder timebase for subtitles.
  pva-demux test: add -vn
  swscale: K&R formatting cosmetics for SPARC code
  apedec: allow the user to set the maximum number of output samples per call
  apedec: do not unnecessarily zero output samples for mono frames
  apedec: allocate a single flat buffer for decoded samples
  apedec: use sizeof(field) instead of sizeof(type)
  swscale: split C output functions into separate file.
  swscale: Split C input functions into separate file.
  bytestream: Add bytestream2 writing API.

The avconv changes are due to massive regressions and bugs not merged yet.

Conflicts:
	ffmpeg.c
	libavcodec/vp8.c
	libswscale/swscale.c
	libswscale/x86/swscale_template.c
	tests/fate/demux.mak
	tests/ref/lavf/asf
	tests/ref/lavf/avi
	tests/ref/lavf/mkv
	tests/ref/lavf/mpg
	tests/ref/lavf/nut
	tests/ref/lavf/ogg
	tests/ref/lavf/rm
	tests/ref/lavf/ts
	tests/ref/seek/lavf_avi
	tests/ref/seek/lavf_mkv
	tests/ref/seek/lavf_rm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-08 05:53:35 +01:00
Stefano Sabatini
f491f033f5 ffmpeg: document the unit for the -fs option parameter 2012-02-06 20:47:09 +01:00
Stefano Sabatini
70ffda3217 lavu: introduce av_parse_ratio() and use it in ffmpeg and lavfi/aspect
Factorize code and provide ratio parsing consistency.
2012-02-06 11:30:54 +01:00
Michael Niedermayer
982783ac49 ffmpeg: document avi special case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-05 05:14:26 +01:00