fix: fix mistakes
This commit is contained in:
parent
f625e85595
commit
6310ce87c6
@ -54,7 +54,7 @@ class StreamURLResolver(AsyncCooperationMixin):
|
||||
|
||||
def __call__(self, source: Observable[StreamParams]) -> Observable[str]:
|
||||
self.reset()
|
||||
return self._solve(source).pipe(
|
||||
return self._solve(source).pipe( # type: ignore
|
||||
ops.do_action(on_error=self._before_retry),
|
||||
utils_ops.retry(delay=1, should_retry=self._should_retry),
|
||||
)
|
||||
|
@ -1,3 +1,4 @@
|
||||
import io
|
||||
import logging
|
||||
from abc import ABC, abstractmethod
|
||||
from datetime import datetime
|
||||
@ -75,8 +76,8 @@ class StreamRecorderImpl(
|
||||
self._session = requests.Session()
|
||||
|
||||
self._recording_mode = recording_mode
|
||||
self._buffer_size = buffer_size
|
||||
self._read_timeout = read_timeout
|
||||
self._buffer_size = buffer_size or io.DEFAULT_BUFFER_SIZE
|
||||
self._read_timeout = read_timeout or 3
|
||||
self._filesize_limit = filesize_limit
|
||||
self._duration_limit = duration_limit
|
||||
|
||||
|
@ -1,37 +1,33 @@
|
||||
from io import BytesIO, SEEK_CUR
|
||||
from io import SEEK_CUR, BytesIO
|
||||
from typing import cast
|
||||
|
||||
import attr
|
||||
|
||||
from .struct_io import StructReader, StructWriter
|
||||
from .exceptions import FlvDataError, FlvHeaderError, FlvTagError
|
||||
from .io_protocols import RandomIO
|
||||
from .exceptions import FlvHeaderError, FlvDataError, FlvTagError
|
||||
from .models import (
|
||||
FlvTag,
|
||||
TagType,
|
||||
FlvHeader,
|
||||
FlvTagHeader,
|
||||
TAG_HEADER_SIZE,
|
||||
AUDIO_TAG_HEADER_SIZE,
|
||||
TAG_HEADER_SIZE,
|
||||
VIDEO_TAG_HEADER_SIZE,
|
||||
|
||||
AACPacketType,
|
||||
AudioTag,
|
||||
AudioTagHeader,
|
||||
AVCPacketType,
|
||||
CodecID,
|
||||
FlvHeader,
|
||||
FlvTag,
|
||||
FlvTagHeader,
|
||||
FrameType,
|
||||
ScriptTag,
|
||||
SoundFormat,
|
||||
SoundRate,
|
||||
SoundSize,
|
||||
SoundType,
|
||||
AACPacketType,
|
||||
|
||||
TagType,
|
||||
VideoTag,
|
||||
VideoTagHeader,
|
||||
CodecID,
|
||||
FrameType,
|
||||
AVCPacketType,
|
||||
|
||||
ScriptTag,
|
||||
)
|
||||
|
||||
from .struct_io import StructReader, StructWriter
|
||||
|
||||
__all__ = 'FlvParser', 'FlvDumper'
|
||||
|
||||
@ -73,7 +69,7 @@ class FlvParser:
|
||||
body_size = tag_header.data_size - AUDIO_TAG_HEADER_SIZE
|
||||
if no_body:
|
||||
self._stream.seek(body_size, SEEK_CUR)
|
||||
body = None
|
||||
body = b''
|
||||
else:
|
||||
body = self._reader.read(body_size)
|
||||
audio_tag_header = self.parse_audio_tag_header(header_data)
|
||||
@ -88,7 +84,7 @@ class FlvParser:
|
||||
body_size = tag_header.data_size - VIDEO_TAG_HEADER_SIZE
|
||||
if no_body:
|
||||
self._stream.seek(body_size, SEEK_CUR)
|
||||
body = None
|
||||
body = b''
|
||||
else:
|
||||
body = self._reader.read(body_size)
|
||||
video_tag_header = self.parse_video_tag_header(header_data)
|
||||
@ -102,14 +98,10 @@ class FlvParser:
|
||||
body_size = tag_header.data_size
|
||||
if no_body:
|
||||
self._stream.seek(body_size, SEEK_CUR)
|
||||
body = None
|
||||
body = b''
|
||||
else:
|
||||
body = self._reader.read(body_size)
|
||||
return ScriptTag(
|
||||
offset=offset,
|
||||
**attr.asdict(tag_header),
|
||||
body=body,
|
||||
)
|
||||
return ScriptTag(offset=offset, **attr.asdict(tag_header), body=body)
|
||||
else:
|
||||
raise FlvDataError(f'Unsupported tag type: {tag_header.tag_type}')
|
||||
|
||||
@ -157,9 +149,7 @@ class FlvParser:
|
||||
flag = reader.read_ui8()
|
||||
sound_format = SoundFormat(flag >> 4)
|
||||
if sound_format != SoundFormat.AAC:
|
||||
raise FlvDataError(
|
||||
f'Unsupported sound format: {sound_format}', data
|
||||
)
|
||||
raise FlvDataError(f'Unsupported sound format: {sound_format}', data)
|
||||
sound_rate = SoundRate((flag >> 2) & 0b0000_0011)
|
||||
sound_size = SoundSize((flag >> 1) & 0b0000_0001)
|
||||
sound_type = SoundType(flag & 0b0000_0001)
|
||||
@ -177,9 +167,7 @@ class FlvParser:
|
||||
raise FlvDataError(f'Unsupported video codec: {codec_id}', data)
|
||||
avc_packet_type = AVCPacketType(reader.read_ui8())
|
||||
composition_time = reader.read_ui24()
|
||||
return VideoTagHeader(
|
||||
frame_type, codec_id, avc_packet_type, composition_time
|
||||
)
|
||||
return VideoTagHeader(frame_type, codec_id, avc_packet_type, composition_time)
|
||||
|
||||
|
||||
class FlvDumper:
|
||||
@ -221,28 +209,24 @@ class FlvDumper:
|
||||
def dump_flv_tag_header(self, tag: FlvTag) -> None:
|
||||
self._writer.write_ui8((int(tag.filtered) << 5) | tag.tag_type.value)
|
||||
self._writer.write_ui24(tag.data_size)
|
||||
self._writer.write_ui24(tag.timestamp & 0x00ffffff)
|
||||
self._writer.write_ui24(tag.timestamp & 0x00FFFFFF)
|
||||
self._writer.write_ui8(tag.timestamp >> 24)
|
||||
self._writer.write_ui24(tag.stream_id)
|
||||
|
||||
def dump_audio_tag_header(self, tag: AudioTag) -> None:
|
||||
if tag.sound_format != SoundFormat.AAC:
|
||||
raise FlvDataError(
|
||||
f'Unsupported sound format: {tag.sound_format}', tag
|
||||
)
|
||||
raise FlvDataError(f'Unsupported sound format: {tag.sound_format}', tag)
|
||||
self._writer.write_ui8(
|
||||
(tag.sound_format.value << 4) |
|
||||
(tag.sound_rate.value << 2) |
|
||||
(tag.sound_size.value << 1) |
|
||||
tag.sound_type.value
|
||||
(tag.sound_format.value << 4)
|
||||
| (tag.sound_rate.value << 2)
|
||||
| (tag.sound_size.value << 1)
|
||||
| tag.sound_type.value
|
||||
)
|
||||
self._writer.write_ui8(tag.aac_packet_type)
|
||||
|
||||
def dump_video_tag_header(self, tag: VideoTag) -> None:
|
||||
if tag.codec_id != CodecID.AVC:
|
||||
raise FlvDataError(f'Unsupported video codec: {tag.codec_id}', tag)
|
||||
self._writer.write_ui8(
|
||||
(tag.frame_type.value << 4) | tag.codec_id.value
|
||||
)
|
||||
self._writer.write_ui8((tag.frame_type.value << 4) | tag.codec_id.value)
|
||||
self._writer.write_ui8(tag.avc_packet_type.value)
|
||||
self._writer.write_ui24(tag.composition_time)
|
||||
|
Loading…
Reference in New Issue
Block a user