VLCTranscoder.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*****************************************************************************
  2. * VLCTranscoder.h: VLCKit.framework VLCTranscoder implementation
  3. *****************************************************************************
  4. * Copyright (C) 2018 Carola Nitz
  5. * Copyright (C) 2018 VLC authors and VideoLAN
  6. * $Id$
  7. *
  8. * Authors: Carola Nitz <caro # videolan.org>
  9. *
  10. * This program is free software; you can redistribute it and/or modify it
  11. * under the terms of the GNU Lesser General Public License as published by
  12. * the Free Software Foundation; either version 2.1 of the License, or
  13. * (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU Lesser General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU Lesser General Public License
  21. * along with this program; if not, write to the Free Software Foundation,
  22. * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  23. *****************************************************************************/
  24. #import <Foundation/Foundation.h>
  25. NS_ASSUME_NONNULL_BEGIN
  26. /**
  27. * Transcoder delegate allows to be notified about transcoding state
  28. */
  29. @class VLCTranscoder;
  30. @protocol VLCTranscoderDelegate <NSObject>
  31. @optional
  32. /**
  33. * Called when the transcoding finished
  34. * \param transcoder the transcoder object that finished
  35. * \param success if transcoding finished sucessfully or not
  36. */
  37. - (void)transcode:(VLCTranscoder *)transcoder finishedSucessfully:(BOOL)success;
  38. @end
  39. /**
  40. * Provides an object to convert a subtitle file and moviefile into one.
  41. */
  42. OBJC_VISIBLE
  43. @interface VLCTranscoder: NSObject
  44. /**
  45. * the delegate object implementing the optional protocol
  46. */
  47. @property (weak, nonatomic) id<VLCTranscoderDelegate> delegate;
  48. /**
  49. * Reencode and remuxes an srt and mp4 file to an mkv file with embedded subtitles either with VideoToolbox-based H264 encoding or VP80 is Videotoolbox is not available
  50. * \param srtPath path to srt file
  51. * \param mp4Path path to mp4 file
  52. * \param outPath path where the new file should be written to
  53. * \return an BOOL with the success status, returns NO if the subtitle file is not an srt or mp4File is not an mp4 file or the files don't exist at that path or transcoding failed for other reasons
  54. */
  55. - (BOOL)reencodeAndMuxSRTFile:(NSString *)srtPath toMP4File:(NSString *)mp4Path outputPath:(NSString *)outPath;
  56. @end
  57. NS_ASSUME_NONNULL_END