No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

50 líneas
2.1KB

  1. #ifndef _fmp4_writer_h_
  2. #define _fmp4_writer_h_
  3. #include <stddef.h>
  4. #include <stdint.h>
  5. #include "mov-buffer.h"
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. typedef struct fmp4_writer_t fmp4_writer_t;
  10. /// @param[in] flags mov flags, such as: MOV_FLAG_SEGMENT, see more @mov-format.h
  11. fmp4_writer_t* fmp4_writer_create(const struct mov_buffer_t *buffer, void* param, int flags);
  12. void fmp4_writer_destroy(fmp4_writer_t* fmp4);
  13. /// @param[in] object MPEG-4 systems ObjectTypeIndication such as: MOV_OBJECT_H264, see more @mov-format.h
  14. /// @param[in] extra_data AudioSpecificConfig/AVCDecoderConfigurationRecord/HEVCDecoderConfigurationRecord
  15. /// @return >=0-track, <0-error
  16. int fmp4_writer_add_audio(fmp4_writer_t* fmp4, uint8_t object, int channel_count, int bits_per_sample, int sample_rate, const void* extra_data, size_t extra_data_size);
  17. int fmp4_writer_add_video(fmp4_writer_t* fmp4, uint8_t object, int width, int height, const void* extra_data, size_t extra_data_size);
  18. int fmp4_writer_add_subtitle(fmp4_writer_t* fmp4, uint8_t object, const void* extra_data, size_t extra_data_size);
  19. /// Write audio/video stream
  20. /// raw AAC data, don't include ADTS/AudioSpecificConfig
  21. /// H.264/H.265 MP4 format, replace start code(0x00000001) with NALU size
  22. /// @param[in] track return by mov_writer_add_audio/mov_writer_add_video
  23. /// @param[in] data audio/video frame
  24. /// @param[in] bytes buffer size
  25. /// @param[in] pts timestamp in millisecond
  26. /// @param[in] dts timestamp in millisecond
  27. /// @param[in] flags MOV_AV_FLAG_XXX, such as: MOV_AV_FLAG_KEYFREAME, see more @mov-format.h
  28. /// @return 0-ok, other-error
  29. int fmp4_writer_write(fmp4_writer_t* fmp4, int track, const void* data, size_t bytes, int64_t pts, int64_t dts, int flags);
  30. /// Save data and open next segment
  31. /// @return 0-ok, other-error
  32. int fmp4_writer_save_segment(fmp4_writer_t* fmp4);
  33. /// Get init segment data(write FTYP, MOOV only)
  34. /// WARNING: it caller duty to switch file/buffer context with fmp4_writer_write
  35. /// @return 0-ok, other-error
  36. int fmp4_writer_init_segment(fmp4_writer_t* fmp4);
  37. #ifdef __cplusplus
  38. }
  39. #endif
  40. #endif /* !_fmp4_writer_h_ */