]> granicus.if.org Git - libvpx/commitdiff
add vp9_loop_filter_data_reset
authorJames Zern <jzern@google.com>
Thu, 26 Dec 2013 18:15:56 +0000 (13:15 -0500)
committerJames Zern <jzern@google.com>
Thu, 23 Oct 2014 17:43:48 +0000 (19:43 +0200)
Change-Id: I8a9c9019242ec10fa499a78db322221bf96a0275

vp9/common/vp9_loopfilter.c
vp9/common/vp9_loopfilter.h
vp9/decoder/vp9_decodeframe.c
vp9/decoder/vp9_dthread.c

index aca8d7b33bd7d7a2c33b03916e802cb3c7b13b1f..43a4fe5b9e69d24d478b70407eebb2242f8df258 100644 (file)
@@ -1625,6 +1625,17 @@ void vp9_loop_filter_frame(YV12_BUFFER_CONFIG *frame,
                        y_only);
 }
 
+void vp9_loop_filter_data_reset(
+    LFWorkerData *lf_data, YV12_BUFFER_CONFIG *frame_buffer,
+    struct VP9Common *cm, const struct macroblockd_plane planes[MAX_MB_PLANE]) {
+  lf_data->frame_buffer = frame_buffer;
+  lf_data->cm = cm;
+  lf_data->start = 0;
+  lf_data->stop = 0;
+  lf_data->y_only = 0;
+  vpx_memcpy(lf_data->planes, planes, sizeof(lf_data->planes));
+}
+
 int vp9_loop_filter_worker(LFWorkerData *const lf_data, void *unused) {
   (void)unused;
   vp9_loop_filter_rows(lf_data->frame_buffer, lf_data->cm, lf_data->planes,
index c349f36b821fb1f6f5dcf4b6ea74e2b70d090d79..4c15e6bd452b0d5bd2e7a2eadf4da63052d8df77 100644 (file)
@@ -126,6 +126,10 @@ typedef struct LoopFilterWorkerData {
   int y_only;
 } LFWorkerData;
 
+void vp9_loop_filter_data_reset(
+    LFWorkerData *lf_data, YV12_BUFFER_CONFIG *frame_buffer,
+    struct VP9Common *cm, const struct macroblockd_plane planes[MAX_MB_PLANE]);
+
 // Operates on the rows described by 'lf_data'.
 int vp9_loop_filter_worker(LFWorkerData *const lf_data, void *unused);
 #ifdef __cplusplus
index 35ecfe0bf38af2725251c5eebd0adcafde9216ce..89c76aca41f2c1eb89c8debcc417e2373a9c2a72 100644 (file)
@@ -902,11 +902,8 @@ static const uint8_t *decode_tiles(VP9Decoder *pbi,
     LFWorkerData *const lf_data = (LFWorkerData*)pbi->lf_worker.data1;
     // Be sure to sync as we might be resuming after a failed frame decode.
     winterface->sync(&pbi->lf_worker);
-    lf_data->frame_buffer = get_frame_new_buffer(cm);
-    lf_data->cm = cm;
-    vp9_copy(lf_data->planes, pbi->mb.plane);
-    lf_data->stop = 0;
-    lf_data->y_only = 0;
+    vp9_loop_filter_data_reset(lf_data, get_frame_new_buffer(cm), cm,
+                               pbi->mb.plane);
     vp9_loop_filter_frame_init(cm, cm->lf.filter_level);
   }
 
index fa66a8cd06f043cee73401955da8d5f43485e042..3d2d0dd2ea851517f32aa7bf82515b7797483c5d 100644 (file)
@@ -174,9 +174,7 @@ void vp9_loop_filter_frame_mt(VP9LfSync *lf_sync,
     worker->data2 = lf_data;
 
     // Loopfilter data
-    lf_data->frame_buffer = frame;
-    lf_data->cm = cm;
-    vpx_memcpy(lf_data->planes, planes, sizeof(lf_data->planes));
+    vp9_loop_filter_data_reset(lf_data, frame, cm, planes);
     lf_data->start = i;
     lf_data->stop = sb_rows;
     lf_data->y_only = y_only;