Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 25 Feb 2012 03:00:43 +0000 (04:00 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 25 Feb 2012 03:00:43 +0000 (04:00 +0100)
* qatar/master:
  docs: use -bsf:[vas] instead of -[vas]bsf.
  mpegaudiodec: Prevent premature clipping of mp3 input buffer.
  lavf: move the packet keyframe setting code.
  oggenc: free comment header for all codecs
  lcl: error out if uncompressed input buffer is smaller than framesize.
  mjpeg: abort decoding if packet is too large.
  golomb: use HAVE_BITS_REMAINING() macro to prevent infloop on EOF.
  get_bits: add HAVE_BITS_REMAINING macro.
  lavf/output-example: use new audio encoding API correctly.
  lavf/output-example: more proper usage of the new API.
  tiff: Prevent overreads in the type_sizes array.
  tiff: Make the TIFF_LONG and TIFF_SHORT types unsigned.
  apetag: do not leak memory if avio_read() fails
  apetag: propagate errors.
  SBR DSP x86: implement SSE sbr_hf_g_filt
  SBR DSP x86: implement SSE sbr_sum_square_sse
  SBR DSP: use intptr_t for the ixh parameter.

Conflicts:
doc/bitstream_filters.texi
doc/examples/muxing.c
doc/ffmpeg.texi
libavcodec/golomb.h
libavcodec/x86/Makefile
libavformat/oggenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
13 files changed:
1  2 
doc/bitstream_filters.texi
doc/examples/muxing.c
doc/ffmpeg.texi
libavcodec/get_bits.h
libavcodec/golomb.h
libavcodec/lcldec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec.c
libavcodec/tiff.c
libavcodec/x86/Makefile
libavformat/apetag.c
libavformat/oggenc.c
libavformat/utils.c

@@@ -71,9 -57,9 +71,9 @@@ stream (carrying the AVI1 header ID an
  produce fully qualified JPEG images.
  
  @example
- ffmpeg -i mjpeg-movie.avi -c:v copy -vbsf mjpeg2jpeg frame_%d.jpg
 -avconv -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
++ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
  exiftran -i -9 frame*.jpg
 -avconv -i frame_%d.jpg -c:v copy rotated.avi
 +ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
  @end example
  
  @section mjpega_dump_header
@@@ -69,11 -76,8 +75,9 @@@ static AVStream *add_audio_stream(AVFor
          fprintf(stderr, "Could not alloc stream\n");
          exit(1);
      }
 +    st->id = 1;
  
      c = st->codec;
-     c->codec_id = codec_id;
-     c->codec_type = AVMEDIA_TYPE_AUDIO;
  
      /* put sample parameters */
      c->sample_fmt = AV_SAMPLE_FMT_S16;
diff --cc doc/ffmpeg.texi
@@@ -1019,55 -799,15 +1019,55 @@@ Set bitstream filters for matching stre
  a comma-separated list of bitstream filters. Use the @code{-bsfs} option
  to get the list of bitstream filters.
  @example
- ffmpeg -i h264.mp4 -c:v copy -vbsf h264_mp4toannexb -an out.h264
 -avconv -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
++ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
  @end example
  @example
- ffmpeg -i file.mov -an -vn -sbsf mov2textsub -c:s copy -f rawvideo sub.txt
 -avconv -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
++ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
  @end example
  
 -@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{output,per-stream})
 +@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{per-stream})
  Force a tag/fourcc for matching streams.
 +
 +@item -timecode @var{hh}:@var{mm}:@var{ss}SEP@var{ff}
 +Specify Timecode for writing. @var{SEP} is ':' for non drop timecode and ';'
 +(or '.') for drop.
 +@example
 +ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
 +@end example
  @end table
 +
 +@section Preset files
 +A preset file contains a sequence of @var{option}=@var{value} pairs,
 +one for each line, specifying a sequence of options which would be
 +awkward to specify on the command line. Lines starting with the hash
 +('#') character are ignored and are used to provide comments. Check
 +the @file{presets} directory in the FFmpeg source tree for examples.
 +
 +Preset files are specified with the @code{vpre}, @code{apre},
 +@code{spre}, and @code{fpre} options. The @code{fpre} option takes the
 +filename of the preset instead of a preset name as input and can be
 +used for any kind of codec. For the @code{vpre}, @code{apre}, and
 +@code{spre} options, the options specified in a preset file are
 +applied to the currently selected codec of the same type as the preset
 +option.
 +
 +The argument passed to the @code{vpre}, @code{apre}, and @code{spre}
 +preset options identifies the preset file to use according to the
 +following rules:
 +
 +First ffmpeg searches for a file named @var{arg}.ffpreset in the
 +directories @file{$FFMPEG_DATADIR} (if set), and @file{$HOME/.ffmpeg}, and in
 +the datadir defined at configuration time (usually @file{PREFIX/share/ffmpeg})
 +or in a @file{ffpresets} folder along the executable on win32,
 +in that order. For example, if the argument is @code{libx264-max}, it will
 +search for the file @file{libx264-max.ffpreset}.
 +
 +If no such file is found, then ffmpeg will search for a file named
 +@var{codec_name}-@var{arg}.ffpreset in the above-mentioned
 +directories, where @var{codec_name} is the name of the codec to which
 +the preset file options will be applied. For example, if you select
 +the video codec with @code{-vcodec libx264} and use @code{-vpre max},
 +then it will search for the file @file{libx264-max.ffpreset}.
  @c man end OPTIONS
  
  @chapter Tips
@@@ -118,10 -120,23 +118,23 @@@ for examples see get_bits, show_bits, s
  #   define MIN_CACHE_BITS 25
  #endif
  
+ #if UNCHECKED_BITSTREAM_READER
  #define OPEN_READER(name, gb)                   \
      unsigned int name##_index = (gb)->index;    \
 -    unsigned int av_unused name##_cache = 0
 +    av_unused unsigned int name##_cache
  
+ #define HAVE_BITS_REMAINING(name, gb) 1
+ #else
+ #define OPEN_READER(name, gb)                   \
+     unsigned int name##_index = (gb)->index;    \
+     unsigned int av_unused name##_cache = 0;    \
+     unsigned int av_unused name##_size_plus8 =  \
+                 (gb)->size_in_bits_plus8
+ #define HAVE_BITS_REMAINING(name, gb)           \
+     name##_index < name##_size_plus8
+ #endif
  #define CLOSE_READER(name, gb) (gb)->index = name##_index
  
  #ifdef BITSTREAM_READER_LE
@@@ -135,7 -135,7 +135,7 @@@ static inline int svq3_get_ue_golomb(Ge
              ret = (ret << 4) | ff_interleaved_dirac_golomb_vlc_code[buf];
              UPDATE_CACHE(re, gb);
              buf = GET_CACHE(re, gb);
-         } while(ret<0x8000000U);
 -        } while (HAVE_BITS_REMAINING(re, gb));
++        } while (ret<0x8000000U && HAVE_BITS_REMAINING(re, gb));
  
          CLOSE_READER(re, gb);
          return ret - 1;
Simple merge
Simple merge
@@@ -1378,8 -1377,10 +1379,9 @@@ static int mp_decode_layer3(MPADecodeCo
      }
  
      if (!s->adu_mode) {
 -        int skip;
          const uint8_t *ptr = s->gb.buffer + (get_bits_count(&s->gb)>>3);
-         int extrasize = av_clip(get_bits_left(&s->gb) >> 3, 0, EXTRABYTES);
+         int extrasize = av_clip(get_bits_left(&s->gb) >> 3, 0,
+                                 FFMAX(0, LAST_BUF_SIZE - s->last_buf_size));
          assert((get_bits_count(&s->gb) & 7) == 0);
          /* now we get bits from the main_data_begin offset */
          av_dlog(s->avctx, "seekback: %d\n", main_data_begin);
Simple merge
@@@ -53,10 -47,9 +53,12 @@@ YASM-OBJS-$(CONFIG_PNG_DECODER)        
  MMX-OBJS-$(CONFIG_PNG_DECODER)         += x86/pngdsp-init.o
  YASM-OBJS-$(CONFIG_PRORES_DECODER)     += x86/proresdsp.o
  MMX-OBJS-$(CONFIG_PRORES_DECODER)      += x86/proresdsp-init.o
 -MMX-OBJS-$(CONFIG_DWT)                 += x86/snowdsp_mmx.o
+ MMX-OBJS-$(CONFIG_AAC_DECODER)         += x86/sbrdsp_init.o
+ YASM-OBJS-$(CONFIG_AAC_DECODER)        += x86/sbrdsp.o
 +MMX-OBJS-$(CONFIG_DWT)                 += x86/snowdsp_mmx.o \
 +                                          x86/dwt.o
 +YASM-OBJS-$(CONFIG_V210_DECODER)       += x86/v210.o
 +MMX-OBJS-$(CONFIG_V210_DECODER)        += x86/v210-init.o
  MMX-OBJS-$(CONFIG_VC1_DECODER)         += x86/vc1dsp_mmx.o
  YASM-OBJS-$(CONFIG_VP3_DECODER)        += x86/vp3dsp.o
  YASM-OBJS-$(CONFIG_VP5_DECODER)        += x86/vp3dsp.o
Simple merge
@@@ -528,11 -496,9 +528,9 @@@ static int ogg_write_trailer(AVFormatCo
          OGGStreamContext *oggstream = st->priv_data;
          if (st->codec->codec_id == CODEC_ID_FLAC ||
              st->codec->codec_id == CODEC_ID_SPEEX) {
 -            av_free(oggstream->header[0]);
 +            av_freep(&oggstream->header[0]);
-             av_freep(&oggstream->header[1]);
          }
-         else
-             av_freep(&oggstream->header[1]);
+         av_freep(&oggstream->header[1]);
          av_freep(&st->priv_data);
      }
      return 0;
Simple merge