Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 15 Aug 2011 21:35:53 +0000 (23:35 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 15 Aug 2011 21:35:53 +0000 (23:35 +0200)
* qatar/master:
  Fix NASM include directive
  dsputil_mmx: Honor HAVE_AMD3DNOW
  lavf,lavd: remove all usage of AVFormatParameters from demuxers.
  jack: add 'channels' private option.
  VC-1: fix reading of custom PAR.
  Remove redundant and dubious video codec detection by its extradata
  mpeg12: remove repeat-field code disabled since May 2002
  patch checklist: suggest fate instead of regression tests
  Turn on resampling on sudden size change instead of bailing out during recode.
  avtools: reinitialise filter chain when input video stream changes dimensions

Conflicts:
Makefile
avconv.c
doc/developer.texi
ffplay.c
libavcodec/x86/dsputil_mmx.c
libavdevice/libdc1394.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
41 files changed:
1  2 
avconv.c
common.mak
doc/developer.texi
ffmpeg.c
ffplay.c
libavcodec/mpeg12.c
libavcodec/x86/ac3dsp.asm
libavcodec/x86/dct32_sse.asm
libavcodec/x86/deinterlace.asm
libavcodec/x86/dsputil_mmx.c
libavcodec/x86/dsputil_yasm.asm
libavcodec/x86/dsputilenc_yasm.asm
libavcodec/x86/fft_mmx.asm
libavcodec/x86/fmtconvert.asm
libavcodec/x86/h264_chromamc.asm
libavcodec/x86/h264_deblock.asm
libavcodec/x86/h264_deblock_10bit.asm
libavcodec/x86/h264_idct.asm
libavcodec/x86/h264_intrapred.asm
libavcodec/x86/h264_weight.asm
libavcodec/x86/vc1dsp_yasm.asm
libavcodec/x86/vp3dsp.asm
libavcodec/x86/vp56dsp.asm
libavcodec/x86/vp8dsp.asm
libavdevice/alsa-audio-dec.c
libavdevice/bktr.c
libavdevice/dv1394.c
libavdevice/fbdev.c
libavdevice/jack_audio.c
libavdevice/oss_audio.c
libavdevice/sndio_dec.c
libavdevice/v4l.c
libavdevice/v4l2.c
libavdevice/vfwcap.c
libavdevice/x11grab.c
libavformat/img2.c
libavformat/mpegts.c
libavformat/rawdec.c
libavformat/rmdec.c
libavformat/rtspdec.c
libavformat/tty.c

diff --cc avconv.c
Simple merge
diff --cc common.mak
@@@ -5,66 -5,6 +5,66 @@@
  # first so "all" becomes default target
  all: all-yes
  
- YASMFLAGS  += $(IFLAGS) -Pconfig.asm
 +ifndef SUBDIR
 +
 +ifndef V
 +Q      = @
 +ECHO   = printf "$(1)\t%s\n" $(2)
 +BRIEF  = CC AS YASM AR LD HOSTCC STRIP CP
 +SILENT = DEPCC YASMDEP RM RANLIB
 +MSG    = $@
 +M      = @$(call ECHO,$(TAG),$@);
 +$(foreach VAR,$(BRIEF), \
 +    $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR))))
 +$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))
 +$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL))
 +endif
 +
 +ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale
 +
 +# NASM requires -I path terminated with /
 +IFLAGS     := -I. -I$(SRC_PATH)/
 +CPPFLAGS   := $(IFLAGS) $(CPPFLAGS)
 +CFLAGS     += $(ECFLAGS)
 +CCFLAGS     = $(CFLAGS)
++YASMFLAGS  += $(IFLAGS) -I$(SRC_PATH)/libavutil/x86/ -Pconfig.asm
 +HOSTCFLAGS += $(IFLAGS)
 +LDFLAGS    := $(ALLFFLIBS:%=-Llib%) $(LDFLAGS)
 +
 +define COMPILE
 +       $($(1)DEP)
 +       $($(1)) $(CPPFLAGS) $($(1)FLAGS) $($(1)_DEPFLAGS) -c $($(1)_O) $<
 +endef
 +
 +COMPILE_C = $(call COMPILE,CC)
 +COMPILE_S = $(call COMPILE,AS)
 +
 +%.o: %.c
 +      $(COMPILE_C)
 +
 +%.o: %.S
 +      $(COMPILE_S)
 +
 +%.ho: %.h
 +      $(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused -c -o $@ -x c $<
 +
 +%.ver: %.v
 +      $(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@
 +
 +%.c %.h: TAG = GEN
 +
 +# Dummy rule to stop make trying to rebuild removed or renamed headers
 +%.h:
 +      @:
 +
 +# Disable suffix rules.  Most of the builtin rules are suffix rules,
 +# so this saves some time on slow systems.
 +.SUFFIXES:
 +
 +# Do not delete intermediate files from chains of implicit rules
 +$(OBJS):
 +endif
 +
  OBJS-$(HAVE_MMX) +=  $(MMX-OBJS-yes)
  
  OBJS      += $(OBJS-yes)
@@@ -327,20 -314,15 +327,20 @@@ send a reminder by email. Your patch sh
  
  @enumerate
  @item
-     Does 'make fate' pass with the patch applied?
+     Does @code{make fate} pass with the patch applied?
  @item
 -    Does @code{make checkheaders} pass with the patch applied?
 +    Was the patch generated with git format-patch or send-email?
 +@item
 +    Did you sign off your patch? (git commit -s)
 +    See @url{http://kerneltrap.org/files/Jeremy/DCO.txt} for the meaning
 +    of sign off.
 +@item
 +    Did you provide a clear git commit log message?
  @item
 -    Is the patch against latest Libav git master branch?
 +    Is the patch against latest FFmpeg git master branch?
  @item
 -    Are you subscribed to the
 -    @uref{https://lists.libav.org/mailman/listinfo/libav-devel, libav-devel}
 -    mailing list? (Only list subscribers are allowed to post.)
 +    Are you subscribed to ffmpeg-devel?
 +    (the list is subscribers only due to spam)
  @item
      Have you checked that the changes are minimal, so that the same cannot be
      achieved with a smaller patch and/or simpler final code?
diff --cc ffmpeg.c
Simple merge
diff --cc ffplay.c
+++ b/ffplay.c
@@@ -1728,6 -1754,9 +1728,8 @@@ static int video_thread(void *arg
  #if CONFIG_AVFILTER
      AVFilterGraph *graph = avfilter_graph_alloc();
      AVFilterContext *filt_out = NULL;
 -    int64_t pos;
+     int last_w = is->video_st->codec->width;
+     int last_h = is->video_st->codec->height;
  
      if ((ret = configure_video_filters(graph, is, vfilters)) < 0)
          goto the_end;
          while (is->paused && !is->videoq.abort_request)
              SDL_Delay(10);
  #if CONFIG_AVFILTER
 -        ret = get_filtered_video_frame(filt_out, frame, &picref, &tb);
+         if (   last_w != is->video_st->codec->width
+             || last_h != is->video_st->codec->height) {
+             av_dlog(NULL, "Changing size %dx%d -> %dx%d\n", last_w, last_h,
+                     is->video_st->codec->width, is->video_st->codec->height);
+             avfilter_graph_free(&graph);
+             graph = avfilter_graph_alloc();
+             if ((ret = configure_video_filters(graph, is, vfilters)) < 0)
+                 goto the_end;
+             filt_out = is->out_video_filter;
+             last_w = is->video_st->codec->width;
+             last_h = is->video_st->codec->height;
+         }
 +        ret = av_vsink_buffer_get_video_buffer_ref(filt_out, &picref, 0);
          if (picref) {
 +            avfilter_fill_frame_from_video_buffer_ref(frame, picref);
              pts_int = picref->pts;
              pos     = picref->pos;
              frame->opaque = picref;
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -2583,7 -2680,8 +2583,7 @@@ void dsputil_init_mmx(DSPContext* c, AV
                  c->add_hfyu_median_prediction = add_hfyu_median_prediction_cmov;
  #endif
  
-         } else if (mm_flags & AV_CPU_FLAG_3DNOW) {
 -            c->add_png_paeth_prediction= add_png_paeth_prediction_mmx2;
+         } else if (HAVE_AMD3DNOW && (mm_flags & AV_CPU_FLAG_3DNOW)) {
              c->prefetch = prefetch_3dnow;
  
              if (!high_bit_depth) {
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -59,16 -58,8 +59,8 @@@ static av_cold int audio_read_header(AV
      AVStream *st;
      int ret;
      enum CodecID codec_id;
 -    snd_pcm_sw_params_t *sw_params;
 +    double o;
  
- #if FF_API_FORMAT_PARAMETERS
-     if (ap->sample_rate > 0)
-         s->sample_rate = ap->sample_rate;
-     if (ap->channels > 0)
-         s->channels = ap->channels;
- #endif
      st = av_new_stream(s1, 0);
      if (!st) {
          av_log(s1, AV_LOG_ERROR, "Cannot add stream\n");
Simple merge
Simple merge
Simple merge
  
  #include "libavutil/log.h"
  #include "libavutil/fifo.h"
+ #include "libavutil/opt.h"
  #include "libavcodec/avcodec.h"
 -#include "libavformat/avformat.h"
  #include "libavformat/timefilter.h"
 +#include "avdevice.h"
  
  /**
   * Size of the internal FIFO buffers as a number of audio packets
Simple merge
Simple merge
Simple merge
@@@ -447,14 -463,9 +447,8 @@@ static int v4l2_set_parameters(AVFormat
          av_log(s1, AV_LOG_ERROR, "Could not parse framerate '%s'.\n", s->framerate);
          return ret;
      }
- #if FF_API_FORMAT_PARAMETERS
-     if (ap->channel > 0)
-         s->channel = ap->channel;
-     if (ap->time_base.num)
-         framerate_q = (AVRational){ap->time_base.den, ap->time_base.num};
- #endif
  
      /* set tv video input */
 -    memset (&input, 0, sizeof (input));
      input.index = s->channel;
      if (ioctl(s->fd, VIDIOC_ENUMINPUT, &input) < 0) {
          av_log(s1, AV_LOG_ERROR, "The V4L2 driver ioctl enum input failed:\n");
Simple merge
@@@ -183,19 -183,10 +183,11 @@@ x11grab_read_header(AVFormatContext *s1
          av_log(s1, AV_LOG_ERROR, "Could not parse framerate: %s.\n", x11grab->framerate);
          goto out;
      }
- #if FF_API_FORMAT_PARAMETERS
-     if (ap->width > 0)
-         x11grab->width = ap->width;
-     if (ap->height > 0)
-         x11grab->height = ap->height;
-     if (ap->time_base.num)
-         framerate = (AVRational){ap->time_base.den, ap->time_base.num};
- #endif
      av_log(s1, AV_LOG_INFO, "device: %s -> display: %s x: %d y: %d width: %d height: %d\n",
 -           s1->filename, param, x_off, y_off, x11grab->width, x11grab->height);
 +           s1->filename, dpyname, x_off, y_off, x11grab->width, x11grab->height);
  
 -    dpy = XOpenDisplay(param);
 +    dpy = XOpenDisplay(dpyname);
 +    av_freep(&dpyname);
      if(!dpy) {
          av_log(s1, AV_LOG_ERROR, "Could not open X display.\n");
          ret = AVERROR(EIO);
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge