BREAKING CHANGE: Rename class `Container` to `StreamContainer` to avoid name conflict with Flutter's `Container`.
This closes #66
This commit is contained in:
parent
de9eb97fc3
commit
8955308359
|
@ -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;
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ class DashManifest {
|
|||
final xml.XmlDocument _root;
|
||||
Iterable<_StreamInfo> _streams;
|
||||
|
||||
|
||||
///
|
||||
Iterable<_StreamInfo> get streams => _streams ??= _root
|
||||
.findElements('Representation')
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
export 'comment.dart';
|
||||
export 'comments_client.dart';
|
||||
export 'comments_client.dart';
|
||||
|
|
|
@ -9,7 +9,7 @@ class AudioOnlyStreamInfo implements AudioStreamInfo {
|
|||
final Uri url;
|
||||
|
||||
@override
|
||||
final Container container;
|
||||
final StreamContainer container;
|
||||
|
||||
@override
|
||||
final FileSize size;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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');
|
|
@ -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;
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -21,7 +21,7 @@ abstract class VideoStreamInfo extends StreamInfo {
|
|||
VideoStreamInfo(
|
||||
int tag,
|
||||
Uri url,
|
||||
Container container,
|
||||
StreamContainer container,
|
||||
FileSize size,
|
||||
Bitrate bitrate,
|
||||
this.videoCodec,
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue