Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 22 Mar 2012 19:58:56 +0000 (20:58 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 22 Mar 2012 19:59:58 +0000 (20:59 +0100)
* qatar/master:
  FATE: Add ZeroCodec test
  oggparseogm: fix order of arguments of avpriv_set_pts_info().
  pngenc: better upper bound for encoded frame size.
  aiffdec: set block_duration to 1 for PCM codecs that are supported in AIFF-C
  aiffdec: factor out handling of integer PCM for AIFF-C and plain AIFF
  aiffdec: use av_get_audio_frame_duration() to set block_duration for AIFF-C
  aiffdec: do not set bit rate if block duration is unknown
  wmall: output packet only if we have decoded some samples

Conflicts:
libavcodec/pngenc.c
tests/fate/lossless-video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/pngenc.c
libavcodec/wmalosslessdec.c
libavformat/aiffdec.c
tests/fate/lossless-video.mak

@@@ -230,26 -247,9 +230,17 @@@ static int encode_frame(AVCodecContext 
      p->pict_type= AV_PICTURE_TYPE_I;
      p->key_frame= 1;
  
-     max_packet_size = avctx->width * avctx->height * 9 + FF_MIN_BUFFER_SIZE;
-     if ((ret = ff_alloc_packet2(avctx, pkt, max_packet_size)) < 0) {
-         return ret;
-     }
-     s->bytestream_start =
-     s->bytestream       = pkt->data;
-     s->bytestream_end   = pkt->data + pkt->size;
      is_progressive = !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT);
      switch(avctx->pix_fmt) {
 -    case PIX_FMT_RGB32:
 +    case PIX_FMT_RGBA64BE:
 +        bit_depth = 16;
 +        color_type = PNG_COLOR_TYPE_RGB_ALPHA;
 +        break;
 +    case PIX_FMT_RGB48BE:
 +        bit_depth = 16;
 +        color_type = PNG_COLOR_TYPE_RGB;
 +        break;
 +    case PIX_FMT_RGBA:
          bit_depth = 8;
          color_type = PNG_COLOR_TYPE_RGB_ALPHA;
          break;
                         Z_DEFLATED, 15, 8, Z_DEFAULT_STRATEGY);
      if (ret != Z_OK)
          return -1;
 -    if (!pkt->data &&
 -        (ret = av_new_packet(pkt, max_packet_size)) < 0) {
 -        av_log(avctx, AV_LOG_ERROR, "Could not allocate output packet of size %d.\n",
 -               max_packet_size);
+     enc_row_size    = deflateBound(&s->zstream, row_size);
+     max_packet_size = avctx->height * (enc_row_size +
+                                        ((enc_row_size + IOBUF_SIZE - 1) / IOBUF_SIZE) * 12)
+                       + FF_MIN_BUFFER_SIZE;
++    if ((ret = ff_alloc_packet2(avctx, pkt, max_packet_size)) < 0) {
+         return ret;
+     }
+     s->bytestream_start =
+     s->bytestream       = pkt->data;
+     s->bytestream_end   = pkt->data + pkt->size;
      crow_base = av_malloc((row_size + 32) << (s->filter_type == PNG_FILTER_VALUE_MIXED));
      if (!crow_base)
          goto fail;
Simple merge
@@@ -140,19 -144,13 +146,14 @@@ static unsigned int get_aiff_header(AVF
              break;
          case CODEC_ID_QCELP:
              codec->block_align = 35;
-             aiff->block_duration = 160;
              break;
          default:
 +            aiff->block_duration = 1;
              break;
          }
-         size -= 4;
-     } else {
-         /* Need the codec type */
-         codec->codec_id = aiff_codec_get_id(codec->bits_per_coded_sample);
-         codec->bits_per_coded_sample = av_get_bits_per_sample(codec->codec_id);
-         aiff->block_duration = 1;
+         if (codec->block_align > 0)
+             aiff->block_duration = av_get_audio_frame_duration(codec,
+                                                                codec->block_align);
      }
  
      /* Block align needs to be computed in all cases, as the definition
@@@ -4,23 -4,20 +4,24 @@@ fate-loco-rgb: CMD = framecrc -i $(SAMP
  FATE_LOCO += fate-loco-yuy2
  fate-loco-yuy2: CMD = framecrc -i $(SAMPLES)/loco/pig-loco-0.avi
  
 -FATE_TESTS += $(FATE_LOCO)
 +FATE_LOSSLESS_VIDEO += $(FATE_LOCO)
  fate-loco: $(FATE_LOCO)
  
 -FATE_TESTS += fate-msrle-8bit
 +FATE_LOSSLESS_VIDEO += fate-msrle-8bit
  fate-msrle-8bit: CMD = framecrc -i $(SAMPLES)/msrle/Search-RLE.avi -pix_fmt rgb24
  
 -FATE_TESTS += fate-mszh
 +FATE_LOSSLESS_VIDEO += fate-mszh
  fate-mszh: CMD = framecrc -i $(SAMPLES)/lcl/mszh-1frame.avi
  
 -FATE_TESTS += fate-vble
 +FATE_LOSSLESS_VIDEO += fate-vble
  fate-vble: CMD = framecrc -i $(SAMPLES)/vble/flowers-partial-2MB.avi
  
 -FATE_TESTS += fate-zlib
 +FATE_LOSSLESS_VIDEO += fate-zlib
  fate-zlib: CMD = framecrc -i $(SAMPLES)/lcl/zlib-1frame.avi
  
 -FATE_TESTS += fate-zerocodec
 +FATE_LOSSLESS_VIDEO += fate-zerocodec
  fate-zerocodec: CMD = framecrc -i $(SAMPLES)/zerocodec/sample-zeco.avi
 +
 +FATE_TESTS += $(FATE_LOSSLESS_VIDEO)
 +fate-lossless-video: $(FATE_LOSSLESS_VIDEO)
++