Fixing "Abort message: '[FATAL:decoder_stream.cc(524)] OnDecodeDone<audio>: 0" in dev/debug

Dev and debug versions throw DCHECK in OnDecodeDone due to wrong syntax of logging statement:
```
FUNCTION_DVLOG(status.is_ok() ? 3 : 1) << ": " << status.code();
```
The FUNCTION_DVLOG is defined as follows:
```
  DVLOG(level) << __func__ << "<" << GetStreamTypeString() << ">"
```

The issue is that the condition "status.is_ok() ? 3 : 1" should become "level", but in reality, since there are no braces around it, it gets parsed incorrectly and the number "3" becomes a severity level (see base/logging.h), which corresponds to "FATAL" severity level, which ends up which crash / assert.

Here is the code after preprocessor for that line 524 BEFORE the fix:

  !(((status.is_ok() ? 3 : 1) <= ::logging::GetVlogLevel("../../media/filters/decoder_stream.cc")) && (true)) ? (void) 0 : ::logging::LogMessageVoidify() & (::logging::LogMessage("../../media/filters/decoder_stream.cc", 524, -status.is_ok() ? 3 : 1).stream()) << __func__ << "<" << GetStreamTypeString() << ">" << ": " << status.code();

and this is the fixed version:

  !((((status.is_ok() ? 3 : 1)) <= ::logging::GetVlogLevel("../../media/filters/decoder_stream.cc")) && (true)) ? (void) 0 : ::logging::LogMessageVoidify() & (::logging::LogMessage("../../media/filters/decoder_stream.cc", 524, -(status.is_ok() ? 3 : 1)).stream()) << __func__ << "<" << GetStreamTypeString() << ">" << ": " << status.code();

Pay attention to this part:

LogMessage("../../media/filters/decoder_stream.cc", 524, -status.is_ok() ? 3 : 1).stream())

and

LogMessage("../../media/filters/decoder_stream.cc", 524, -(status.is_ok() ? 3 : 1)).stream())

So, basically, before the fix the negative sign is applied to the wrong statement, therefore the LogMessage will get +3 instead of -3. +3 means FATAL, while -3 means verbosity level 3, as far as I understand.

Fixed: 1157701, 1156942
Change-Id: I3132dde1dbd7d18460b74715016b74228e52ad7a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2586656
Reviewed-by: danakj <[email protected]>
Reviewed-by: François Doray <[email protected]>
Reviewed-by: Dale Curtis <[email protected]>
Commit-Queue: Artem Bolgar <[email protected]>
Cr-Commit-Position: refs/heads/master@{#836357}
diff --git a/base/logging.h b/base/logging.h
index a9a1198..ee1aed5d 100644
--- a/base/logging.h
+++ b/base/logging.h
@@ -454,7 +454,7 @@
 
 // The VLOG macros log with negative verbosities.
 #define VLOG_STREAM(verbose_level) \
-  ::logging::LogMessage(__FILE__, __LINE__, -verbose_level).stream()
+  ::logging::LogMessage(__FILE__, __LINE__, -(verbose_level)).stream()
 
 #define VLOG(verbose_level) \
   LAZY_STREAM(VLOG_STREAM(verbose_level), VLOG_IS_ON(verbose_level))
@@ -465,11 +465,11 @@
 
 #if defined (OS_WIN)
 #define VPLOG_STREAM(verbose_level) \
-  ::logging::Win32ErrorLogMessage(__FILE__, __LINE__, -verbose_level, \
+  ::logging::Win32ErrorLogMessage(__FILE__, __LINE__, -(verbose_level), \
     ::logging::GetLastSystemErrorCode()).stream()
 #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
 #define VPLOG_STREAM(verbose_level) \
-  ::logging::ErrnoLogMessage(__FILE__, __LINE__, -verbose_level, \
+  ::logging::ErrnoLogMessage(__FILE__, __LINE__, -(verbose_level), \
     ::logging::GetLastSystemErrorCode()).stream()
 #endif