BREAKING CHANGE: Rename class `Container` to `StreamContainer` to avoid name conflict with Flutter's `Container`.

This closes #66
This commit is contained in:
Mattia 2020-09-11 12:05:27 +02:00
parent de9eb97fc3
commit 8955308359
14 changed files with 28 additions and 34 deletions

View File

@ -67,7 +67,6 @@ Future<void> download(String id) async {
// Listen for data received. // Listen for data received.
var progressBar = ProgressBar(); var progressBar = ProgressBar();
await for (var data in audioStream) { await for (var data in audioStream) {
// Keep track of the current downloaded data. // Keep track of the current downloaded data.
count += data.length; count += data.length;

View File

@ -11,7 +11,6 @@ class DashManifest {
final xml.XmlDocument _root; final xml.XmlDocument _root;
Iterable<_StreamInfo> _streams; Iterable<_StreamInfo> _streams;
/// ///
Iterable<_StreamInfo> get streams => _streams ??= _root Iterable<_StreamInfo> get streams => _streams ??= _root
.findElements('Representation') .findElements('Representation')

View File

@ -98,11 +98,10 @@ extension on Duration {
} }
var twoDigitHours = twoDigits(inHours); var twoDigitHours = twoDigits(inHours);
var twoDigitMinutes = var twoDigitMinutes =
twoDigits(inMinutes.remainder(Duration.minutesPerHour)); twoDigits(inMinutes.remainder(Duration.minutesPerHour));
var twoDigitSeconds = var twoDigitSeconds =
twoDigits(inSeconds.remainder(Duration.secondsPerMinute)); twoDigits(inSeconds.remainder(Duration.secondsPerMinute));
var fourDigitsUs = var fourDigitsUs = threeDigits(inMilliseconds.remainder(1000));
threeDigits(inMilliseconds.remainder(1000));
return '$twoDigitHours:$twoDigitMinutes:$twoDigitSeconds,$fourDigitsUs'; return '$twoDigitHours:$twoDigitMinutes:$twoDigitSeconds,$fourDigitsUs';
} }
} }

View File

@ -1,2 +1,2 @@
export 'comment.dart'; export 'comment.dart';
export 'comments_client.dart'; export 'comments_client.dart';

View File

@ -9,7 +9,7 @@ class AudioOnlyStreamInfo implements AudioStreamInfo {
final Uri url; final Uri url;
@override @override
final Container container; final StreamContainer container;
@override @override
final FileSize size; final FileSize size;

View File

@ -6,7 +6,7 @@ abstract class AudioStreamInfo extends StreamInfo {
final String audioCodec; final String audioCodec;
/// ///
AudioStreamInfo(int tag, Uri url, Container container, FileSize size, AudioStreamInfo(int tag, Uri url, StreamContainer container, FileSize size,
Bitrate bitrate, this.audioCodec) Bitrate bitrate, this.audioCodec)
: super(tag, url, container, size, bitrate); : super(tag, url, container, size, bitrate);
} }

View File

@ -1,8 +1,8 @@
import 'audio_stream_info.dart'; import 'audio_stream_info.dart';
import 'bitrate.dart'; import 'bitrate.dart';
import 'container.dart';
import 'filesize.dart'; import 'filesize.dart';
import 'framerate.dart'; import 'framerate.dart';
import 'stream_container.dart';
import 'video_quality.dart'; import 'video_quality.dart';
import 'video_resolution.dart'; import 'video_resolution.dart';
import 'video_stream_info.dart'; import 'video_stream_info.dart';
@ -16,7 +16,7 @@ class MuxedStreamInfo implements AudioStreamInfo, VideoStreamInfo {
final Uri url; final Uri url;
@override @override
final Container container; final StreamContainer container;
@override @override
final FileSize size; final FileSize size;

View File

@ -1,33 +1,33 @@
import 'package:equatable/equatable.dart'; import 'package:equatable/equatable.dart';
/// Stream container. /// Stream container.
class Container with EquatableMixin { class StreamContainer with EquatableMixin {
/// Container name. /// Container name.
/// Can be used as file extension /// Can be used as file extension
final String name; final String name;
/// Initializes an instance of [Container] /// Initializes an instance of [StreamContainer]
Container._(this.name); StreamContainer._(this.name);
/// MPEG-4 Part 14 (.mp4). /// MPEG-4 Part 14 (.mp4).
static final Container mp4 = Container._('mp4'); static final StreamContainer mp4 = StreamContainer._('mp4');
/// Web Media (.webm). /// Web Media (.webm).
static final Container webM = Container._('webm'); static final StreamContainer webM = StreamContainer._('webm');
/// 3rd Generation Partnership Project (.3gpp). /// 3rd Generation Partnership Project (.3gpp).
static final Container tgpp = Container._('3gpp'); static final StreamContainer tgpp = StreamContainer._('3gpp');
/// Parse a container from name. /// Parse a container from name.
static Container parse(String name) { static StreamContainer parse(String name) {
if (name.toLowerCase() == 'mp4') { if (name.toLowerCase() == 'mp4') {
return Container.mp4; return StreamContainer.mp4;
} }
if (name.toLowerCase() == 'webm') { if (name.toLowerCase() == 'webm') {
return Container.webM; return StreamContainer.webM;
} }
if (name.toLowerCase() == '3gpp') { if (name.toLowerCase() == '3gpp') {
return Container.tgpp; return StreamContainer.tgpp;
} }
throw ArgumentError.value(name, 'name', 'Valid values: mp4, webm, 3gpp'); throw ArgumentError.value(name, 'name', 'Valid values: mp4, webm, 3gpp');

View File

@ -1,6 +1,6 @@
import 'bitrate.dart'; import 'bitrate.dart';
import 'container.dart';
import 'filesize.dart'; import 'filesize.dart';
import 'stream_container.dart';
/// Generic YouTube media stream. /// Generic YouTube media stream.
abstract class StreamInfo { abstract class StreamInfo {
@ -12,7 +12,7 @@ abstract class StreamInfo {
final Uri url; final Uri url;
/// Stream container. /// Stream container.
final Container container; final StreamContainer container;
/// Stream size. /// Stream size.
final FileSize size; final FileSize size;

View File

@ -1,10 +1,10 @@
export 'audio_only_stream_info.dart'; export 'audio_only_stream_info.dart';
export 'audio_stream_info.dart'; export 'audio_stream_info.dart';
export 'bitrate.dart'; export 'bitrate.dart';
export 'container.dart';
export 'filesize.dart'; export 'filesize.dart';
export 'framerate.dart'; export 'framerate.dart';
export 'muxed_stream_info.dart'; export 'muxed_stream_info.dart';
export 'stream_container.dart';
export 'stream_context.dart'; export 'stream_context.dart';
export 'stream_info.dart'; export 'stream_info.dart';
export 'stream_manifest.dart'; export 'stream_manifest.dart';

View File

@ -6,9 +6,9 @@ import '../../reverse_engineering/responses/responses.dart';
import '../../reverse_engineering/youtube_http_client.dart'; import '../../reverse_engineering/youtube_http_client.dart';
import '../video_id.dart'; import '../video_id.dart';
import 'bitrate.dart'; import 'bitrate.dart';
import 'container.dart';
import 'filesize.dart'; import 'filesize.dart';
import 'framerate.dart'; import 'framerate.dart';
import 'stream_container.dart';
import 'stream_context.dart'; import 'stream_context.dart';
import 'stream_info.dart'; import 'stream_info.dart';
import 'stream_manifest.dart'; import 'stream_manifest.dart';
@ -145,7 +145,7 @@ class StreamsClient {
} }
// Common // Common
var container = Container.parse(streamInfo.container); var container = StreamContainer.parse(streamInfo.container);
var fileSize = FileSize(contentLength); var fileSize = FileSize(contentLength);
var bitrate = Bitrate(streamInfo.bitrate); var bitrate = Bitrate(streamInfo.bitrate);

View File

@ -1,7 +1,7 @@
import 'bitrate.dart'; import 'bitrate.dart';
import 'container.dart';
import 'filesize.dart'; import 'filesize.dart';
import 'framerate.dart'; import 'framerate.dart';
import 'stream_container.dart';
import 'video_quality.dart'; import 'video_quality.dart';
import 'video_resolution.dart'; import 'video_resolution.dart';
import 'video_stream_info.dart'; import 'video_stream_info.dart';
@ -15,7 +15,7 @@ class VideoOnlyStreamInfo implements VideoStreamInfo {
final Uri url; final Uri url;
@override @override
final Container container; final StreamContainer container;
@override @override
final FileSize size; final FileSize size;

View File

@ -21,7 +21,7 @@ abstract class VideoStreamInfo extends StreamInfo {
VideoStreamInfo( VideoStreamInfo(
int tag, int tag,
Uri url, Uri url,
Container container, StreamContainer container,
FileSize size, FileSize size,
Bitrate bitrate, Bitrate bitrate,
this.videoCodec, this.videoCodec,

View File

@ -1,16 +1,13 @@
import 'package:grinder/grinder.dart'; import 'package:grinder/grinder.dart';
final pub = sdkBin('pub');
final pub = sdkBin('pub');
void main(args) => grind(args); void main(args) => grind(args);
@Task('Run tests') @Task('Run tests')
void test() => TestRunner().testAsync(); void test() => TestRunner().testAsync();
@Task('Dart analysis') @Task('Dart analysis')
void analysis() { void analysis() {}
}
@DefaultTask() @DefaultTask()
@Depends(test) @Depends(test)