]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/jpegls.c
pthread_frame: ensure the threads don't run simultaneously with hwaccel
[ffmpeg] / libavcodec / jpegls.c
index 4740f11e05249e6754332f6ade0c62039733d3e5..19d461fa096210c677d8761517dd0327636d87ae 100644 (file)
  * JPEG-LS common code.
  */
 
+#include "internal.h"
 #include "jpegls.h"
 
-void ff_jpegls_init_state(JLSState *state){
+void ff_jpegls_init_state(JLSState *state)
+{
     int i;
 
     state->twonear = state->near * 2 + 1;
-    state->range = ((state->maxval + state->twonear - 1) / state->twonear) + 1;
+    state->range   = (state->maxval + state->twonear - 1) / state->twonear + 1;
 
     // QBPP = ceil(log2(RANGE))
-    for(state->qbpp = 0; (1 << state->qbpp) < state->range; state->qbpp++);
+    for (state->qbpp = 0; (1 << state->qbpp) < state->range; state->qbpp++)
+        ;
 
-    if(state->bpp < 8)
-        state->limit = 16 + 2 * state->bpp - state->qbpp;
+    if (state->bpp < 8)
+        state->limit = 2 * state->bpp - state->qbpp + 16;
     else
-        state->limit = (4 * state->bpp) - state->qbpp;
+        state->limit = 4 * state->bpp - state->qbpp;
 
-    for(i = 0; i < 367; i++) {
-        state->A[i] = FFMAX((state->range + 32) >> 6, 2);
+    for (i = 0; i < 367; i++) {
+        state->A[i] = FFMAX(state->range + 32 >> 6, 2);
         state->N[i] = 1;
     }
-
 }
 
 /**
  * Custom value clipping function used in T1, T2, T3 calculation
  */
-static inline int iso_clip(int v, int vmin, int vmax){
-    if(v > vmax || v < vmin) return vmin;
-    else                     return v;
+static inline int iso_clip(int v, int vmin, int vmax)
+{
+    if (v > vmax || v < vmin)
+        return vmin;
+    else
+        return v;
 }
 
-void ff_jpegls_reset_coding_parameters(JLSState *s, int reset_all){
-    const int basic_t1= 3;
-    const int basic_t2= 7;
-    const int basic_t3= 21;
+void ff_jpegls_reset_coding_parameters(JLSState *s, int reset_all)
+{
+    const int basic_t1 = 3;
+    const int basic_t2 = 7;
+    const int basic_t3 = 21;
     int factor;
 
-    if(s->maxval==0 || reset_all) s->maxval= (1 << s->bpp) - 1;
+    if (s->maxval == 0 || reset_all)
+        s->maxval = (1 << s->bpp) - 1;
 
-    if(s->maxval >=128){
-        factor= (FFMIN(s->maxval, 4095) + 128)>>8;
+    if (s->maxval >= 128) {
+        factor = FFMIN(s->maxval, 4095) + 128 >> 8;
 
-        if(s->T1==0     || reset_all)
-            s->T1= iso_clip(factor*(basic_t1-2) + 2 + 3*s->near, s->near+1, s->maxval);
-        if(s->T2==0     || reset_all)
-            s->T2= iso_clip(factor*(basic_t2-3) + 3 + 5*s->near, s->T1, s->maxval);
-        if(s->T3==0     || reset_all)
-            s->T3= iso_clip(factor*(basic_t3-4) + 4 + 7*s->near, s->T2, s->maxval);
-    }else{
-        factor= 256 / (s->maxval + 1);
+        if (s->T1 == 0 || reset_all)
+            s->T1 = iso_clip(factor * (basic_t1 - 2) + 2 + 3 * s->near,
+                             s->near + 1, s->maxval);
+        if (s->T2 == 0 || reset_all)
+            s->T2 = iso_clip(factor * (basic_t2 - 3) + 3 + 5 * s->near,
+                             s->T1, s->maxval);
+        if (s->T3 == 0 || reset_all)
+            s->T3 = iso_clip(factor * (basic_t3 - 4) + 4 + 7 * s->near,
+                             s->T2, s->maxval);
+    } else {
+        factor = 256 / (s->maxval + 1);
 
-        if(s->T1==0     || reset_all)
-            s->T1= iso_clip(FFMAX(2, basic_t1/factor + 3*s->near), s->near+1, s->maxval);
-        if(s->T2==0     || reset_all)
-            s->T2= iso_clip(FFMAX(3, basic_t2/factor + 5*s->near), s->T1, s->maxval);
-        if(s->T3==0     || reset_all)
-            s->T3= iso_clip(FFMAX(4, basic_t3/factor + 7*s->near), s->T2, s->maxval);
+        if (s->T1 == 0 || reset_all)
+            s->T1 = iso_clip(FFMAX(2, basic_t1 / factor + 3 * s->near),
+                             s->near + 1, s->maxval);
+        if (s->T2 == 0 || reset_all)
+            s->T2 = iso_clip(FFMAX(3, basic_t2 / factor + 5 * s->near),
+                             s->T1, s->maxval);
+        if (s->T3 == 0 || reset_all)
+            s->T3 = iso_clip(FFMAX(4, basic_t3 / factor + 7 * s->near),
+                             s->T2, s->maxval);
     }
 
-    if(s->reset==0  || reset_all) s->reset= 64;
-    av_dlog(NULL, "[JPEG-LS RESET] T=%i,%i,%i\n", s->T1, s->T2, s->T3);
+    if (s->reset == 0 || reset_all)
+        s->reset = 64;
+    ff_dlog(NULL, "[JPEG-LS RESET] T=%i,%i,%i\n", s->T1, s->T2, s->T3);
 }