Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 23 Jan 2012 00:05:20 +0000 (01:05 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 23 Jan 2012 00:05:20 +0000 (01:05 +0100)
* qatar/master: (25 commits)
  riff: fix invalid av_freep() calls on EOF in ff_read_riff_info
  pam: Fix a typo that broke writing and reading PAM files.
  mxfdec: fix memleak on av_realloc failures
  mxfdec: Do not parse slices or DeltaEntryArrays.
  mxfdec: hybrid demuxing/seeking solution
  mxfdec: Add Avid's essence element key.
  mfxdec: Separate mxf_essence_container_uls for audio and video.
  mxfdec: Compute packet offsets properly.
  mxfdec: Use MaterialPackage - Track - TrackID instead of the system_item hack.
  mxfdec: use av_dlog() for 'no corresponding source package found'
  mxfdec: Make mxf->partitions sorted by offset.
  mxfdec: parse ThisPartition
  mxfdec: Speed up metadata and index parsing.
  mxfdec: Make sure DataDefinition is consistent between material track and source track.
  mxfdec: add EssenceContainer UL found in 0001GL00.MXF.A1.mxf_opatom.mxf
  mxfdec: Add hack that adjusts the n_delta calculation when system items are present.
  mxfdec: Parse IndexTableSegments and convert them into AVIndexEntry arrays.
  mxfdec: Move FooterPartition to MXFContext and make sure it is never zero.
  mxfdec: check return value of avio_seek
  mxfdec: skip to end of structural sets
  ...

Conflicts:
configure
libavcodec/pnm.c
libavformat/mxfdec.c
libavformat/riff.c
libavformat/rtsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
configure
ffserver.c
libavcodec/pnm.c
libavformat/mxfdec.c
libavformat/rtsp.c
libavformat/rtsp.h

diff --cc configure
+++ b/configure
@@@ -1670,13 -1531,12 +1670,13 @@@ postproc_deps="gpl
  
  # programs
  avconv_deps="avcodec avformat swscale"
 -avplay_deps="avcodec avformat swscale sdl"
 -avplay_select="rdft"
 -avprobe_deps="avcodec avformat"
 -avserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer !shared"
 -avserver_extralibs='$ldl'
 -ffmpeg_deps="avcodec avformat swscale"
 +ffplay_deps="avcodec avformat swscale sdl"
 +ffplay_select="buffersink_filter rdft"
 +ffprobe_deps="avcodec avformat"
- ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
++ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer !shared"
 +ffserver_extralibs='$ldl'
 +ffmpeg_deps="avcodec avformat swscale swresample"
 +ffmpeg_select="buffersink_filter"
  
  doc_deps="texi2html"
  
diff --cc ffserver.c
@@@ -2252,10 -2248,9 +2255,9 @@@ static int http_prepare_data(HTTPContex
  
          /*
           * HACK to avoid mpeg ps muxer to spit many underflow errors
 -         * Default value from Libav
 +         * Default value from FFmpeg
           * Try to set it use configuration option
           */
-         c->fmt_ctx.preload   = (int)(0.5*AV_TIME_BASE);
          c->fmt_ctx.max_delay = (int)(0.7*AV_TIME_BASE);
  
          if (avformat_write_header(&c->fmt_ctx, NULL) < 0) {
Simple merge
@@@ -407,10 -407,9 +407,10 @@@ static int mxf_read_primer_pack(void *a
  static int mxf_read_partition_pack(void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset)
  {
      MXFContext *mxf = arg;
-     MXFPartition *partition;
+     MXFPartition *partition, *tmp_part;
      UID op;
      uint64_t footer_partition;
 +    uint32_t nb_essence_containers;
  
      if (mxf->partitions_count+1 >= UINT_MAX / sizeof(*mxf->partitions))
          return AVERROR(ENOMEM);
@@@ -886,8 -887,10 +889,9 @@@ static int mxf_get_sorted_table_segment
          if (mxf->metadata_sets[i]->type == IndexTableSegment)
              nb_segments++;
  
 -    *sorted_segments  = av_mallocz(nb_segments * sizeof(**sorted_segments));
 -    unsorted_segments = av_mallocz(nb_segments * sizeof(*unsorted_segments));
 -    if (!sorted_segments || !unsorted_segments) {
 +    if (!(unsorted_segments = av_calloc(nb_segments, sizeof(*unsorted_segments))) ||
 +        !(*sorted_segments  = av_calloc(nb_segments, sizeof(**sorted_segments)))) {
+         av_freep(sorted_segments);
          av_free(unsorted_segments);
          return AVERROR(ENOMEM);
      }
@@@ -1117,10 -1119,14 +1119,10 @@@ int ff_rtsp_make_setup_request(AVFormat
      /* default timeout: 1 minute */
      rt->timeout = 60;
  
--    /* for each stream, make the setup request */
--    /* XXX: we assume the same server is used for the control of each
--     * RTSP stream */
-     port_off = av_get_random_seed() % (RTSP_RTP_PORT_MAX - RTSP_RTP_PORT_MIN);
 -
+     /* Choose a random starting offset within the first half of the
+      * port range, to allow for a number of ports to try even if the offset
+      * happens to be at the end of the random range. */
+     port_off = av_get_random_seed() % ((rt->rtp_port_max - rt->rtp_port_min)/2);
      /* even random offset */
      port_off -= port_off & 0x01;
  
Simple merge