title: Video transcoding problem in IONIC with iOS 13.0
body: <p>We have an existing IONIC App and since iOS 13.0 has been released we ran into a problem with transcoding videos.
  When file path is read from camera.getPicture (with sourceType=PHOTOLIBRARY), and passed to videoEditor.transcodeVideo(), it indefinitely keeps calling the progress callback with value 0. It won’t throw any error and it won’t call the Completed callback. </p>
  
  <p>videoEditor.transcodeVideo() does not work on several real iPhone devices with iOS 13.0 +.</p>
  
  <p>I tried the same code on a simulator with iOS 13.0 and surprisingly it worked.</p>
  
  <p>I tried different file URLs passed to the transcodeVideo() - whether normalized or full URL - no chance!</p>
  
  <p>I tried transcoding a video which is taken from the camera (not from the photo library - captureVideo() function) and it works perfectly.</p>
  
  <pre class="lang-js prettyprint-override"><code>openFromLibrary() { //DOES NOT WORK
    const optionsFiles: CameraOptions = {
      quality: 50,
      destinationType: this.camera.DestinationType.FILE_URI,
      mediaType: this.camera.MediaType.VIDEO,
      targetWidth: 450,
      targetHeight: 450,
      sourceType: this.camera.PictureSourceType.PHOTOLIBRARY
    } 
    this.camera.getPicture(optionsFiles).then((data) =&gt; {
      let model = {
        fullPath: data,
        name: data.substring(data.lastIndexOf('/') + 1)
      }
      //model.fullPath is something like:
      //file:///private/var/mobile/Containers/Data/PluginKitPlugin/DE8E75E9-BF8B-4990-8F01-3874169D65E0/tmp/trim.4F8792C3-D9EC-450D-9E05-2D96C1CF5AE5.MOV
      this.TranscodeVideo(model);
    }, (err) =&gt; {
      console.log(err) 
    })
  }
  
  captureVideo() { //WORKS
      let options: CaptureVideoOptions = { limit: 1, quality: 1 };
      this.mediaCapture.captureVideo(options).then((data: MediaFile[]) =&gt; {
        this.TranscodeVideo(data[0]);
      },
         (err: CaptureError) =&gt; console.error(err)
      );
    }
  
  TranscodeVideo(data: any) {
    let fileUri = data.fullPath;
    let outputFileName = this.removeExtension(data.name) + new Date().getMilliseconds() + '_transcoded-output';
    console.log("fileUri: " + fileUri);
    console.log("outputFileName: " + outputFileName);
    this.videoEditor.transcodeVideo({
        fileUri: fileUri,
        outputFileName: outputFileName,
        outputFileType: this.videoEditor.OutputFileType.MPEG4,
        progress: (info: number) =&gt; {
          //This gets called indefinitely ... with info = 0
          console.log('progress' + info)
        }
      }).then(
          (fileUri: string) =&gt; {
            //This never gets called
            console.log('completed')
          }
        ).catch((error: any) =&gt;  {
           //This never gets called
           alert(error)
        });
  
  }
  </code></pre>
  
  <p>The expected result is what I got from the output of a simulator:</p>
  
  <pre><code>**2019-10-01 13:41:34.518254-0700 MyApp[1120:13425] fileUri: file:///Users/admin/Library/Developer/CoreSimulator/Devices/6E600D79-C397-4B55-B776-DE036DBFCA7C/data/Containers/Data/PluginKitPlugin/5F323D37-2DE5-4440-BCC0-C07D91F7F77E/tmp/trim.2BB1FF35-883B-4CFE-8EC0-2482E4A09321.MOV**
  **2019-10-01 13:41:34.518505-0700 MyApp[1120:13425] outputFileName: trim.2BB1FF35-883B-4CFE-8EC0-2482E4A09321501_transcoded-output**
  **2019-10-01 13:41:34.642996-0700 MyApp[1120:13425] input videoWidth: 360.000000**
  **2019-10-01 13:41:34.643182-0700 MyApp[1120:13425] input videoHeight: 480.000000**
  **2019-10-01 13:41:34.643264-0700 MyApp[1120:13425] output newWidth: 360**
  **2019-10-01 13:41:34.643323-0700 MyApp[1120:13425] output newHeight: 480**
  **2019-10-01 13:41:34.643522-0700 MyApp[1120:13425] THREAD WARNING: ['VideoEditor'] took '124.734131' ms. Plugin should use a background thread.**
  **2019-10-01 13:41:34.662540-0700 MyApp[1120:13538] [plugin] AddInstanceForFactory: No factory registered for id &lt;CFUUID 0x6000033c4600&gt; F8BB1C28-BAE8-11D6-9C31-00039315CD46**
  **2019-10-01 13:41:34.667810-0700 MyApp[1120:13538] [ddagg]        AggregateDevice.mm:776   couldn't get default input device, ID = 0, err = 0!**
  **2019-10-01 13:41:34.701108-0700 MyApp[1120:13425] progress0**
  **2019-10-01 13:41:34.889640-0700 MyApp[1120:13530] Video export succeeded**
  **2019-10-01 13:41:34.890443-0700 MyApp[1120:13425] progress100**
  **2019-10-01 13:41:34.894357-0700 MyApp[1120:13425] completed**
  </code></pre>
  
  <p>But what I getis an indefinite number of progress = 0, here is what I logged from an iPhone device with iOS 13.0:</p>
  
  <pre><code>**2019-10-01 13:46:40.599042-0700 MyApp[458:25050] fileUri: file:///private/var/mobile/Containers/Data/PluginKitPlugin/DE8E75E9-BF8B-4990-8F01-3874169D65E0/tmp/trim.521777DB-3325-4E83-98F6-BEDF14EBDC9C.MOV**
  **2019-10-01 13:46:40.599279-0700 MyApp[458:25050] outputFileName: trim.521777DB-3325-4E83-98F6-BEDF14EBDC9C594_transcoded-output**
  **2019-10-01 13:46:40.617653-0700 MyApp[458:25050] input videoWidth: 360.000000**
  **2019-10-01 13:46:40.617717-0700 MyApp[458:25050] input videoHeight: 480.000000**
  **2019-10-01 13:46:40.617747-0700 MyApp[458:25050] output newWidth: 360**
  **2019-10-01 13:46:40.617780-0700 MyApp[458:25050] output newHeight: 480**
  **2019-10-01 13:46:40.617903-0700 MyApp[458:25050] THREAD WARNING: ['VideoEditor'] took '17.159912' ms. Plugin should use a background thread.**
  **2019-10-01 13:46:40.624098-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:40.624256-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:41.633175-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:42.639211-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:43.642919-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:44.649573-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:45.653984-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:46.661094-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:47.665412-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:48.669655-0700 MyApp[458:25050] progress0**
  **2019-10-01 13:46:49.674255-0700 MyApp[458:25050] progress0**
  ...
  </code></pre>
  
  <p>Plugins used are: VideoEditor,Camera</p>