subtitle_sampler.cpp 862 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "subtitle_sampler.h"
  2. #include <c10/util/Logging.h>
  3. #include "util.h"
  4. namespace ffmpeg {
  5. SubtitleSampler::~SubtitleSampler() {
  6. cleanUp();
  7. }
  8. void SubtitleSampler::shutdown() {
  9. cleanUp();
  10. }
  11. bool SubtitleSampler::init(const SamplerParameters& params) {
  12. cleanUp();
  13. // set formats
  14. params_ = params;
  15. return true;
  16. }
  17. int SubtitleSampler::sample(AVSubtitle* sub, ByteStorage* out) {
  18. if (!sub || !out) {
  19. return 0; // flush
  20. }
  21. out->ensure(Util::size(*sub));
  22. return Util::serialize(*sub, out);
  23. }
  24. int SubtitleSampler::sample(const ByteStorage* in, ByteStorage* out) {
  25. if (in && out) {
  26. // Get a writable copy
  27. if (size_t len = in->length()) {
  28. out->ensure(len);
  29. memcpy(out->writableTail(), in->data(), len);
  30. }
  31. return out->length();
  32. }
  33. return 0;
  34. }
  35. void SubtitleSampler::cleanUp() {}
  36. } // namespace ffmpeg