]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mjpegenc.c
Add channel layout support to the AC-3 encoder.
[ffmpeg] / libavcodec / mjpegenc.c
index b5e5a827d3ab7757f00a8572a84bd1fcc64d4966..8369e9c946d9761da742f7bc69215a4735c595b0 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * MJPEG encoder
- * Copyright (c) 2000, 2001 Fabrice Bellard.
+ * Copyright (c) 2000, 2001 Fabrice Bellard
  * Copyright (c) 2003 Alex Beregszaszi
  * Copyright (c) 2003-2004 Michael Niedermayer
  *
@@ -26,7 +26,7 @@
  */
 
 /**
- * @file mjpegenc.c
+ * @file libavcodec/mjpegenc.c
  * MJPEG encoder.
  */
 
@@ -44,7 +44,7 @@
 #undef TWOMATRIXES
 
 
-int ff_mjpeg_encode_init(MpegEncContext *s)
+av_cold int ff_mjpeg_encode_init(MpegEncContext *s)
 {
     MJpegContext *m;
 
@@ -59,11 +59,11 @@ int ff_mjpeg_encode_init(MpegEncContext *s)
     ff_mjpeg_build_huffman_codes(m->huff_size_dc_luminance,
                                  m->huff_code_dc_luminance,
                                  ff_mjpeg_bits_dc_luminance,
-                                 ff_mjpeg_val_dc_luminance);
+                                 ff_mjpeg_val_dc);
     ff_mjpeg_build_huffman_codes(m->huff_size_dc_chrominance,
                                  m->huff_code_dc_chrominance,
                                  ff_mjpeg_bits_dc_chrominance,
-                                 ff_mjpeg_val_dc_chrominance);
+                                 ff_mjpeg_val_dc);
     ff_mjpeg_build_huffman_codes(m->huff_size_ac_luminance,
                                  m->huff_code_ac_luminance,
                                  ff_mjpeg_bits_ac_luminance,
@@ -135,13 +135,13 @@ static void jpeg_table_header(MpegEncContext *s)
     /* huffman table */
     put_marker(p, DHT);
     flush_put_bits(p);
-    ptr = pbBufPtr(p);
+    ptr = put_bits_ptr(p);
     put_bits(p, 16, 0); /* patched later */
     size = 2;
     size += put_huffman_table(s, 0, 0, ff_mjpeg_bits_dc_luminance,
-                              ff_mjpeg_val_dc_luminance);
+                              ff_mjpeg_val_dc);
     size += put_huffman_table(s, 0, 1, ff_mjpeg_bits_dc_chrominance,
-                              ff_mjpeg_val_dc_chrominance);
+                              ff_mjpeg_val_dc);
 
     size += put_huffman_table(s, 1, 0, ff_mjpeg_bits_ac_luminance,
                               ff_mjpeg_val_ac_luminance);
@@ -174,7 +174,7 @@ static void jpeg_put_comments(MpegEncContext *s)
     if(!(s->flags & CODEC_FLAG_BITEXACT)){
         put_marker(p, COM);
         flush_put_bits(p);
-        ptr = pbBufPtr(p);
+        ptr = put_bits_ptr(p);
         put_bits(p, 16, 0); /* patched later */
         ff_put_string(p, LIBAVCODEC_IDENT, 1);
         size = strlen(LIBAVCODEC_IDENT)+3;
@@ -186,7 +186,7 @@ static void jpeg_put_comments(MpegEncContext *s)
        ||s->avctx->pix_fmt == PIX_FMT_YUV444P){
         put_marker(p, COM);
         flush_put_bits(p);
-        ptr = pbBufPtr(p);
+        ptr = put_bits_ptr(p);
         put_bits(p, 16, 0); /* patched later */
         ff_put_string(p, "CS=ITU601", 1);
         size = strlen("CS=ITU601")+3;
@@ -369,7 +369,7 @@ void ff_mjpeg_encode_dc(MpegEncContext *s, int val,
 
         put_bits(&s->pb, huff_size[nbits], huff_code[nbits]);
 
-        put_bits(&s->pb, nbits, mant & ((1 << nbits) - 1));
+        put_sbits(&s->pb, nbits, mant);
     }
 }
 
@@ -421,7 +421,7 @@ static void encode_block(MpegEncContext *s, DCTELEM *block, int n)
 
             put_bits(&s->pb, huff_size_ac[code], huff_code_ac[code]);
 
-            put_bits(&s->pb, nbits, mant & ((1 << nbits) - 1));
+            put_sbits(&s->pb, nbits, mant);
             run = 0;
         }
     }
@@ -454,5 +454,6 @@ AVCodec mjpeg_encoder = {
     MPV_encode_init,
     MPV_encode_picture,
     MPV_encode_end,
-    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, -1},
+    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_NONE},
+    .long_name= NULL_IF_CONFIG_SMALL("MJPEG (Motion JPEG)"),
 };