(self, py_frame)
| 55 | |
| 56 | # convert avframe(ffmpeg frame) to bmf frame |
| 57 | def python_vframe_to_c_vframe(self, py_frame): |
| 58 | planes = [] |
| 59 | |
| 60 | # buffer pointer |
| 61 | buffer_pointer = py_frame.planes[0].buffer_ptr |
| 62 | |
| 63 | prev_plane_size = 0 |
| 64 | for i, py_plane in enumerate(py_frame.planes): |
| 65 | # copy video plane data from av frame to bmf frame |
| 66 | planes.append( |
| 67 | csdk.VideoPlane(py_plane.line_size, py_plane.width, |
| 68 | py_plane.height, py_plane.buffer_size, |
| 69 | py_plane.buffer_ptr)) |
| 70 | |
| 71 | # create bmf frame |
| 72 | c_frame = csdk.VideoFrame(py_frame.width, py_frame.height, |
| 73 | py_frame.format.name, 0, buffer_pointer, |
| 74 | planes) |
| 75 | |
| 76 | # set pts |
| 77 | c_frame.set_pts(py_frame.pts) |
| 78 | |
| 79 | # set time base |
| 80 | c_time_base = csdk.Rational(py_frame.time_base.numerator, |
| 81 | py_frame.time_base.denominator) |
| 82 | c_frame.set_time_base(c_time_base) |
| 83 | |
| 84 | return c_frame |
| 85 | |
| 86 | def python_aframe_to_c_aframe(self, py_frame): |
| 87 | planes = [] |
no test coverage detected