Merge commit '3360ad995530ea6967b1e83981b4aa8240fbb0ed'
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 6 Dec 2013 10:33:07 +0000 (11:33 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 6 Dec 2013 10:33:07 +0000 (11:33 +0100)
* commit '3360ad995530ea6967b1e83981b4aa8240fbb0ed':
  mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer()

Conflicts:
libavcodec/ljpegenc.c
libavcodec/mjpegenc.c
libavcodec/mjpegenc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/ljpegenc.c
libavcodec/mjpegenc.c
libavcodec/mjpegenc.h
libavcodec/mpegvideo_enc.c

@@@ -209,9 -192,8 +209,10 @@@ static int encode_picture_lossless(AVCo
      }
  
      emms_c();
-     ff_mjpeg_encode_picture_trailer(s);
 +    av_assert0(s->esc_pos == s->header_bits >> 3);
 +    ff_mjpeg_encode_stuffing(s);
+     ff_mjpeg_encode_picture_trailer(&s->pb, s->header_bits);
      s->picture_number++;
  
      flush_put_bits(&s->pb);
@@@ -317,21 -267,16 +317,21 @@@ void ff_mjpeg_encode_picture_header(AVC
      }
  
      put_bits(pb, 8, 0); /* Ah/Al (not used) */
 +
 +end:
 +    s->esc_pos = put_bits_count(pb) >> 3;
 +    for(i=1; i<s->slice_context_count; i++)
 +        s->thread_context[i]->esc_pos = 0;
  }
  
- static void escape_FF(MpegEncContext *s, int start)
+ static void escape_FF(PutBitContext *pb, int start)
  {
-     int size= put_bits_count(&s->pb) - start*8;
+     int size = put_bits_count(pb) - start * 8;
      int i, ff_count;
-     uint8_t *buf= s->pb.buf + start;
+     uint8_t *buf = pb->buf + start;
      int align= (-(size_t)(buf))&3;
  
 -    assert((size&7) == 0);
 +    av_assert1((size&7) == 0);
      size >>= 3;
  
      ff_count=0;
      }
  }
  
 -void ff_mjpeg_encode_stuffing(PutBitContext * pbc)
 +void ff_mjpeg_encode_stuffing(MpegEncContext *s)
  {
 -    int length;
 +    int length, i;
 +    PutBitContext *pbc = &s->pb;
 +    int mb_y = s->mb_y - !s->mb_x;
      length= (-put_bits_count(pbc))&7;
      if(length) put_bits(pbc, length, (1<<length)-1);
-     escape_FF(s, s->esc_pos);
 +
 +    flush_put_bits(&s->pb);
++    escape_FF(&s->pb, s->esc_pos);
 +
 +    if((s->avctx->active_thread_type & FF_THREAD_SLICE) && mb_y < s->mb_height)
 +        put_marker(pbc, RST0 + (mb_y&7));
 +    s->esc_pos = put_bits_count(pbc) >> 3;
 +
 +    for(i=0; i<3; i++)
 +        s->last_dc[i] = 128 << s->intra_dc_precision;
  }
  
- void ff_mjpeg_encode_picture_trailer(MpegEncContext *s)
+ void ff_mjpeg_encode_picture_trailer(PutBitContext *pb, int header_bits)
  {
 -    ff_mjpeg_encode_stuffing(pb);
 -    flush_put_bits(pb);
 -
 -    assert((header_bits & 7) == 0);
 -
 -    escape_FF(pb, header_bits >> 3);
++    av_assert1((header_bits & 7) == 0);
  
-     av_assert1((s->header_bits&7)==0);
-     put_marker(&s->pb, EOI);
+     put_marker(pb, EOI);
  }
  
  void ff_mjpeg_encode_dc(MpegEncContext *s, int val,
@@@ -54,8 -54,8 +54,8 @@@ void ff_mjpeg_encode_close(MpegEncConte
  void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb,
                                      ScanTable *intra_scantable,
                                      uint16_t intra_matrix[64]);
- void ff_mjpeg_encode_picture_trailer(MpegEncContext *s);
+ void ff_mjpeg_encode_picture_trailer(PutBitContext *pb, int header_bits);
 -void ff_mjpeg_encode_stuffing(PutBitContext *pbc);
 +void ff_mjpeg_encode_stuffing(MpegEncContext *s);
  void ff_mjpeg_encode_dc(MpegEncContext *s, int val,
                          uint8_t *huff_size, uint16_t *huff_code);
  void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[6][64]);
Simple merge