Call signal_decoding_done() outside pbi->row_mt_mutex_ lock

This CL moves the call to signal_decoding_done_for_erroneous_row()
function out of the 'pbi->row_mt_mutex_' lock as it doesn't require
this and it locks a mutex 'dec_row_mt_sync->mutex_[r]' internally.

Bug: aomedia:3276
Change-Id: I7c1da94dc6c9990b033f26d80179f9f242c9bcf9
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index e3cce40..fd7793c 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -3180,18 +3180,16 @@
     pthread_mutex_lock(pbi->row_mt_mutex_);
 #endif
     frame_row_mt_info->row_mt_exit = 1;
-
+#if CONFIG_MULTITHREAD
+    pthread_cond_broadcast(pbi->row_mt_cond_);
+    pthread_mutex_unlock(pbi->row_mt_mutex_);
+#endif
     // If any SB row (erroneous row) processed by a thread encounters an
     // internal error, there is a need to indicate other threads that decoding
     // of the erroneous row is complete. This ensures that other threads which
     // wait upon the completion of SB's present in erroneous row are not waiting
     // indefinitely.
     signal_decoding_done_for_erroneous_row(pbi, &thread_data->td->dcb.xd);
-
-#if CONFIG_MULTITHREAD
-    pthread_cond_broadcast(pbi->row_mt_cond_);
-    pthread_mutex_unlock(pbi->row_mt_mutex_);
-#endif
     return 0;
   }
   thread_data->error_info.setjmp = 1;