@@ -37,11 +37,11 @@ TORCH_LIBRARY(torchcodec_ns, m) {
3737 m.def (
3838 " _encode_audio_to_file_like(Tensor samples, int sample_rate, str format, int file_like_context, int? bit_rate=None, int? num_channels=None, int? desired_sample_rate=None) -> ()" );
3939 m.def (
40- " encode_video_to_file(Tensor frames, int frame_rate, str filename, str? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> ()" );
40+ " encode_video_to_file(Tensor frames, int frame_rate, str filename, str device= \" cpu \" , str ? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> ()" );
4141 m.def (
42- " encode_video_to_tensor(Tensor frames, int frame_rate, str format, str? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> Tensor" );
42+ " encode_video_to_tensor(Tensor frames, int frame_rate, str format, str device= \" cpu \" , str ? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> Tensor" );
4343 m.def (
44- " _encode_video_to_file_like(Tensor frames, int frame_rate, str format, int file_like_context, str? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> ()" );
44+ " _encode_video_to_file_like(Tensor frames, int frame_rate, str format, int file_like_context, str device= \" cpu \" ,str ? codec=None, str? pixel_format=None, float? crf=None, str? preset=None, str[]? extra_options=None) -> ()" );
4545 m.def (
4646 " create_from_tensor(Tensor video_tensor, str? seek_mode=None) -> Tensor" );
4747 m.def (
@@ -613,6 +613,7 @@ void encode_video_to_file(
613613 const at::Tensor& frames,
614614 int64_t frame_rate,
615615 std::string_view file_name,
616+ std::string_view device = " cpu" ,
616617 std::optional<std::string> codec = std::nullopt ,
617618 std::optional<std::string_view> pixel_format = std::nullopt ,
618619 std::optional<double > crf = std::nullopt ,
@@ -622,6 +623,8 @@ void encode_video_to_file(
622623 videoStreamOptions.codec = codec;
623624 videoStreamOptions.pixelFormat = pixel_format;
624625 videoStreamOptions.crf = crf;
626+
627+ videoStreamOptions.device = torch::Device (std::string (device));
625628 videoStreamOptions.preset = preset;
626629
627630 if (extra_options.has_value ()) {
@@ -641,6 +644,7 @@ at::Tensor encode_video_to_tensor(
641644 const at::Tensor& frames,
642645 int64_t frame_rate,
643646 std::string_view format,
647+ std::string_view device = " cpu" ,
644648 std::optional<std::string> codec = std::nullopt ,
645649 std::optional<std::string_view> pixel_format = std::nullopt ,
646650 std::optional<double > crf = std::nullopt ,
@@ -651,6 +655,8 @@ at::Tensor encode_video_to_tensor(
651655 videoStreamOptions.codec = codec;
652656 videoStreamOptions.pixelFormat = pixel_format;
653657 videoStreamOptions.crf = crf;
658+
659+ videoStreamOptions.device = torch::Device (std::string (device));
654660 videoStreamOptions.preset = preset;
655661
656662 if (extra_options.has_value ()) {
@@ -672,6 +678,7 @@ void _encode_video_to_file_like(
672678 int64_t frame_rate,
673679 std::string_view format,
674680 int64_t file_like_context,
681+ std::string_view device = " cpu" ,
675682 std::optional<std::string> codec = std::nullopt ,
676683 std::optional<std::string_view> pixel_format = std::nullopt ,
677684 std::optional<double > crf = std::nullopt ,
@@ -687,6 +694,7 @@ void _encode_video_to_file_like(
687694 videoStreamOptions.codec = codec;
688695 videoStreamOptions.pixelFormat = pixel_format;
689696 videoStreamOptions.crf = crf;
697+ videoStreamOptions.device = torch::Device (std::string (device));
690698 videoStreamOptions.preset = preset;
691699
692700 if (extra_options.has_value ()) {
0 commit comments