@@ -76,11 +76,13 @@ STABLE_TORCH_LIBRARY_FRAGMENT(torchcodec_ns, m) {
7676 m.def (
7777 " _blocks_create_demuxer(str filename, int? stream_index=None) -> Tensor" );
7878 m.def (" _blocks_demuxer_next_packet(Tensor(a!) demuxer) -> (Tensor, bool)" );
79+ m.def (" _blocks_demuxer_seek(Tensor(a!) demuxer, float seconds) -> ()" );
7980 m.def (
8081 " _blocks_create_packet_decoder(Tensor demuxer, *, int? num_threads=None, str device=\" cpu\" ) -> Tensor" );
8182 m.def (
8283 " _blocks_packet_decoder_send_packet(Tensor(a!) decoder, Tensor packet) -> int" );
8384 m.def (" _blocks_packet_decoder_send_eof(Tensor(a!) decoder) -> int" );
85+ m.def (" _blocks_packet_decoder_reset(Tensor(a!) decoder) -> ()" );
8486 m.def (
8587 " _blocks_packet_decoder_receive_frame(Tensor(a!) decoder) -> (Tensor, int, float, float, str, Tensor)" );
8688 m.def (
@@ -815,6 +817,10 @@ OpsPacketOutput _blocks_demuxer_next_packet(torch::stable::Tensor& demuxer) {
815817 return std::make_tuple (wrap_pointer_to_tensor (std::move (packet)), false );
816818}
817819
820+ void _blocks_demuxer_seek (torch::stable::Tensor& demuxer, double seconds) {
821+ unwrap_tensor_to_pointer<Demuxer>(demuxer)->seek (seconds);
822+ }
823+
818824torch::stable::Tensor _blocks_create_packet_decoder (
819825 torch::stable::Tensor& demuxer,
820826 std::optional<int64_t > num_threads,
@@ -844,6 +850,10 @@ int64_t _blocks_packet_decoder_send_eof(torch::stable::Tensor& decoder) {
844850 return static_cast <int64_t >(decoder_ptr->send_eof ());
845851}
846852
853+ void _blocks_packet_decoder_reset (torch::stable::Tensor& decoder) {
854+ unwrap_tensor_to_pointer<PacketDecoder>(decoder)->reset ();
855+ }
856+
847857// TODO_API_BREAKDOWN CC P1: I hate this.
848858std::string device_to_string (const StableDevice& device) {
849859 std::string name = device_type_name (device.type ());
@@ -1498,6 +1508,7 @@ STABLE_TORCH_LIBRARY_IMPL(torchcodec_ns, CPU, m) {
14981508 m.impl (" get_frames_by_pts" , TORCH_BOX (&get_frames_by_pts));
14991509 m.impl (
15001510 " _blocks_demuxer_next_packet" , TORCH_BOX (&_blocks_demuxer_next_packet));
1511+ m.impl (" _blocks_demuxer_seek" , TORCH_BOX (&_blocks_demuxer_seek));
15011512 m.impl (
15021513 " _blocks_create_packet_decoder" ,
15031514 TORCH_BOX (&_blocks_create_packet_decoder));
@@ -1507,6 +1518,8 @@ STABLE_TORCH_LIBRARY_IMPL(torchcodec_ns, CPU, m) {
15071518 m.impl (
15081519 " _blocks_packet_decoder_send_eof" ,
15091520 TORCH_BOX (&_blocks_packet_decoder_send_eof));
1521+ m.impl (
1522+ " _blocks_packet_decoder_reset" , TORCH_BOX (&_blocks_packet_decoder_reset));
15101523 m.impl (
15111524 " _blocks_packet_decoder_receive_frame" ,
15121525 TORCH_BOX (&_blocks_packet_decoder_receive_frame));
0 commit comments