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.
var progressBar = ProgressBar();
await for (var data in audioStream) {
// Keep track of the current downloaded data.
count += data.length;

View File

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

View File

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

View File

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

View File

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

View File

@ -6,7 +6,7 @@ abstract class AudioStreamInfo extends StreamInfo {
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)
: super(tag, url, container, size, bitrate);
}

View File

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

View File

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

View File

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

View File

@ -1,10 +1,10 @@
export 'audio_only_stream_info.dart';
export 'audio_stream_info.dart';
export 'bitrate.dart';
export 'container.dart';
export 'filesize.dart';
export 'framerate.dart';
export 'muxed_stream_info.dart';
export 'stream_container.dart';
export 'stream_context.dart';
export 'stream_info.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 '../video_id.dart';
import 'bitrate.dart';
import 'container.dart';
import 'filesize.dart';
import 'framerate.dart';
import 'stream_container.dart';
import 'stream_context.dart';
import 'stream_info.dart';
import 'stream_manifest.dart';
@ -145,7 +145,7 @@ class StreamsClient {
}
// Common
var container = Container.parse(streamInfo.container);
var container = StreamContainer.parse(streamInfo.container);
var fileSize = FileSize(contentLength);
var bitrate = Bitrate(streamInfo.bitrate);

View File

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

View File

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

View File

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