Commit 1dc98ba9 authored by Alastor Wu's avatar Alastor Wu
Browse files

Bug 1400758 - part1 : report the error description with InitPromise for Apple's decoders. r=jya

MozReview-Commit-ID: 8rifWLm8BPt

--HG--
extra : rebase_source : 44dcc34ba665a238a3bc72a7c610484e860ddb8a
parent 01f24f8d
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -4,11 +4,11 @@
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "AppleATDecoder.h"
#include "AppleUtils.h"
#include "MP4Decoder.h"
#include "mp4_demuxer/Adts.h"
#include "MediaInfo.h"
#include "AppleATDecoder.h"
#include "mozilla/Logging.h"
#include "mozilla/SyncRunnable.h"
#include "mozilla/UniquePtr.h"
@@ -55,8 +55,10 @@ RefPtr<MediaDataDecoder::InitPromise>
AppleATDecoder::Init()
{
  if (!mFormatID) {
    NS_ERROR("Non recognised format");
    return InitPromise::CreateAndReject(NS_ERROR_DOM_MEDIA_FATAL_ERR, __func__);
    return InitPromise::CreateAndReject(
      MediaResult(NS_ERROR_DOM_MEDIA_FATAL_ERR,
                  RESULT_DETAIL("Non recognised format")),
      __func__);
  }

  return InitPromise::CreateAndResolve(TrackType::kAudioTrack, __func__);
+8 −8
Original line number Diff line number Diff line
@@ -6,10 +6,10 @@

#include <CoreFoundation/CFString.h>

#include "AppleVTDecoder.h"
#include "AppleCMLinker.h"
#include "AppleDecoderModule.h"
#include "AppleUtils.h"
#include "AppleVTDecoder.h"
#include "AppleVTLinker.h"
#include "MediaData.h"
#include "mozilla/ArrayUtils.h"
@@ -63,13 +63,13 @@ AppleVTDecoder::~AppleVTDecoder()
RefPtr<MediaDataDecoder::InitPromise>
AppleVTDecoder::Init()
{
  nsresult rv = InitializeSession();
  MediaResult rv = InitializeSession();

  if (NS_SUCCEEDED(rv)) {
    return InitPromise::CreateAndResolve(TrackType::kVideoTrack, __func__);
  }

  return InitPromise::CreateAndReject(NS_ERROR_DOM_MEDIA_FATAL_ERR, __func__);
  return InitPromise::CreateAndReject(rv, __func__);
}

RefPtr<MediaDataDecoder::DecodePromise>
@@ -473,7 +473,7 @@ AppleVTDecoder::WaitForAsynchronousFrames()
  return NS_OK;
}

nsresult
MediaResult
AppleVTDecoder::InitializeSession()
{
  OSStatus rv;
@@ -487,8 +487,8 @@ AppleVTDecoder::InitializeSession()
                                      extensions,
                                      &mFormat);
  if (rv != noErr) {
    NS_ERROR("Couldn't create format description!");
    return NS_ERROR_FAILURE;
    return MediaResult(NS_ERROR_DOM_MEDIA_FATAL_ERR,
                       RESULT_DETAIL("Couldn't create format description!"));
  }

  // Contruct video decoder selection spec.
@@ -507,8 +507,8 @@ AppleVTDecoder::InitializeSession()
                                    &mSession);

  if (rv != noErr) {
    NS_ERROR("Couldn't create decompression session!");
    return NS_ERROR_FAILURE;
    return MediaResult(NS_ERROR_DOM_MEDIA_FATAL_ERR,
                       RESULT_DETAIL("Couldn't create decompression session!"));
  }

  if (AppleVTLinker::skPropUsingHWAccel) {
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ private:
  const uint32_t mDisplayHeight;

  // Method to set up the decompression session.
  nsresult InitializeSession();
  MediaResult InitializeSession();
  nsresult WaitForAsynchronousFrames();
  CFDictionaryRef CreateDecoderSpecification();
  CFDictionaryRef CreateDecoderExtensions();