Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 21 Jan 2014 15:01:59 +0000 (16:01 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 21 Jan 2014 15:02:13 +0000 (16:02 +0100)
* qatar/master:
  dxva2: Log errors verbosely

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/dxva2.c

diff --combined libavcodec/dxva2.c
@@@ -3,25 -3,24 +3,25 @@@
   *
   * copyright (c) 2010 Laurent Aimar
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
  #include "dxva2_internal.h"
 +#include "libavutil/time.h"
  
  void *ff_dxva2_get_surface(const Picture *picture)
  {
@@@ -51,10 -50,13 +51,13 @@@ int ff_dxva2_commit_buffer(AVCodecConte
      void     *dxva_data;
      unsigned dxva_size;
      int      result;
+     HRESULT hr;
  
-     if (FAILED(IDirectXVideoDecoder_GetBuffer(ctx->decoder, type,
-                                               &dxva_data, &dxva_size))) {
-         av_log(avctx, AV_LOG_ERROR, "Failed to get a buffer for %d\n", type);
+     hr = IDirectXVideoDecoder_GetBuffer(ctx->decoder, type,
+                                         &dxva_data, &dxva_size);
+     if (FAILED(hr)) {
+         av_log(avctx, AV_LOG_ERROR, "Failed to get a buffer for %d: 0x%x\n",
+                type, hr);
          return -1;
      }
      if (size <= dxva_size) {
          av_log(avctx, AV_LOG_ERROR, "Buffer for type %d was too small\n", type);
          result = -1;
      }
-     if (FAILED(IDirectXVideoDecoder_ReleaseBuffer(ctx->decoder, type))) {
-         av_log(avctx, AV_LOG_ERROR, "Failed to release buffer type %d\n", type);
+     hr = IDirectXVideoDecoder_ReleaseBuffer(ctx->decoder, type);
+     if (FAILED(hr)) {
+         av_log(avctx, AV_LOG_ERROR,
+                "Failed to release buffer type %d: 0x%x\n",
+                type, hr);
          result = -1;
      }
      return result;
@@@ -143,14 -149,16 +150,16 @@@ int ff_dxva2_common_end_frame(AVCodecCo
      exec.NumCompBuffers      = buffer_count;
      exec.pCompressedBuffers  = buffer;
      exec.pExtensionData      = NULL;
-     if (FAILED(IDirectXVideoDecoder_Execute(ctx->decoder, &exec))) {
-         av_log(avctx, AV_LOG_ERROR, "Failed to execute\n");
+     hr = IDirectXVideoDecoder_Execute(ctx->decoder, &exec);
+     if (FAILED(hr)) {
+         av_log(avctx, AV_LOG_ERROR, "Failed to execute: 0x%x\n", hr);
          result = -1;
      }
  
  end:
-     if (FAILED(IDirectXVideoDecoder_EndFrame(ctx->decoder, NULL))) {
-         av_log(avctx, AV_LOG_ERROR, "Failed to end frame\n");
+     hr = IDirectXVideoDecoder_EndFrame(ctx->decoder, NULL);
+     if (FAILED(hr)) {
+         av_log(avctx, AV_LOG_ERROR, "Failed to end frame: 0x%x\n", hr);
          result = -1;
      }