@@ -122,7 +122,7 @@ def decode(self, encoded_frame: JitterFrame) -> List[Frame]:
122122
123123def create_encoder_context (
124124 codec_name : str , width : int , height : int , bitrate : int
125- ) -> Tuple [ VideoCodecContext , bool ] :
125+ ) -> VideoCodecContext :
126126 codec = cast (VideoCodecContext , av .CodecContext .create (codec_name , "w" ))
127127 codec .width = width
128128 codec .height = height
@@ -133,18 +133,17 @@ def create_encoder_context(
133133 codec .options = {
134134 "profile" : "baseline" ,
135135 "level" : "31" ,
136- "tune" : "zerolatency" , # does nothing using h264_omx
136+ "tune" : "zerolatency" ,
137137 }
138138 codec .open ()
139- return codec , codec_name == "h264_omx"
139+ return codec
140140
141141
142142class H264Encoder (Encoder ):
143143 def __init__ (self ) -> None :
144144 self .buffer_data = b""
145145 self .buffer_pts : Optional [int ] = None
146146 self .codec : Optional [VideoCodecContext ] = None
147- self .codec_buffering = False
148147 self .__target_bitrate = DEFAULT_BITRATE
149148
150149 @staticmethod
@@ -286,32 +285,16 @@ def _encode_frame(
286285 frame .pict_type = av .video .frame .PictureType .NONE
287286
288287 if self .codec is None :
289- try :
290- self .codec , self .codec_buffering = create_encoder_context (
291- "h264_omx" , frame .width , frame .height , bitrate = self .target_bitrate
292- )
293- except Exception :
294- self .codec , self .codec_buffering = create_encoder_context (
295- "libx264" ,
296- frame .width ,
297- frame .height ,
298- bitrate = self .target_bitrate ,
299- )
288+ self .codec = create_encoder_context (
289+ "libx264" ,
290+ frame .width ,
291+ frame .height ,
292+ bitrate = self .target_bitrate ,
293+ )
300294
301295 data_to_send = b""
302296 for package in self .codec .encode (frame ):
303- package_bytes = bytes (package )
304- if self .codec_buffering :
305- # delay sending to ensure we accumulate all packages
306- # for a given PTS
307- if package .pts == self .buffer_pts :
308- self .buffer_data += package_bytes
309- else :
310- data_to_send += self .buffer_data
311- self .buffer_data = package_bytes
312- self .buffer_pts = package .pts
313- else :
314- data_to_send += package_bytes
297+ data_to_send += bytes (package )
315298
316299 if data_to_send :
317300 yield from self ._split_bitstream (data_to_send )
0 commit comments