From 8a88f1568c39d48711a9024f190dfcbddb13852f Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Sun, 16 Dec 2018 17:15:38 +0000 Subject: [PATCH 01/19] Add FFmpeg support to open video files This fix adds a preliminary video file support (`VideoDataset`) by linking and using FFmpeg's libraries. The `video.VideoDataset` takes input of filename list, and generates outputs of RGB24 images (`uint8`) in `(height, width, 3)`. The reason to link against FFmpeg's libraries is because FFmpeg has a LGPL 2.1+ license. On Ubuntu 18.04, FFmpeg libraries consists of: ``` libavformat.so.57 libavcodec.so.57 libavutil.so.55 libswscale.so.4 ``` Because FFmpeg only guarantee's major version conpatibility, linking to a lower version (e.g., libavformat.so.54 on Ubuntu 14.04) may not work. To support multiple versions of Ubuntu, multiple copies of header file combined with linking to different versions of .so might be needed. It needs to be fully tested though and only limited major version should be supported. At the moment, only ffmpeg libraries in Ubuntu 18.04 are used. To install required libraries on Ubuntu 18.04: ``` apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 ``` To build the pip package: ``` bazel build -s --verbose_failures build_pip_pkg ``` Signed-off-by: Yong Tang --- .../video/kernels/video_dataset_ops.cc | 344 ++++++++++++++++++ tensorflow_io/video/ops/dataset_ops.cc | 31 ++ 2 files changed, 375 insertions(+) create mode 100644 tensorflow_io/video/kernels/video_dataset_ops.cc create mode 100644 tensorflow_io/video/ops/dataset_ops.cc diff --git a/tensorflow_io/video/kernels/video_dataset_ops.cc b/tensorflow_io/video/kernels/video_dataset_ops.cc new file mode 100644 index 000000000..e4c6d1d88 --- /dev/null +++ b/tensorflow_io/video/kernels/video_dataset_ops.cc @@ -0,0 +1,344 @@ +/* Copyright 2018 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/core/framework/dataset.h" +#include "tensorflow/core/lib/io/buffered_inputstream.h" +#include "tensorflow/core/platform/file_system.h" + +extern "C" { + +#include "libavcodec/avcodec.h" +#include "libavformat/avformat.h" +#include "libavutil/imgutils.h" +#include "libswscale/swscale.h" +#include + +} + +namespace tensorflow { +namespace data { +namespace { + +class VideoReader { + public: + explicit VideoReader(const string &filename) + : filename_(filename) {} + + Status ReadHeader() { + // Open input file, and allocate format context + if (avformat_open_input(&format_context_, filename_.c_str(), NULL, NULL) < 0) { + return errors::InvalidArgument("could not open video file: ", filename_); + } + // Retrieve stream information + if (avformat_find_stream_info(format_context_, NULL) < 0) { + return errors::InvalidArgument("could not find stream information: ", filename_); + } + // Find video stream + if ((stream_index_ = av_find_best_stream(format_context_, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0)) < 0) { + return errors::InvalidArgument("could not find video stream: ", filename_); + } + + AVStream *video_stream = format_context_->streams[stream_index_]; + // Find decoder for the stream + AVCodec *codec = avcodec_find_decoder(video_stream->codecpar->codec_id); + if (!codec) { + return errors::Internal("could not find video codec: ", video_stream->codecpar->codec_id); + } + // Allocate a codec context for the decoder + codec_context_ = avcodec_alloc_context3(codec); + if (!codec_context_) { + return errors::Internal("could not allocate codec context"); + } + // Copy codec parameters from input stream to output codec context + if (avcodec_parameters_to_context(codec_context_, video_stream->codecpar) < 0) { + return errors::Internal("could not copy codec parameters from input stream to output codec context"); + } + // Initialize the decoders + // TODO (yongtang): avcodec_open2 is not thread-safe + AVDictionary *opts = NULL; + if (avcodec_open2(codec_context_, codec, &opts) < 0) { + return errors::Internal("could not open codec"); + } + + // Allocate frame + frame_ = av_frame_alloc(); + if (!frame_) { + return errors::Internal("could not allocate frame"); + } + + // Initialize packet + av_init_packet(&packet_); + packet_.data = NULL; + packet_.size = 0; + + // create scaling context + sws_context_ = sws_getContext(codec_context_->width, codec_context_->height, codec_context_->pix_fmt, codec_context_->width, codec_context_->height, AV_PIX_FMT_RGB24, 0, NULL, NULL, NULL); + if (!sws_context_) { + return errors::Internal("could not allocate sws context"); + } + frame_rgb_ = av_frame_alloc(); + if (!frame_rgb_) { + return errors::Internal("could not allocate rgb frame"); + } + // Determine required buffer size and allocate buffer + num_bytes_ = av_image_get_buffer_size(AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height, 1); + buffer_rgb_ = (uint8_t *)av_malloc(num_bytes_ * sizeof(uint8_t)); + avpicture_fill((AVPicture *)frame_rgb_, buffer_rgb_, AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height); + + frame_more_ = true; + packet_more_ = false; + buffer_more_ = ReadAhead(true); + + return Status::OK(); + } + + bool ReadAhead(bool first) { + while (packet_more_ || frame_more_) { + while (packet_more_) { + packet_more_ = false; + if (packet_.stream_index == stream_index_) { + int got_frame = 0; + int decoded = avcodec_decode_video2(codec_context_, frame_, &got_frame, &packet_); + if (decoded >= 0 && got_frame) { + sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); + if (packet_.data) { + packet_.data += decoded; + packet_.size -= decoded; + packet_more_ = (packet_.size > 0); + } + return true; + } + } + } + if (frame_more_) { + // If this is not the first time, unref the packet + av_packet_unref(&packet_); + frame_more_ = (av_read_frame(format_context_, &packet_) == 0); + if (!frame_more_) { + // Flush out the cached packet + packet_more_ = true; + packet_.data = NULL; + packet_.size = 0; + } else { + // More packet to process + packet_more_ = true; + } + } + } + return false; + } + + Status ReadFrame(int *num_bytes, uint8_t**value, int *height, int *width) { + *height = codec_context_->height; + *width = codec_context_->width; + *num_bytes = num_bytes_; + if (buffer_more_) { + *value = buffer_rgb_; + buffer_more_ = ReadAhead(true); + return Status::OK(); + } + return errors::OutOfRange("EOF"); + } + + virtual ~VideoReader() { + av_free(buffer_rgb_); + av_frame_free(&frame_rgb_); + sws_freeContext(sws_context_); + av_frame_free(&frame_); + avcodec_free_context(&codec_context_); + avformat_close_input(&format_context_); + } + + private: + std::string ahead_; + std::string filename_; + bool frame_more_ = false; + bool packet_more_ = false; + bool buffer_more_ = false; + int stream_index_ = -1; + size_t num_bytes_ = 0; + uint8_t *buffer_rgb_ = 0; + AVFrame *frame_rgb_ = 0; + struct SwsContext *sws_context_ = 0; + AVFormatContext *format_context_ = 0; + AVCodecContext *codec_context_ = 0; + AVFrame *frame_ = 0; + AVPacket packet_; + TF_DISALLOW_COPY_AND_ASSIGN(VideoReader); +}; + +static mutex mu(LINKER_INITIALIZED); +static unsigned count(0); +void VideoReaderInit() { + mutex_lock lock(mu); + count++; + if (count == 1) { + // Register all formats and codecs + av_register_all(); + } +} + +class VideoDatasetOp : public DatasetOpKernel { + public: + using DatasetOpKernel::DatasetOpKernel; + explicit VideoDatasetOp(OpKernelConstruction* ctx) + : DatasetOpKernel(ctx) { + } + void MakeDataset(OpKernelContext* ctx, DatasetBase** output) override { + const Tensor* filenames_tensor; + OP_REQUIRES_OK(ctx, ctx->input("filenames", &filenames_tensor)); + OP_REQUIRES( + ctx, filenames_tensor->dims() <= 1, + errors::InvalidArgument("`filenames` must be a scalar or a vector.")); + + std::vector filenames; + filenames.reserve(filenames_tensor->NumElements()); + for (int i = 0; i < filenames_tensor->NumElements(); ++i) { + filenames.push_back(filenames_tensor->flat()(i)); + } + + *output = new Dataset(ctx, filenames); + } + + private: + class Dataset : public DatasetBase { + public: + Dataset(OpKernelContext* ctx, const std::vector& filenames) + : DatasetBase(DatasetContext(ctx)), + filenames_(filenames) {} + + std::unique_ptr MakeIteratorInternal( + const string& prefix) const override { + return std::unique_ptr( + new Iterator({this, strings::StrCat(prefix, "::Video")})); + } + + const DataTypeVector& output_dtypes() const override { + static DataTypeVector* dtypes = new DataTypeVector({DT_UINT8}); + return *dtypes; + } + + const std::vector& output_shapes() const override { + static std::vector* shapes = + new std::vector({{-1, -1, 3}}); + return *shapes; + } + + string DebugString() const override { + return "VideoDatasetOp::Dataset"; + } + + protected: + Status AsGraphDefInternal(SerializationContext* ctx, + DatasetGraphDefBuilder* b, + Node** output) const override { + Node* filenames = nullptr; + TF_RETURN_IF_ERROR(b->AddVector(filenames_, &filenames)); + TF_RETURN_IF_ERROR(b->AddDataset(this, {filenames}, output)); + return Status::OK(); + } + + private: + class Iterator : public DatasetIterator { + public: + explicit Iterator(const Params& params) + : DatasetIterator(params) {} + + Status GetNextInternal(IteratorContext* ctx, + std::vector* out_tensors, + bool* end_of_sequence) override { + mutex_lock l(mu_); + do { + // We are currently processing a file, so try to read the next record. + if (reader_) { + int num_bytes, height, width; + uint8_t *value; + Status status = reader_->ReadFrame(&num_bytes, &value, &height, &width); + if (!errors::IsOutOfRange(status)) { + TF_RETURN_IF_ERROR(status); + + Tensor value_tensor(ctx->allocator({}), DT_UINT8, {height, width, 3}); + std::memcpy(reinterpret_cast(value_tensor.flat().data()), reinterpret_cast(value), num_bytes * sizeof(uint8_t)); + out_tensors->emplace_back(std::move(value_tensor)); + + *end_of_sequence = false; + return Status::OK(); + } + // We have reached the end of the current file, so maybe + // move on to next file. + ResetStreamsLocked(); + ++current_file_index_; + } + + // Iteration ends when there are no more files to process. + if (current_file_index_ == dataset()->filenames_.size()) { + *end_of_sequence = true; + return Status::OK(); + } + + TF_RETURN_IF_ERROR(SetupStreamsLocked(ctx->env())); + } while (true); + } + + protected: + Status SaveInternal(IteratorStateWriter* writer) override { + return errors::Unimplemented("SaveInternal is currently not supported"); + } + + Status RestoreInternal(IteratorContext* ctx, + IteratorStateReader* reader) override { + return errors::Unimplemented( + "RestoreInternal is currently not supported"); + } + + private: + // Sets up Video streams to read from the topic at + // `current_file_index_`. + Status SetupStreamsLocked(Env* env) EXCLUSIVE_LOCKS_REQUIRED(mu_) { + VideoReaderInit(); + + if (current_file_index_ >= dataset()->filenames_.size()) { + return errors::InvalidArgument( + "current_file_index_:", current_file_index_, + " >= filenames_.size():", dataset()->filenames_.size()); + } + + // Actually move on to next file. + const string& filename = dataset()->filenames_[current_file_index_]; + reader_.reset(new VideoReader(filename)); + return reader_->ReadHeader(); + return Status::OK(); + } + + // Resets all Video streams. + void ResetStreamsLocked() EXCLUSIVE_LOCKS_REQUIRED(mu_) { + reader_.reset(); + } + + mutex mu_; + size_t current_file_index_ GUARDED_BY(mu_) = 0; + std::unique_ptr reader_ GUARDED_BY(mu_); + }; + + const std::vector filenames_; + }; +}; + +REGISTER_KERNEL_BUILDER(Name("VideoDataset").Device(DEVICE_CPU), + VideoDatasetOp); + +} // namespace +} // namespace data +} // namespace tensorflow diff --git a/tensorflow_io/video/ops/dataset_ops.cc b/tensorflow_io/video/ops/dataset_ops.cc new file mode 100644 index 000000000..f819b6a4a --- /dev/null +++ b/tensorflow_io/video/ops/dataset_ops.cc @@ -0,0 +1,31 @@ +/* Copyright 2018 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/core/framework/common_shape_fns.h" +#include "tensorflow/core/framework/op.h" +#include "tensorflow/core/framework/shape_inference.h" + +namespace tensorflow { + +REGISTER_OP("VideoDataset") + .Input("filenames: string") + .Output("handle: variant") + .SetIsStateful() + .SetShapeFn([](shape_inference::InferenceContext* c) { + c->set_output(0, c->MakeShape({c->UnknownDim(), c->UnknownDim(), 3})); + return Status::OK(); + }); + +} // namespace tensorflow From 9a500e59717352061d7ead6015de94147ee7af78 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Sun, 16 Dec 2018 17:30:19 +0000 Subject: [PATCH 02/19] Add python wrapper for video.VideoDataset Signed-off-by: Yong Tang --- tensorflow_io/video/__init__.py | 32 ++++++++ tensorflow_io/video/python/__init__.py | 1 + tensorflow_io/video/python/ops/__init__.py | 1 + .../video/python/ops/video_dataset_ops.py | 77 +++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 tensorflow_io/video/__init__.py create mode 100644 tensorflow_io/video/python/__init__.py create mode 100644 tensorflow_io/video/python/ops/__init__.py create mode 100644 tensorflow_io/video/python/ops/video_dataset_ops.py diff --git a/tensorflow_io/video/__init__.py b/tensorflow_io/video/__init__.py new file mode 100644 index 000000000..178cdc85a --- /dev/null +++ b/tensorflow_io/video/__init__.py @@ -0,0 +1,32 @@ +# Copyright 2018 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Video Dataset. + +@@VideoDataset +""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from tensorflow_io.video.python.ops.video_dataset_ops import VideoDataset + +from tensorflow.python.util.all_util import remove_undocumented + +_allowed_symbols = [ + "VideoDataset", +] + +remove_undocumented(__name__) diff --git a/tensorflow_io/video/python/__init__.py b/tensorflow_io/video/python/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/tensorflow_io/video/python/__init__.py @@ -0,0 +1 @@ + diff --git a/tensorflow_io/video/python/ops/__init__.py b/tensorflow_io/video/python/ops/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/tensorflow_io/video/python/ops/__init__.py @@ -0,0 +1 @@ + diff --git a/tensorflow_io/video/python/ops/video_dataset_ops.py b/tensorflow_io/video/python/ops/video_dataset_ops.py new file mode 100644 index 000000000..96816b3ba --- /dev/null +++ b/tensorflow_io/video/python/ops/video_dataset_ops.py @@ -0,0 +1,77 @@ +# Copyright 2018 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Video Dataset.""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import os + +from tensorflow.python.data.ops import dataset_ops +from tensorflow.python.data.util import nest +from tensorflow.python.framework import dtypes +from tensorflow.python.framework import ops +from tensorflow.python.framework import tensor_shape + +from tensorflow.python.framework import load_library +from tensorflow.python.platform import resource_loader +video_ops = load_library.load_op_library( + resource_loader.get_path_to_datafile('_video_ops.so')) + + +class VideoDataset(dataset_ops.DatasetSource): + """A Video File Dataset that reads the video file.""" + + def __init__(self, filenames): + """Create a `VideoDataset`. + + `VideoDataset` allows a user to read data from a video file with + ffmpeg. The output of VideoDataset is a sequence of (height, weight, 3) + tensor in rgb24 format. + + For example: + + ```python + dataset = VideoDataset("/foo/bar.mp4") + iterator = dataset.make_one_shot_iterator() + next_element = iterator.get_next() + while True: + try: + print(sess.run(next_element)) + except tf.errors.OutOfRangeError: + break + ``` + + Args: + filenames: A `tf.string` tensor containing one or more filenames. + """ + super(VideoDataset, self).__init__() + self._filenames = ops.convert_to_tensor( + filenames, dtype=dtypes.string, name="filenames") + + def _as_variant_tensor(self): + return video_ops.video_dataset(self._filenames) + + @property + def output_classes(self): + return ops.Tensor + + @property + def output_shapes(self): + return (tensor_shape.TensorShape([None, None, 3])) + + @property + def output_types(self): + return dtypes.uint8 From fdf7499bb4efadbc7ed98fc0c500db8f7a5b14e4 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Sun, 16 Dec 2018 17:31:13 +0000 Subject: [PATCH 03/19] Add test case for video.VideoDataset Signed-off-by: Yong Tang --- .../python/kernel_tests/testdata/small.mp4 | Bin 0 -> 383631 bytes .../video/python/kernel_tests/video_test.py | 60 ++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 tensorflow_io/video/python/kernel_tests/testdata/small.mp4 create mode 100644 tensorflow_io/video/python/kernel_tests/video_test.py diff --git a/tensorflow_io/video/python/kernel_tests/testdata/small.mp4 b/tensorflow_io/video/python/kernel_tests/testdata/small.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..1fc478842f51e7519866f474a02ad605235bc6a6 GIT binary patch literal 383631 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

&2HkSF3%@nLp98uSM#+_3HLXY45tTW~cO4{M)U1 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 ez&_3$| z6E*6Afn#aXyEGHKw8!-f80DR^c>p8{VC3s~Nwpp*KTffDy#j*yBv-3fGQ-3ks^ki8 znrUX1wBQ;UMGjgqm0hn2))1)Hitzb)LgqxhL3w(N>JfUuqDy=8hJq6VOwTX)AHi?d z%zDoo--ARyq9Ap={GY`iU#2NhC2n#bWt{sHS;kOtN^H?SS?w&{Zq>czzoOBLzfa7H zUc1@ve0_LeYt4%CTPE>&wqwp(NcQSSOSlA}`~Xus+e>=@E@AzuJ0%bIBpT_dCE4vf z`6yw7_;Vc#{vjOA2xZUDS43g4G<_JG^8)+lFYajFHCDRYiF>ApV>=t|Sydj1UxH&c zEL!Sw1_-A`2E)d6MR(&$gZD8$k^B2l5g+0ahu)0n2C|SmwwE49U-IiJEWe`WeTkcv z;Ty(reJqY5RcV-B@n=qHG2}Xvx7pj3=`fnnZyYCv$<>ZX!QyYUC*k@ zRS-cokR7JhryR>|zgIYabp~s-Gg_zIglP~ALT}9jwe6h3xLjnW*u;Z>(&>0l918=I zV_GJyLBNT>YoT9dumQkp`pi9!#fU@cEKUWTWtB9ch@|2vQVH0+_c(K#4obn2Q4?O~ zjJDQ{N2I$;Z+I?@ z1PlFFnQW;L;~Ho|Ng_hiVoH4B{c%%h?w8jV#AI4-63HIpmyI={;NwpS#+6N^jXMR# zhPfON$PF@jhfL}Fhu_u>+F7i;0B7UxiMcp&pM+3m1IH)yz#r^{=SsJ70Qhc>0+^~e zp^JUM%;^=!uCUlba31O4JmRZBKL$|~pxXJ{;fn*r0U%~4 zHjoND_JvdkQNrUtIYK>EI|$eL3LxXUBta5lA~;PhzMlQzy$k~w@4JGZLE zuo^{j5u`aQ%eN4_1YDmCFa;Zv(M-z?sclf|q!|{7Pl#ZI5)Ceo%+Btf86e|H_*y!h z;%V*S1j2kI4X-3veUR-!;o=$xs2TzunX+bh9GEVI3>3P?wy>e`v8Au+-$qmr!-FcV zi+}}Cv;h6LP+}hb}xQ%HB@oEV))6T2+gf!{YY8@J2E2bsm2=2i2a`E>IdsY^RwXn<-n-}Pi-^YDy`EF;QTq%~CWJ5ijC!j)s-MV#`PoovPk#}MQ9 zCk7sd%psv^tsx)kQ{cvnuyImMZcRLJq6gN?Sd*i5Q`(=; zR?O$PLAi(#wZ`3ny~a679#bCf7%`AhUpsyXUMAf*Jg!B|z&5l<-{O<9P_fPZFmCB5 z1h}7L-ML%6u95>CbgFvBt;-^CVhm^yNPTsqvWcfZcA}jEr*(1y&NlU7!UT_xi{8f<{>F_H< zO4__)&Vkiy&QTB}D6tS3m_sU1Sg8aQ#xILN=mtVWm5G5@b*XqpFtf9pEX}5`h!=fD z`537=!7Pn{uZKxyDgBR)IfC=r(=gN`Lkzelzwp&slzS0>u!TuOiat)CBooM>K|c$$ zBnU|z2>jaIcv2+BwVj7*wXoI6PyvUacC)&?y8E|V@#=l2)OeAB0F9&C*mo?Pi^A=u@97oy9Y!@U}qM)C+CSE$C^ z4MQ_;I#3s>YV9LrxWMfss0Wu8cS-=156UUKwRcb1xE4E_YHBQ%yN~RQc0!w{hti9- zWV@BO(>PI4ziB;_Pcurs+#F&R8H!jIQDc1ⅈD+8&b)((iczYqzfVNSIqPg)QL}T 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 literal 0 HcmV?d00001 diff --git a/tensorflow_io/video/python/kernel_tests/video_test.py b/tensorflow_io/video/python/kernel_tests/video_test.py new file mode 100644 index 000000000..e969203b0 --- /dev/null +++ b/tensorflow_io/video/python/kernel_tests/video_test.py @@ -0,0 +1,60 @@ +# Copyright 2018 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +# ============================================================================== +"""Tests for VideoDataset.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import os + +from tensorflow.python.platform import test + +from tensorflow_io.video.python.ops import video_dataset_ops +from tensorflow.python.framework import constant_op +from tensorflow.python.framework import dtypes +from tensorflow.python.framework import errors +from tensorflow.python.ops import image_ops +from tensorflow.python.platform import resource_loader + + +class VideoDatasetTest(test.TestCase): + + def test_video_dataset(self): + """Test case for VideoDataset.""" + filename = os.path.join(resource_loader.get_data_files_path(), + "testdata", "small.mp4") + + filenames = constant_op.constant([filename], dtypes.string) + num_repeats = 2 + + dataset = video_dataset_ops.VideoDataset(filenames).repeat( + num_repeats) + iterator = dataset.make_initializable_iterator() + init_op = iterator.initializer + get_next = iterator.get_next() + + with self.cached_session() as sess: + sess.run(init_op) + for _ in range(num_repeats): # Dataset is repeated. + for _ in range(166): # 166 frames + v = sess.run(get_next) + self.assertAllEqual(v.shape, (320, 560, 3)) + with self.assertRaises(errors.OutOfRangeError): + sess.run(get_next) + + +if __name__ == "__main__": + test.main() From cd224177ddcc1b03cc6067cbcc1885c685f12078 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Sun, 16 Dec 2018 17:31:57 +0000 Subject: [PATCH 04/19] Add BUILD file for tensorflow_io.video Signed-off-by: Yong Tang --- tensorflow_io/video/BUILD | 62 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 tensorflow_io/video/BUILD diff --git a/tensorflow_io/video/BUILD b/tensorflow_io/video/BUILD new file mode 100644 index 000000000..4d42bba75 --- /dev/null +++ b/tensorflow_io/video/BUILD @@ -0,0 +1,62 @@ +licenses(["notice"]) # Apache 2.0 + +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "test_data", + srcs = glob(["python/kernel_tests/testdata/*"]), +) + +cc_binary( + name = 'python/ops/_video_ops.so', + srcs = [ + "kernels/video_dataset_ops.cc", + "ops/dataset_ops.cc", + ], + linkshared = 1, + deps = [ + "@local_config_tf//:libtensorflow_framework", + "@local_config_tf//:tf_header_lib", + "@ffmpeg//:ffmpeg", + ], + copts = ["-pthread", "-std=c++11", "-D_GLIBCXX_USE_CXX11_ABI=0", "-DNDEBUG"] +) + +py_library( + name = "video_ops_py", + srcs = ([ + "python/ops/video_dataset_ops.py", + ]), + data = [ + ":python/ops/_video_ops.so" + ], + srcs_version = "PY2AND3", +) + +py_test( + name = "video_py_test", + srcs = [ + "python/kernel_tests/video_test.py" + ], + main = "python/kernel_tests/video_test.py", + data = [ + ":test_data", + ], + deps = [ + ":video_ops_py", + ], + srcs_version = "PY2AND3", +) + +py_library( + name = "video_py", + srcs = ([ + "__init__.py", + "python/__init__.py", + "python/ops/__init__.py", + ]), + deps = [ + ":video_ops_py" + ], + srcs_version = "PY2AND3", +) From 6dcdaa5538dde412112397c911be7898a0ff0d8a Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Sun, 16 Dec 2018 17:32:37 +0000 Subject: [PATCH 05/19] Add ffmpeg n3.4.4 dependency Signed-off-by: Yong Tang --- WORKSPACE | 11 +++++++ third_party/ffmpeg.BUILD | 67 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 third_party/ffmpeg.BUILD diff --git a/WORKSPACE b/WORKSPACE index 9f87b34d2..998048cfb 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -144,3 +144,14 @@ http_archive( sha256 = "12a13686cab7ffaf8ea01711b8f55e1dbd3bf059b7c46a25fefa1250bdd9dd23", strip_prefix = "flatbuffers-b99332efd732e6faf60bb7ce1ce5902ed65d5ba3", ) + +http_archive( + name = "ffmpeg", + urls = [ + "https://mirror.bazel.build/github.com/FFmpeg/FFmpeg/archive/n3.4.4.tar.gz", + "https://github.com/FFmpeg/FFmpeg/archive/n3.4.4.tar.gz", + ], + sha256 = "bbccc87cd031498728bcc2dba5596a47e6fd92b2cec060a71feef65617a261fe", + strip_prefix = "FFmpeg-n3.4.4", + build_file = "//third_party:ffmpeg.BUILD", +) diff --git a/third_party/ffmpeg.BUILD b/third_party/ffmpeg.BUILD new file mode 100644 index 000000000..d9b94f1e1 --- /dev/null +++ b/third_party/ffmpeg.BUILD @@ -0,0 +1,67 @@ +# Description: +# FFmpeg + +licenses(["notice"]) # LGPL v2.1+ license + +exports_files(["LICENSE.md"]) + +cc_library( + name = "ffmpeg", + srcs = [ + ], + hdrs = [ + "libavformat/avformat.h", + "libavformat/avio.h", + "libavformat/version.h", + "libavcodec/version.h", + "libavcodec/avcodec.h", + "libavutil/avconfig.h", + "libavutil/samplefmt.h", + "libavutil/avutil.h", + "libavutil/common.h", + "libavutil/attributes.h", + "libavutil/macros.h", + "libavutil/version.h", + "libavutil/mem.h", + "libavutil/error.h", + "libavutil/rational.h", + "libavutil/mathematics.h", + "libavutil/intfloat.h", + "libavutil/log.h", + "libavutil/pixfmt.h", + "libavutil/buffer.h", + "libavutil/cpu.h", + "libavutil/channel_layout.h", + "libavutil/dict.h", + "libavutil/frame.h", + "libavutil/imgutils.h", + "libavutil/pixdesc.h", + "libswscale/swscale.h", + "libswscale/version.h", + ], + copts = [], + defines = [], + includes = [], + linkopts = [ + "-l:libavformat.so.57", + "-l:libavcodec.so.57", + "-l:libavutil.so.55", + "-l:libswscale.so.4", + ], + visibility = ["//visibility:public"], + deps = [], +) + +genrule( + name = "libavutil_avconfig_h", + outs = ["libavutil/avconfig.h"], + cmd = "\n".join([ + "cat <<'EOF' >$@", + "#ifndef AVUTIL_AVCONFIG_H", + "#define AVUTIL_AVCONFIG_H", + "#define AV_HAVE_BIGENDIAN 0", + "#define AV_HAVE_FAST_UNALIGNED 1", + "#endif /* AVUTIL_AVCONFIG_H */", + "EOF", + ]), +) From 15b2c43e4a50ca42f268f2b01d915241bf644776 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Sun, 16 Dec 2018 17:33:06 +0000 Subject: [PATCH 06/19] Update BUILD file to include video.VideoDataset Signed-off-by: Yong Tang --- BUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/BUILD b/BUILD index bfefd0988..765d56619 100644 --- a/BUILD +++ b/BUILD @@ -13,5 +13,6 @@ sh_binary( "//tensorflow_io/parquet:parquet_py", "//tensorflow_io/libsvm:libsvm_py", "//tensorflow_io/image:image_py", + "//tensorflow_io/video:video_py", ], ) From 1df47e21d33906ca7af26bf56b3705a3b34df38b Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Mon, 17 Dec 2018 19:32:45 +0000 Subject: [PATCH 07/19] Disable -//tensorflow_io/video:video_py_test test on Ubuntu 14.04 Signed-off-by: Yong Tang --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1e805dd53..bc607e5d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,14 +21,14 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - language: python python: - 3.4 before_install: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh script: - - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - language: python python: - 3.5 @@ -36,7 +36,7 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - language: python python: - 3.6 @@ -44,7 +44,7 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - language: r r: - 3.2 From 738b8ea8481055fe548cff5bfb915cefd8c42179 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Mon, 17 Dec 2018 20:54:26 +0000 Subject: [PATCH 08/19] Update ffmpeg to use stub .so files So that build could always succeed. In runtime system .so files will be used. Signed-off-by: Yong Tang --- third_party/ffmpeg.BUILD | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/third_party/ffmpeg.BUILD b/third_party/ffmpeg.BUILD index d9b94f1e1..35a5e65d2 100644 --- a/third_party/ffmpeg.BUILD +++ b/third_party/ffmpeg.BUILD @@ -43,6 +43,7 @@ cc_library( defines = [], includes = [], linkopts = [ + "-L$(GENDIR)/external/ffmpeg", "-l:libavformat.so.57", "-l:libavcodec.so.57", "-l:libavutil.so.55", @@ -50,6 +51,39 @@ cc_library( ], visibility = ["//visibility:public"], deps = [], + data = [ + "libavformat.so.57", + "libavcodec.so.57", + "libavutil.so.55", + "libswscale.so.4", + ], +) + +# Stab library files for build to be successful +# even when those files are not installed (e.g., Ubuntu 14.04) +# In runtime (e.g., Ubuntu 18.04) system files will be used. +genrule( + name = "libavformat_so_57", + outs = ["libavformat.so.57"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libavcodec_so_57", + outs = ["libavcodec.so.57"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libavutil_so_55", + outs = ["libavutil.so.55"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libswscale_so_4", + outs = ["libswscale.so.4"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", ) genrule( From d218d35f26047250f35824abb8e0cd916b24279b Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 04:32:16 +0000 Subject: [PATCH 09/19] Add Travis CI for Ubuntu 18.04, use `docker run` as Travis does not have Ubuntu 18.04 support directly. Signed-off-by: Yong Tang --- .travis.yml | 24 ++++++++++++++++++------ .travis/python.ubuntu.18.04.sh | 20 ++++++++++++++++++++ configure.sh | 2 +- 3 files changed, 39 insertions(+), 7 deletions(-) create mode 100755 .travis/python.ubuntu.18.04.sh diff --git a/.travis.yml b/.travis.yml index bc607e5d4..d4391b2e3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,8 @@ before_script: matrix: include: - - language: python + - name: "Ubuntu 14.04 Python 2.7" + language: python python: - 2.7 before_install: @@ -22,14 +23,16 @@ matrix: - pip install pyarrow==0.11.1 script: - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - - language: python + - name: "Ubuntu 14.04 Python 3.4" + language: python python: - 3.4 before_install: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh script: - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - - language: python + - name: "Ubuntu 14.04 Python 3.5" + language: python python: - 3.5 before_install: @@ -37,7 +40,8 @@ matrix: - pip install pyarrow==0.11.1 script: - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - - language: python + - name: "Ubuntu 14.04 Python 3.6" + language: python python: - 3.6 before_install: @@ -45,14 +49,22 @@ matrix: - pip install pyarrow==0.11.1 script: - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - - language: r + - name: "Ubuntu 18.04 Python 2.7" + script: + - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" + - name: "Ubuntu 18.04 Python 3.6" + script: + - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" + - name: "Ubuntu 14.04 R 3.2" + language: r r: - 3.2 before_install: - cd R-package script: - R -e "devtools::test()" - - language: r + - name: "Ubuntu 14.04 R 3.5" + language: r r: - 3.5 before_install: diff --git a/.travis/python.ubuntu.18.04.sh b/.travis/python.ubuntu.18.04.sh new file mode 100755 index 000000000..c49833648 --- /dev/null +++ b/.travis/python.ubuntu.18.04.sh @@ -0,0 +1,20 @@ +set -x -e + +# Test on Travis inside Ubuntu18.04 docker image +apt-get -y -qq update +apt-get -y -qq install python${PYTHON_VERSION}-pip curl wget unzip make +if [[ "" != "${PYTHON_VERSION}" ]]; then + ln -s /usr/bin/python${PYTHON_VERSION} /usr/bin/python + ln -s /usr/bin/pip${PYTHON_VERSION} /usr/bin/pip +fi +# Show gcc and python version in Travis CI +gcc -v +python --version +# Install bazel +URL="https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-${BAZEL_OS}-x86_64.sh" +wget -O install.sh "${URL}" +chmod +x install.sh +./install.sh +rm -f install.sh +# Configure TensorFlow +./configure.sh diff --git a/configure.sh b/configure.sh index 45e8f4e56..5c95dd22a 100755 --- a/configure.sh +++ b/configure.sh @@ -21,7 +21,7 @@ function write_action_env_to_bazelrc() { write_to_bazelrc "build --action_env $1=\"$2\"" } -rm .bazelrc +rm -f .bazelrc if python -c "import tensorflow" &> /dev/null; then echo 'using installed tensorflow' else From a53ddf69656d9be361ea0d5a9d332e75b5f51a0c Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 14:12:41 +0000 Subject: [PATCH 10/19] Disable sandboxed mode in bazel and use --spawn_strategy standalone Encountered quite some issues with ``` Use --sandbox_debug to see verbose messages from the sandbox /usr/bin/ld.gold: error: cannot find libavformat.so.57 /usr/bin/ld.gold: error: cannot find libavcodec.so.57 /usr/bin/ld.gold: error: cannot find libavutil.so.55 /usr/bin/ld.gold: error: cannot find libswscale.so.4 collect2: error: ld returned 1 exit status Target //tensorflow_io/video:video_py_test failed to build ``` Believe it is related to (or similiar): https://stackoverflow.com/questions/52386530/linker-fails-in-sandbox-when-running-through-bazel-but-works-when-sandboxed-comm?rq=1 Signed-off-by: Yong Tang --- .travis.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index d4391b2e3..186d19c9e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - name: "Ubuntu 14.04 Python 3.4" language: python python: @@ -30,7 +30,7 @@ matrix: before_install: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh script: - - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - name: "Ubuntu 14.04 Python 3.5" language: python python: @@ -39,7 +39,7 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - name: "Ubuntu 14.04 Python 3.6" language: python python: @@ -48,13 +48,13 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - name: "Ubuntu 18.04 Python 2.7" script: - - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" + - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" - name: "Ubuntu 18.04 Python 3.6" script: - - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" + - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" - name: "Ubuntu 14.04 R 3.2" language: r r: From 29bb7dca847dd84a3fd76be05b38ca2fadd5c6fb Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 14:31:14 +0000 Subject: [PATCH 11/19] Use python as base vm image for Travis CI Ubuntu 18.04 (By default Travis CI uses Ruby) Signed-off-by: Yong Tang --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index 186d19c9e..5547a1718 100644 --- a/.travis.yml +++ b/.travis.yml @@ -50,9 +50,15 @@ matrix: script: - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - name: "Ubuntu 18.04 Python 2.7" + language: python + python: + - 2.7 script: - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" - name: "Ubuntu 18.04 Python 3.6" + language: python + python: + - 3.6 script: - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" - name: "Ubuntu 14.04 R 3.2" From f26e4ee60ee0f2b795309d555eb7e6f4dc698ad7 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 16:50:39 +0000 Subject: [PATCH 12/19] Only Enable Video on Travis CI for Ubuntu 18.04, as it is inside container Signed-off-by: Yong Tang --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5547a1718..82d9ec29e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,18 +49,18 @@ matrix: - pip install pyarrow==0.11.1 script: - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test - - name: "Ubuntu 18.04 Python 2.7" + - name: "Ubuntu 18.04 Python 2.7 (Video Only)" language: python python: - 2.7 script: - - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" - - name: "Ubuntu 18.04 Python 3.6" + - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/video:all" + - name: "Ubuntu 18.04 Python 3.6 (Video Only)" language: python python: - 3.6 script: - - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/... -//tensorflow_io/ignite:ignite_py_test" + - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/video:all" - name: "Ubuntu 14.04 R 3.2" language: r r: From a113c69b4265b69afcbc2eb5e4351e9c1078a4a2 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 16:51:27 +0000 Subject: [PATCH 13/19] Add Ubuntu 16.04 support, by build separate so with ffmpeg 2.8 Signed-off-by: Yong Tang --- WORKSPACE | 15 +- tensorflow_io/video/BUILD | 28 ++- tensorflow_io/video/kernels/ffmpeg_2_8.cc | 164 +++++++++++++++++ tensorflow_io/video/kernels/ffmpeg_3_4.cc | 167 ++++++++++++++++++ .../video/kernels/video_dataset_ops.cc | 163 +---------------- tensorflow_io/video/kernels/video_reader.h | 66 +++++++ .../video/python/ops/video_dataset_ops.py | 15 +- third_party/ffmpeg_2_8.BUILD | 103 +++++++++++ .../{ffmpeg.BUILD => ffmpeg_3_4.BUILD} | 2 +- 9 files changed, 555 insertions(+), 168 deletions(-) create mode 100644 tensorflow_io/video/kernels/ffmpeg_2_8.cc create mode 100644 tensorflow_io/video/kernels/ffmpeg_3_4.cc create mode 100644 tensorflow_io/video/kernels/video_reader.h create mode 100644 third_party/ffmpeg_2_8.BUILD rename third_party/{ffmpeg.BUILD => ffmpeg_3_4.BUILD} (98%) diff --git a/WORKSPACE b/WORKSPACE index 998048cfb..d5f9ec4c5 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -146,12 +146,23 @@ http_archive( ) http_archive( - name = "ffmpeg", + name = "ffmpeg_2_8", + urls = [ + "https://mirror.bazel.build/github.com/FFmpeg/FFmpeg/archive/n2.8.15.tar.gz", + "https://github.com/FFmpeg/FFmpeg/archive/n2.8.15.tar.gz", + ], + sha256 = "8ba1b91a14431fe37091936c3a34469d7473965ab9edde0343c88f2d920bd918", + strip_prefix = "FFmpeg-n2.8.15", + build_file = "//third_party:ffmpeg_2_8.BUILD", +) + +http_archive( + name = "ffmpeg_3_4", urls = [ "https://mirror.bazel.build/github.com/FFmpeg/FFmpeg/archive/n3.4.4.tar.gz", "https://github.com/FFmpeg/FFmpeg/archive/n3.4.4.tar.gz", ], sha256 = "bbccc87cd031498728bcc2dba5596a47e6fd92b2cec060a71feef65617a261fe", strip_prefix = "FFmpeg-n3.4.4", - build_file = "//third_party:ffmpeg.BUILD", + build_file = "//third_party:ffmpeg_3_4.BUILD", ) diff --git a/tensorflow_io/video/BUILD b/tensorflow_io/video/BUILD index 4d42bba75..98af14251 100644 --- a/tensorflow_io/video/BUILD +++ b/tensorflow_io/video/BUILD @@ -8,16 +8,37 @@ filegroup( ) cc_binary( - name = 'python/ops/_video_ops.so', + name = 'python/ops/_video_ops_ffmpeg_3.4.so', srcs = [ + "kernels/ffmpeg_3_4.cc", + "kernels/video_reader.h", "kernels/video_dataset_ops.cc", "ops/dataset_ops.cc", ], + includes = ["."], linkshared = 1, deps = [ "@local_config_tf//:libtensorflow_framework", "@local_config_tf//:tf_header_lib", - "@ffmpeg//:ffmpeg", + "@ffmpeg_3_4//:ffmpeg", + ], + copts = ["-pthread", "-std=c++11", "-D_GLIBCXX_USE_CXX11_ABI=0", "-DNDEBUG"] +) + +cc_binary( + name = 'python/ops/_video_ops_ffmpeg_2.8.so', + srcs = [ + "kernels/ffmpeg_2_8.cc", + "kernels/video_reader.h", + "kernels/video_dataset_ops.cc", + "ops/dataset_ops.cc", + ], + includes = ["."], + linkshared = 1, + deps = [ + "@local_config_tf//:libtensorflow_framework", + "@local_config_tf//:tf_header_lib", + "@ffmpeg_2_8//:ffmpeg", ], copts = ["-pthread", "-std=c++11", "-D_GLIBCXX_USE_CXX11_ABI=0", "-DNDEBUG"] ) @@ -28,7 +49,8 @@ py_library( "python/ops/video_dataset_ops.py", ]), data = [ - ":python/ops/_video_ops.so" + ":python/ops/_video_ops_ffmpeg_3.4.so", + ":python/ops/_video_ops_ffmpeg_2.8.so", ], srcs_version = "PY2AND3", ) diff --git a/tensorflow_io/video/kernels/ffmpeg_2_8.cc b/tensorflow_io/video/kernels/ffmpeg_2_8.cc new file mode 100644 index 000000000..385a54d29 --- /dev/null +++ b/tensorflow_io/video/kernels/ffmpeg_2_8.cc @@ -0,0 +1,164 @@ +/* Copyright 2018 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/core/framework/dataset.h" +#include "tensorflow/core/lib/io/buffered_inputstream.h" +#include "tensorflow/core/platform/file_system.h" + + +extern "C" { + +#include "libavcodec/avcodec.h" +#include "libavformat/avformat.h" +#include "libavutil/imgutils.h" +#include "libswscale/swscale.h" +#include + +} + +#include "kernels/video_reader.h" + +namespace tensorflow { +namespace data { +namespace video { + +Status VideoReader::ReadHeader() +{ + // Open input file, and allocate format context + if (avformat_open_input(&format_context_, filename_.c_str(), NULL, NULL) < 0) { + return errors::InvalidArgument("could not open video file: ", filename_); + } + // Retrieve stream information + if (avformat_find_stream_info(format_context_, NULL) < 0) { + return errors::InvalidArgument("could not find stream information: ", filename_); + } + // Find video stream + if ((stream_index_ = av_find_best_stream(format_context_, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0)) < 0) { + return errors::InvalidArgument("could not find video stream: ", filename_); + } + + AVStream *video_stream = format_context_->streams[stream_index_]; + codec_context_ = video_stream->codec; + // Find decoder for the stream + AVCodec *codec = avcodec_find_decoder(codec_context_->codec_id); + if (!codec) { + return errors::Internal("could not find video codec: ", codec_context_->codec_id); + } + // Initialize the decoders + // TODO (yongtang): avcodec_open2 is not thread-safe + AVDictionary *opts = NULL; + if (avcodec_open2(codec_context_, codec, &opts) < 0) { + return errors::Internal("could not open codec"); + } + + // Allocate frame + frame_ = av_frame_alloc(); + if (!frame_) { + return errors::Internal("could not allocate frame"); + } + + // Initialize packet + av_init_packet(&packet_); + packet_.data = NULL; + packet_.size = 0; + + // create scaling context + sws_context_ = sws_getContext(codec_context_->width, codec_context_->height, codec_context_->pix_fmt, codec_context_->width, codec_context_->height, AV_PIX_FMT_RGB24, 0, NULL, NULL, NULL); + if (!sws_context_) { + return errors::Internal("could not allocate sws context"); + } + frame_rgb_ = av_frame_alloc(); + if (!frame_rgb_) { + return errors::Internal("could not allocate rgb frame"); + } + // Determine required buffer size and allocate buffer + num_bytes_ = av_image_get_buffer_size(AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height, 1); + buffer_rgb_ = (uint8_t *)av_malloc(num_bytes_ * sizeof(uint8_t)); + avpicture_fill((AVPicture *)frame_rgb_, buffer_rgb_, AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height); + + frame_more_ = true; + packet_more_ = false; + buffer_more_ = ReadAhead(true); + + return Status::OK(); + } + +bool VideoReader::ReadAhead(bool first) +{ + while (packet_more_ || frame_more_) { + while (packet_more_) { + packet_more_ = false; + if (packet_.stream_index == stream_index_) { + int got_frame = 0; + int decoded = avcodec_decode_video2(codec_context_, frame_, &got_frame, &packet_); + if (!frame_more_ && got_frame) { + // This is the cached packet. + sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); + packet_more_ = true; + return true; + } + if (decoded >= 0 && got_frame) { + sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); + if (packet_.data) { + packet_.data += decoded; + packet_.size -= decoded; + packet_more_ = (packet_.size > 0); + } + return true; + } + } + } + if (frame_more_) { + // If this is not the first time, unref the packet + av_packet_unref(&packet_); + frame_more_ = (av_read_frame(format_context_, &packet_) == 0); + if (!frame_more_) { + // Flush out the cached packet + packet_more_ = true; + packet_.data = NULL; + packet_.size = 0; + } else { + // More packet to process + packet_more_ = true; + } + } + } + return false; + } + +Status VideoReader::ReadFrame(int *num_bytes, uint8_t**value, int *height, int *width) +{ + *height = codec_context_->height; + *width = codec_context_->width; + *num_bytes = num_bytes_; + if (buffer_more_) { + *value = buffer_rgb_; + buffer_more_ = ReadAhead(true); + return Status::OK(); + } + return errors::OutOfRange("EOF"); +} + +VideoReader::~VideoReader() { + av_free(buffer_rgb_); + av_frame_free(&frame_rgb_); + sws_freeContext(sws_context_); + av_frame_free(&frame_); + avformat_close_input(&format_context_); +} + +} // namespace +} // namespace data +} // namespace tensorflow diff --git a/tensorflow_io/video/kernels/ffmpeg_3_4.cc b/tensorflow_io/video/kernels/ffmpeg_3_4.cc new file mode 100644 index 000000000..5bfb827ce --- /dev/null +++ b/tensorflow_io/video/kernels/ffmpeg_3_4.cc @@ -0,0 +1,167 @@ +/* Copyright 2018 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/core/framework/dataset.h" +#include "tensorflow/core/lib/io/buffered_inputstream.h" +#include "tensorflow/core/platform/file_system.h" + + +extern "C" { + +#include "libavcodec/avcodec.h" +#include "libavformat/avformat.h" +#include "libavutil/imgutils.h" +#include "libswscale/swscale.h" +#include + +} + +#include "kernels/video_reader.h" + +namespace tensorflow { +namespace data { +namespace video { + +Status VideoReader::ReadHeader() +{ + // Open input file, and allocate format context + if (avformat_open_input(&format_context_, filename_.c_str(), NULL, NULL) < 0) { + return errors::InvalidArgument("could not open video file: ", filename_); + } + // Retrieve stream information + if (avformat_find_stream_info(format_context_, NULL) < 0) { + return errors::InvalidArgument("could not find stream information: ", filename_); + } + // Find video stream + if ((stream_index_ = av_find_best_stream(format_context_, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0)) < 0) { + return errors::InvalidArgument("could not find video stream: ", filename_); + } + + AVStream *video_stream = format_context_->streams[stream_index_]; + // Find decoder for the stream + AVCodec *codec = avcodec_find_decoder(video_stream->codecpar->codec_id); + if (!codec) { + return errors::Internal("could not find video codec: ", video_stream->codecpar->codec_id); + } + // Allocate a codec context for the decoder + codec_context_ = avcodec_alloc_context3(codec); + if (!codec_context_) { + return errors::Internal("could not allocate codec context"); + } + // Copy codec parameters from input stream to output codec context + if (avcodec_parameters_to_context(codec_context_, video_stream->codecpar) < 0) { + return errors::Internal("could not copy codec parameters from input stream to output codec context"); + } + // Initialize the decoders + // TODO (yongtang): avcodec_open2 is not thread-safe + AVDictionary *opts = NULL; + if (avcodec_open2(codec_context_, codec, &opts) < 0) { + return errors::Internal("could not open codec"); + } + + // Allocate frame + frame_ = av_frame_alloc(); + if (!frame_) { + return errors::Internal("could not allocate frame"); + } + + // Initialize packet + av_init_packet(&packet_); + packet_.data = NULL; + packet_.size = 0; + + // create scaling context + sws_context_ = sws_getContext(codec_context_->width, codec_context_->height, codec_context_->pix_fmt, codec_context_->width, codec_context_->height, AV_PIX_FMT_RGB24, 0, NULL, NULL, NULL); + if (!sws_context_) { + return errors::Internal("could not allocate sws context"); + } + frame_rgb_ = av_frame_alloc(); + if (!frame_rgb_) { + return errors::Internal("could not allocate rgb frame"); + } + // Determine required buffer size and allocate buffer + num_bytes_ = av_image_get_buffer_size(AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height, 1); + buffer_rgb_ = (uint8_t *)av_malloc(num_bytes_ * sizeof(uint8_t)); + avpicture_fill((AVPicture *)frame_rgb_, buffer_rgb_, AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height); + + frame_more_ = true; + packet_more_ = false; + buffer_more_ = ReadAhead(true); + + return Status::OK(); + } + +bool VideoReader::ReadAhead(bool first) +{ + while (packet_more_ || frame_more_) { + while (packet_more_) { + packet_more_ = false; + if (packet_.stream_index == stream_index_) { + int got_frame = 0; + int decoded = avcodec_decode_video2(codec_context_, frame_, &got_frame, &packet_); + if (decoded >= 0 && got_frame) { + sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); + if (packet_.data) { + packet_.data += decoded; + packet_.size -= decoded; + packet_more_ = (packet_.size > 0); + } + return true; + } + } + } + if (frame_more_) { + // If this is not the first time, unref the packet + av_packet_unref(&packet_); + frame_more_ = (av_read_frame(format_context_, &packet_) == 0); + if (!frame_more_) { + // Flush out the cached packet + packet_more_ = true; + packet_.data = NULL; + packet_.size = 0; + } else { + // More packet to process + packet_more_ = true; + } + } + } + return false; + } + +Status VideoReader::ReadFrame(int *num_bytes, uint8_t**value, int *height, int *width) +{ + *height = codec_context_->height; + *width = codec_context_->width; + *num_bytes = num_bytes_; + if (buffer_more_) { + *value = buffer_rgb_; + buffer_more_ = ReadAhead(true); + return Status::OK(); + } + return errors::OutOfRange("EOF"); +} + +VideoReader::~VideoReader() { + av_free(buffer_rgb_); + av_frame_free(&frame_rgb_); + sws_freeContext(sws_context_); + av_frame_free(&frame_); + avcodec_free_context(&codec_context_); + avformat_close_input(&format_context_); +} + +} // namespace +} // namespace data +} // namespace tensorflow diff --git a/tensorflow_io/video/kernels/video_dataset_ops.cc b/tensorflow_io/video/kernels/video_dataset_ops.cc index e4c6d1d88..9d6852aa8 100644 --- a/tensorflow_io/video/kernels/video_dataset_ops.cc +++ b/tensorflow_io/video/kernels/video_dataset_ops.cc @@ -16,169 +16,12 @@ limitations under the License. #include "tensorflow/core/framework/dataset.h" #include "tensorflow/core/lib/io/buffered_inputstream.h" #include "tensorflow/core/platform/file_system.h" - -extern "C" { - -#include "libavcodec/avcodec.h" -#include "libavformat/avformat.h" -#include "libavutil/imgutils.h" -#include "libswscale/swscale.h" -#include - -} +#include "kernels/video_reader.h" namespace tensorflow { namespace data { namespace { -class VideoReader { - public: - explicit VideoReader(const string &filename) - : filename_(filename) {} - - Status ReadHeader() { - // Open input file, and allocate format context - if (avformat_open_input(&format_context_, filename_.c_str(), NULL, NULL) < 0) { - return errors::InvalidArgument("could not open video file: ", filename_); - } - // Retrieve stream information - if (avformat_find_stream_info(format_context_, NULL) < 0) { - return errors::InvalidArgument("could not find stream information: ", filename_); - } - // Find video stream - if ((stream_index_ = av_find_best_stream(format_context_, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0)) < 0) { - return errors::InvalidArgument("could not find video stream: ", filename_); - } - - AVStream *video_stream = format_context_->streams[stream_index_]; - // Find decoder for the stream - AVCodec *codec = avcodec_find_decoder(video_stream->codecpar->codec_id); - if (!codec) { - return errors::Internal("could not find video codec: ", video_stream->codecpar->codec_id); - } - // Allocate a codec context for the decoder - codec_context_ = avcodec_alloc_context3(codec); - if (!codec_context_) { - return errors::Internal("could not allocate codec context"); - } - // Copy codec parameters from input stream to output codec context - if (avcodec_parameters_to_context(codec_context_, video_stream->codecpar) < 0) { - return errors::Internal("could not copy codec parameters from input stream to output codec context"); - } - // Initialize the decoders - // TODO (yongtang): avcodec_open2 is not thread-safe - AVDictionary *opts = NULL; - if (avcodec_open2(codec_context_, codec, &opts) < 0) { - return errors::Internal("could not open codec"); - } - - // Allocate frame - frame_ = av_frame_alloc(); - if (!frame_) { - return errors::Internal("could not allocate frame"); - } - - // Initialize packet - av_init_packet(&packet_); - packet_.data = NULL; - packet_.size = 0; - - // create scaling context - sws_context_ = sws_getContext(codec_context_->width, codec_context_->height, codec_context_->pix_fmt, codec_context_->width, codec_context_->height, AV_PIX_FMT_RGB24, 0, NULL, NULL, NULL); - if (!sws_context_) { - return errors::Internal("could not allocate sws context"); - } - frame_rgb_ = av_frame_alloc(); - if (!frame_rgb_) { - return errors::Internal("could not allocate rgb frame"); - } - // Determine required buffer size and allocate buffer - num_bytes_ = av_image_get_buffer_size(AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height, 1); - buffer_rgb_ = (uint8_t *)av_malloc(num_bytes_ * sizeof(uint8_t)); - avpicture_fill((AVPicture *)frame_rgb_, buffer_rgb_, AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height); - - frame_more_ = true; - packet_more_ = false; - buffer_more_ = ReadAhead(true); - - return Status::OK(); - } - - bool ReadAhead(bool first) { - while (packet_more_ || frame_more_) { - while (packet_more_) { - packet_more_ = false; - if (packet_.stream_index == stream_index_) { - int got_frame = 0; - int decoded = avcodec_decode_video2(codec_context_, frame_, &got_frame, &packet_); - if (decoded >= 0 && got_frame) { - sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); - if (packet_.data) { - packet_.data += decoded; - packet_.size -= decoded; - packet_more_ = (packet_.size > 0); - } - return true; - } - } - } - if (frame_more_) { - // If this is not the first time, unref the packet - av_packet_unref(&packet_); - frame_more_ = (av_read_frame(format_context_, &packet_) == 0); - if (!frame_more_) { - // Flush out the cached packet - packet_more_ = true; - packet_.data = NULL; - packet_.size = 0; - } else { - // More packet to process - packet_more_ = true; - } - } - } - return false; - } - - Status ReadFrame(int *num_bytes, uint8_t**value, int *height, int *width) { - *height = codec_context_->height; - *width = codec_context_->width; - *num_bytes = num_bytes_; - if (buffer_more_) { - *value = buffer_rgb_; - buffer_more_ = ReadAhead(true); - return Status::OK(); - } - return errors::OutOfRange("EOF"); - } - - virtual ~VideoReader() { - av_free(buffer_rgb_); - av_frame_free(&frame_rgb_); - sws_freeContext(sws_context_); - av_frame_free(&frame_); - avcodec_free_context(&codec_context_); - avformat_close_input(&format_context_); - } - - private: - std::string ahead_; - std::string filename_; - bool frame_more_ = false; - bool packet_more_ = false; - bool buffer_more_ = false; - int stream_index_ = -1; - size_t num_bytes_ = 0; - uint8_t *buffer_rgb_ = 0; - AVFrame *frame_rgb_ = 0; - struct SwsContext *sws_context_ = 0; - AVFormatContext *format_context_ = 0; - AVCodecContext *codec_context_ = 0; - AVFrame *frame_ = 0; - AVPacket packet_; - TF_DISALLOW_COPY_AND_ASSIGN(VideoReader); -}; - static mutex mu(LINKER_INITIALIZED); static unsigned count(0); void VideoReaderInit() { @@ -317,7 +160,7 @@ class VideoDatasetOp : public DatasetOpKernel { // Actually move on to next file. const string& filename = dataset()->filenames_[current_file_index_]; - reader_.reset(new VideoReader(filename)); + reader_.reset(new video::VideoReader(filename)); return reader_->ReadHeader(); return Status::OK(); } @@ -329,7 +172,7 @@ class VideoDatasetOp : public DatasetOpKernel { mutex mu_; size_t current_file_index_ GUARDED_BY(mu_) = 0; - std::unique_ptr reader_ GUARDED_BY(mu_); + std::unique_ptr reader_ GUARDED_BY(mu_); }; const std::vector filenames_; diff --git a/tensorflow_io/video/kernels/video_reader.h b/tensorflow_io/video/kernels/video_reader.h new file mode 100644 index 000000000..b8059b7c0 --- /dev/null +++ b/tensorflow_io/video/kernels/video_reader.h @@ -0,0 +1,66 @@ +/* Copyright 2018 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/core/framework/dataset.h" +#include "tensorflow/core/lib/io/buffered_inputstream.h" +#include "tensorflow/core/platform/file_system.h" + +extern "C" { + +#include "libavcodec/avcodec.h" +#include "libavformat/avformat.h" +#include "libavutil/imgutils.h" +#include "libswscale/swscale.h" +#include + +} + +namespace tensorflow { +namespace data { +namespace video { + +class VideoReader { + public: + explicit VideoReader(const string &filename) : filename_(filename) {} + + Status ReadHeader(); + + bool ReadAhead(bool first); + + Status ReadFrame(int *num_bytes, uint8_t**value, int *height, int *width); + + virtual ~VideoReader(); + + private: + std::string ahead_; + std::string filename_; + bool frame_more_ = false; + bool packet_more_ = false; + bool buffer_more_ = false; + int stream_index_ = -1; + size_t num_bytes_ = 0; + uint8_t *buffer_rgb_ = 0; + AVFrame *frame_rgb_ = 0; + struct SwsContext *sws_context_ = 0; + AVFormatContext *format_context_ = 0; + AVCodecContext *codec_context_ = 0; + AVFrame *frame_ = 0; + AVPacket packet_; + TF_DISALLOW_COPY_AND_ASSIGN(VideoReader); +}; + +} // namespace +} // namespace data +} // namespace tensorflow diff --git a/tensorflow_io/video/python/ops/video_dataset_ops.py b/tensorflow_io/video/python/ops/video_dataset_ops.py index 96816b3ba..1f07785df 100644 --- a/tensorflow_io/video/python/ops/video_dataset_ops.py +++ b/tensorflow_io/video/python/ops/video_dataset_ops.py @@ -25,10 +25,21 @@ from tensorflow.python.framework import ops from tensorflow.python.framework import tensor_shape +from tensorflow.python.framework import errors_impl from tensorflow.python.framework import load_library from tensorflow.python.platform import resource_loader -video_ops = load_library.load_op_library( - resource_loader.get_path_to_datafile('_video_ops.so')) +video_ops = None +try: + video_ops = load_library.load_op_library( + resource_loader.get_path_to_datafile('_video_ops_ffmpeg_3.4.so')) +except errors_impl.NotFoundError as e: + print(e) +if video_ops is None: + try: + video_ops = load_library.load_op_library( + resource_loader.get_path_to_datafile('_video_ops_ffmpeg_2.8.so')) + except errors_impl.NotFoundError as e: + print(e) class VideoDataset(dataset_ops.DatasetSource): diff --git a/third_party/ffmpeg_2_8.BUILD b/third_party/ffmpeg_2_8.BUILD new file mode 100644 index 000000000..46e1ec24c --- /dev/null +++ b/third_party/ffmpeg_2_8.BUILD @@ -0,0 +1,103 @@ +# Description: +# FFmpeg + +licenses(["notice"]) # LGPL v2.1+ license + +exports_files(["LICENSE.md"]) + +cc_library( + name = "ffmpeg", + srcs = [ + ], + hdrs = [ + "libavformat/avformat.h", + "libavformat/avio.h", + "libavformat/version.h", + "libavcodec/version.h", + "libavcodec/avcodec.h", + "libavcodec/old_codec_ids.h", + "libavutil/avconfig.h", + "libavutil/samplefmt.h", + "libavutil/avutil.h", + "libavutil/common.h", + "libavutil/attributes.h", + "libavutil/macros.h", + "libavutil/version.h", + "libavutil/mem.h", + "libavutil/error.h", + "libavutil/rational.h", + "libavutil/mathematics.h", + "libavutil/intfloat.h", + "libavutil/log.h", + "libavutil/pixfmt.h", + "libavutil/old_pix_fmts.h", + "libavutil/buffer.h", + "libavutil/cpu.h", + "libavutil/channel_layout.h", + "libavutil/dict.h", + "libavutil/frame.h", + "libavutil/imgutils.h", + "libavutil/pixdesc.h", + "libswscale/swscale.h", + "libswscale/version.h", + ], + copts = [], + defines = [], + includes = [], + linkopts = [ + "-L$(GENDIR)/external/ffmpeg_2_8", + "-l:libavformat-ffmpeg.so.56", + "-l:libavcodec-ffmpeg.so.56", + "-l:libavutil-ffmpeg.so.54", + "-l:libswscale-ffmpeg.so.3", + ], + visibility = ["//visibility:public"], + deps = [], + data = [ + "libavformat-ffmpeg.so.56", + "libavcodec-ffmpeg.so.56", + "libavutil-ffmpeg.so.54", + "libswscale-ffmpeg.so.3", + ], +) + +# Stab library files for build to be successful +# even when those files are not installed (e.g., Ubuntu 14.04) +# In runtime (e.g., Ubuntu 18.04) system files will be used. +genrule( + name = "libavformat-ffmpeg_so_56", + outs = ["libavformat-ffmpeg.so.56"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libavcodec-ffmpeg_so_56", + outs = ["libavcodec-ffmpeg.so.56"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libavutil-ffmpeg_so_54", + outs = ["libavutil-ffmpeg.so.54"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libswscale-ffmpeg_so_3", + outs = ["libswscale-ffmpeg.so.3"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libavutil_avconfig_h", + outs = ["libavutil/avconfig.h"], + cmd = "\n".join([ + "cat <<'EOF' >$@", + "#ifndef AVUTIL_AVCONFIG_H", + "#define AVUTIL_AVCONFIG_H", + "#define AV_HAVE_BIGENDIAN 0", + "#define AV_HAVE_FAST_UNALIGNED 1", + "#endif /* AVUTIL_AVCONFIG_H */", + "EOF", + ]), +) diff --git a/third_party/ffmpeg.BUILD b/third_party/ffmpeg_3_4.BUILD similarity index 98% rename from third_party/ffmpeg.BUILD rename to third_party/ffmpeg_3_4.BUILD index 35a5e65d2..ec2b076f5 100644 --- a/third_party/ffmpeg.BUILD +++ b/third_party/ffmpeg_3_4.BUILD @@ -43,7 +43,7 @@ cc_library( defines = [], includes = [], linkopts = [ - "-L$(GENDIR)/external/ffmpeg", + "-L$(GENDIR)/external/ffmpeg_3_4", "-l:libavformat.so.57", "-l:libavcodec.so.57", "-l:libavutil.so.55", From bdb85d3822d743679256b98d1179bd389337099b Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 20:53:22 +0000 Subject: [PATCH 14/19] Fix additional issue in ffmpeg 3.4 where cached packet should just ignore error Signed-off-by: Yong Tang --- tensorflow_io/video/kernels/ffmpeg_3_4.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tensorflow_io/video/kernels/ffmpeg_3_4.cc b/tensorflow_io/video/kernels/ffmpeg_3_4.cc index 5bfb827ce..1993120dd 100644 --- a/tensorflow_io/video/kernels/ffmpeg_3_4.cc +++ b/tensorflow_io/video/kernels/ffmpeg_3_4.cc @@ -111,6 +111,12 @@ bool VideoReader::ReadAhead(bool first) if (packet_.stream_index == stream_index_) { int got_frame = 0; int decoded = avcodec_decode_video2(codec_context_, frame_, &got_frame, &packet_); + if (!frame_more_ && got_frame) { + // This is the cached packet. + sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); + packet_more_ = true; + return true; + } if (decoded >= 0 && got_frame) { sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); if (packet_.data) { From f3884ae894bb36b02c852f57cf8d32467995ff15 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 21:33:13 +0000 Subject: [PATCH 15/19] Add Ubuntu 14.04 support, with libav 9.20 built in. Signed-off-by: Yong Tang --- WORKSPACE | 11 ++ tensorflow_io/video/BUILD | 19 ++ tensorflow_io/video/kernels/libav_9_20.cc | 165 ++++++++++++++++++ .../video/python/ops/video_dataset_ops.py | 11 +- third_party/libav_9_20.BUILD | 101 +++++++++++ 5 files changed, 299 insertions(+), 8 deletions(-) create mode 100644 tensorflow_io/video/kernels/libav_9_20.cc create mode 100644 third_party/libav_9_20.BUILD diff --git a/WORKSPACE b/WORKSPACE index d5f9ec4c5..093dcb6cd 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -166,3 +166,14 @@ http_archive( strip_prefix = "FFmpeg-n3.4.4", build_file = "//third_party:ffmpeg_3_4.BUILD", ) + +http_archive( + name = "libav_9_20", + urls = [ + "https://mirror.bazel.build/github.com/libav/libav/archive/v9.20.tar.gz", + "https://github.com/libav/libav/archive/v9.20.tar.gz", + ], + sha256 = "ecc2389bc857602450196c9240e1ebc59066980f5d42e977efe0f498145775d4", + strip_prefix = "libav-9.20", + build_file = "//third_party:libav_9_20.BUILD", +) diff --git a/tensorflow_io/video/BUILD b/tensorflow_io/video/BUILD index 98af14251..6d4d76c44 100644 --- a/tensorflow_io/video/BUILD +++ b/tensorflow_io/video/BUILD @@ -43,6 +43,24 @@ cc_binary( copts = ["-pthread", "-std=c++11", "-D_GLIBCXX_USE_CXX11_ABI=0", "-DNDEBUG"] ) +cc_binary( + name = 'python/ops/_video_ops_libav_9.20.so', + srcs = [ + "kernels/libav_9_20.cc", + "kernels/video_reader.h", + "kernels/video_dataset_ops.cc", + "ops/dataset_ops.cc", + ], + includes = ["."], + linkshared = 1, + deps = [ + "@local_config_tf//:libtensorflow_framework", + "@local_config_tf//:tf_header_lib", + "@libav_9_20//:libav", + ], + copts = ["-pthread", "-std=c++11", "-D_GLIBCXX_USE_CXX11_ABI=0", "-DNDEBUG"] +) + py_library( name = "video_ops_py", srcs = ([ @@ -51,6 +69,7 @@ py_library( data = [ ":python/ops/_video_ops_ffmpeg_3.4.so", ":python/ops/_video_ops_ffmpeg_2.8.so", + ":python/ops/_video_ops_libav_9.20.so", ], srcs_version = "PY2AND3", ) diff --git a/tensorflow_io/video/kernels/libav_9_20.cc b/tensorflow_io/video/kernels/libav_9_20.cc new file mode 100644 index 000000000..5ec63dea9 --- /dev/null +++ b/tensorflow_io/video/kernels/libav_9_20.cc @@ -0,0 +1,165 @@ +/* Copyright 2018 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/core/framework/dataset.h" +#include "tensorflow/core/lib/io/buffered_inputstream.h" +#include "tensorflow/core/platform/file_system.h" + + +extern "C" { + +#include "libavcodec/avcodec.h" +#include "libavformat/avformat.h" +#include "libavutil/imgutils.h" +#include "libswscale/swscale.h" +#include + +} + +#include "kernels/video_reader.h" + +namespace tensorflow { +namespace data { +namespace video { + +Status VideoReader::ReadHeader() +{ + // Open input file, and allocate format context + if (avformat_open_input(&format_context_, filename_.c_str(), NULL, NULL) < 0) { + return errors::InvalidArgument("could not open video file: ", filename_); + } + // Retrieve stream information + if (avformat_find_stream_info(format_context_, NULL) < 0) { + return errors::InvalidArgument("could not find stream information: ", filename_); + } + // Find video stream + if ((stream_index_ = av_find_best_stream(format_context_, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0)) < 0) { + return errors::InvalidArgument("could not find video stream: ", filename_); + } + + AVStream *video_stream = format_context_->streams[stream_index_]; + codec_context_ = video_stream->codec; + // Find decoder for the stream + AVCodec *codec = avcodec_find_decoder(codec_context_->codec_id); + if (!codec) { + return errors::Internal("could not find video codec: ", codec_context_->codec_id); + } + // Initialize the decoders + // TODO (yongtang): avcodec_open2 is not thread-safe + AVDictionary *opts = NULL; + if (avcodec_open2(codec_context_, codec, &opts) < 0) { + return errors::Internal("could not open codec"); + } + + // Allocate frame + frame_ = avcodec_alloc_frame(); + if (!frame_) { + return errors::Internal("could not allocate frame"); + } + + // Initialize packet + av_init_packet(&packet_); + packet_.data = NULL; + packet_.size = 0; + + // create scaling context + sws_context_ = sws_getContext(codec_context_->width, codec_context_->height, codec_context_->pix_fmt, codec_context_->width, codec_context_->height, AV_PIX_FMT_RGB24, SWS_BILINEAR, NULL, NULL, NULL); + if (!sws_context_) { + return errors::Internal("could not allocate sws context"); + } + frame_rgb_ = avcodec_alloc_frame(); + if (!frame_rgb_) { + return errors::Internal("could not allocate rgb frame"); + } + // Determine required buffer size and allocate buffer + num_bytes_ = avpicture_get_size(AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height); + buffer_rgb_ = (uint8_t *)av_malloc(num_bytes_ * sizeof(uint8_t)); + avpicture_fill((AVPicture *)frame_rgb_, buffer_rgb_, AV_PIX_FMT_RGB24, codec_context_->width, codec_context_->height); + + frame_more_ = true; + packet_more_ = false; + buffer_more_ = ReadAhead(true); + + return Status::OK(); + } + +bool VideoReader::ReadAhead(bool first) +{ + while (packet_more_ || frame_more_) { + while (packet_more_) { + packet_more_ = false; + if (packet_.stream_index == stream_index_) { + int got_frame = 0; + int decoded = avcodec_decode_video2(codec_context_, frame_, &got_frame, &packet_); + if (!frame_more_ && got_frame) { + // This is the cached packet. + sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); + packet_more_ = true; + return true; + } + if (decoded >= 0 && got_frame) { + sws_scale(sws_context_, frame_->data, frame_->linesize, 0, codec_context_->height, frame_rgb_->data, frame_rgb_->linesize); + if (packet_.data) { + packet_.data += decoded; + packet_.size -= decoded; + packet_more_ = (packet_.size > 0); + } + return true; + } + } + } + if (frame_more_) { + // If this is not the first time, unref the packet + // NOTE: libav 9.20 does not need unref or free here. + // av_packet_unref(&packet_); + frame_more_ = (av_read_frame(format_context_, &packet_) == 0); + if (!frame_more_) { + // Flush out the cached packet + packet_more_ = true; + packet_.data = NULL; + packet_.size = 0; + } else { + // More packet to process + packet_more_ = true; + } + } + } + return false; + } + +Status VideoReader::ReadFrame(int *num_bytes, uint8_t**value, int *height, int *width) +{ + *height = codec_context_->height; + *width = codec_context_->width; + *num_bytes = num_bytes_; + if (buffer_more_) { + *value = buffer_rgb_; + buffer_more_ = ReadAhead(true); + return Status::OK(); + } + return errors::OutOfRange("EOF"); +} + +VideoReader::~VideoReader() { + av_free(buffer_rgb_); + avcodec_free_frame(&frame_rgb_); + sws_freeContext(sws_context_); + avcodec_free_frame(&frame_); + avformat_close_input(&format_context_); +} + +} // namespace +} // namespace data +} // namespace tensorflow diff --git a/tensorflow_io/video/python/ops/video_dataset_ops.py b/tensorflow_io/video/python/ops/video_dataset_ops.py index 1f07785df..7d10300b9 100644 --- a/tensorflow_io/video/python/ops/video_dataset_ops.py +++ b/tensorflow_io/video/python/ops/video_dataset_ops.py @@ -29,15 +29,10 @@ from tensorflow.python.framework import load_library from tensorflow.python.platform import resource_loader video_ops = None -try: - video_ops = load_library.load_op_library( - resource_loader.get_path_to_datafile('_video_ops_ffmpeg_3.4.so')) -except errors_impl.NotFoundError as e: - print(e) -if video_ops is None: +for f in ['_video_ops_ffmpeg_3.4.so', '_video_ops_ffmpeg_2.8.so', '_video_ops_libav_9.20.so']: try: - video_ops = load_library.load_op_library( - resource_loader.get_path_to_datafile('_video_ops_ffmpeg_2.8.so')) + video_ops = load_library.load_op_library(resource_loader.get_path_to_datafile(f)) + break; except errors_impl.NotFoundError as e: print(e) diff --git a/third_party/libav_9_20.BUILD b/third_party/libav_9_20.BUILD new file mode 100644 index 000000000..43df90092 --- /dev/null +++ b/third_party/libav_9_20.BUILD @@ -0,0 +1,101 @@ +# Description: +# FFmpeg + +licenses(["notice"]) # LGPL v2.1+ license + +exports_files(["LICENSE.md"]) + +cc_library( + name = "libav", + srcs = [ + ], + hdrs = [ + "libavformat/avformat.h", + "libavformat/avio.h", + "libavformat/version.h", + "libavcodec/version.h", + "libavcodec/avcodec.h", + "libavcodec/old_codec_ids.h", + "libavutil/avconfig.h", + "libavutil/samplefmt.h", + "libavutil/avutil.h", + "libavutil/common.h", + "libavutil/attributes.h", + "libavutil/version.h", + "libavutil/mem.h", + "libavutil/error.h", + "libavutil/rational.h", + "libavutil/mathematics.h", + "libavutil/intfloat.h", + "libavutil/log.h", + "libavutil/pixfmt.h", + "libavutil/old_pix_fmts.h", + "libavutil/cpu.h", + "libavutil/channel_layout.h", + "libavutil/dict.h", + "libavutil/imgutils.h", + "libavutil/pixdesc.h", + "libavutil/time.h", + "libswscale/swscale.h", + "libswscale/version.h", + ], + copts = [], + defines = [], + includes = [], + linkopts = [ + "-L$(GENDIR)/external/libav_9_20", + "-l:libavformat.so.54", + "-l:libavcodec.so.54", + "-l:libavutil.so.52", + "-l:libswscale.so.2", + ], + visibility = ["//visibility:public"], + deps = [], + data = [ + "libavformat.so.54", + "libavcodec.so.54", + "libavutil.so.52", + "libswscale.so.2", + ], +) + +# Stab library files for build to be successful +# even when those files are not installed (e.g., Ubuntu 14.04) +# In runtime (e.g., Ubuntu 18.04) system files will be used. +genrule( + name = "libavformat_so_54", + outs = ["libavformat.so.54"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libavcodec_so_54", + outs = ["libavcodec.so.54"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libavutil_so_52", + outs = ["libavutil.so.52"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libswscale_so_2", + outs = ["libswscale.so.2"], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", +) + +genrule( + name = "libavutil_avconfig_h", + outs = ["libavutil/avconfig.h"], + cmd = "\n".join([ + "cat <<'EOF' >$@", + "#ifndef AVUTIL_AVCONFIG_H", + "#define AVUTIL_AVCONFIG_H", + "#define AV_HAVE_BIGENDIAN 0", + "#define AV_HAVE_FAST_UNALIGNED 1", + "#endif /* AVUTIL_AVCONFIG_H */", + "EOF", + ]), +) From ccc8a20868e3d0ee0605837e26560970de36d758 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 21:39:41 +0000 Subject: [PATCH 16/19] Add libav dependency and enable video test on Ubuntu 14.04 Signed-off-by: Yong Tang --- .travis.yml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 82d9ec29e..3516b1e38 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,36 +19,44 @@ matrix: python: - 2.7 before_install: + - sudo apt-get update -y + - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.4" language: python python: - 3.4 before_install: + - sudo apt-get update -y + - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.5" language: python python: - 3.5 before_install: + - sudo apt-get update -y + - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.6" language: python python: - 3.6 before_install: + - sudo apt-get update -y + - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... -//tensorflow_io/video:video_py_test + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 18.04 Python 2.7 (Video Only)" language: python python: @@ -66,6 +74,8 @@ matrix: r: - 3.2 before_install: + - sudo apt-get update -y + - sudo apt-get install -y -qq libav-tools - cd R-package script: - R -e "devtools::test()" @@ -74,6 +84,8 @@ matrix: r: - 3.5 before_install: + - sudo apt-get update -y + - sudo apt-get install -y -qq libav-tools - cd R-package script: - R -e "devtools::test()" From a5cbf325cf107f87fad2b3880cf2719500c70e1c Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 18 Dec 2018 22:38:34 +0000 Subject: [PATCH 17/19] Enable Ubuntu 16.04 for video.VideoDataset Signed-off-by: Yong Tang --- .travis.yml | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3516b1e38..f8c4fefdf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,9 @@ -dist: trusty sudo: required +addons: + apt: + update: true + env: - BAZEL_OS=linux BAZEL_VERSION=0.17.2 @@ -15,76 +18,98 @@ before_script: matrix: include: - name: "Ubuntu 14.04 Python 2.7" + dist: trusty language: python python: - 2.7 before_install: - - sudo apt-get update -y - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.4" + dist: trusty language: python python: - 3.4 before_install: - - sudo apt-get update -y - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh script: - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.5" + dist: trusty language: python python: - 3.5 before_install: - - sudo apt-get update -y - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.6" + dist: trusty language: python python: - 3.6 before_install: - - sudo apt-get update -y - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - name: "Ubuntu 16.04 Python 2.7 (Video Only)" + dist: xenial + language: python + python: + - 2.7 + before_install: + - sudo apt-get install -y -qq libav-tools + - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh + script: + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/video:video_py_test + - name: "Ubuntu 16.04 Python 3.5 (Video Only)" + dist: xenial + language: python + python: + - 3.5 + before_install: + - sudo apt-get install -y -qq libav-tools + - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh + script: + - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/video:video_py_test - name: "Ubuntu 18.04 Python 2.7 (Video Only)" + dist: trusty language: python python: - 2.7 script: - - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/video:all" + - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/video:video_py_test" - name: "Ubuntu 18.04 Python 3.6 (Video Only)" + dist: trusty language: python python: - 3.6 script: - - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/video:all" + - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/video:video_py_test" - name: "Ubuntu 14.04 R 3.2" + dist: trusty language: r r: - 3.2 before_install: - - sudo apt-get update -y - sudo apt-get install -y -qq libav-tools - cd R-package script: - R -e "devtools::test()" - name: "Ubuntu 14.04 R 3.5" + dist: trusty language: r r: - 3.5 before_install: - - sudo apt-get update -y - sudo apt-get install -y -qq libav-tools - cd R-package script: From 10a402da7342e8351b165bf62f4779dda145252d Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Sat, 5 Jan 2019 03:12:28 +0000 Subject: [PATCH 18/19] Defined a bazel rule of `cc_import_library` to only accepts system library and use `cc_import_library` rule to prevent including GPL code. Signed-off-by: Yong Tang --- third_party/ffmpeg_2_8.BUILD | 47 +++--------------------------------- third_party/ffmpeg_3_4.BUILD | 47 +++--------------------------------- third_party/libav_9_20.BUILD | 47 +++--------------------------------- third_party/repo.bzl | 28 +++++++++++++++++++++ 4 files changed, 40 insertions(+), 129 deletions(-) create mode 100644 third_party/repo.bzl diff --git a/third_party/ffmpeg_2_8.BUILD b/third_party/ffmpeg_2_8.BUILD index 46e1ec24c..9e5082774 100644 --- a/third_party/ffmpeg_2_8.BUILD +++ b/third_party/ffmpeg_2_8.BUILD @@ -5,10 +5,10 @@ licenses(["notice"]) # LGPL v2.1+ license exports_files(["LICENSE.md"]) -cc_library( +load("@org_tensorflow//third_party:repo.bzl", "cc_import_library") + +cc_import_library( name = "ffmpeg", - srcs = [ - ], hdrs = [ "libavformat/avformat.h", "libavformat/avio.h", @@ -41,19 +41,7 @@ cc_library( "libswscale/swscale.h", "libswscale/version.h", ], - copts = [], - defines = [], - includes = [], - linkopts = [ - "-L$(GENDIR)/external/ffmpeg_2_8", - "-l:libavformat-ffmpeg.so.56", - "-l:libavcodec-ffmpeg.so.56", - "-l:libavutil-ffmpeg.so.54", - "-l:libswscale-ffmpeg.so.3", - ], - visibility = ["//visibility:public"], - deps = [], - data = [ + libraries = [ "libavformat-ffmpeg.so.56", "libavcodec-ffmpeg.so.56", "libavutil-ffmpeg.so.54", @@ -61,33 +49,6 @@ cc_library( ], ) -# Stab library files for build to be successful -# even when those files are not installed (e.g., Ubuntu 14.04) -# In runtime (e.g., Ubuntu 18.04) system files will be used. -genrule( - name = "libavformat-ffmpeg_so_56", - outs = ["libavformat-ffmpeg.so.56"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libavcodec-ffmpeg_so_56", - outs = ["libavcodec-ffmpeg.so.56"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libavutil-ffmpeg_so_54", - outs = ["libavutil-ffmpeg.so.54"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libswscale-ffmpeg_so_3", - outs = ["libswscale-ffmpeg.so.3"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - genrule( name = "libavutil_avconfig_h", outs = ["libavutil/avconfig.h"], diff --git a/third_party/ffmpeg_3_4.BUILD b/third_party/ffmpeg_3_4.BUILD index ec2b076f5..d9bf26d70 100644 --- a/third_party/ffmpeg_3_4.BUILD +++ b/third_party/ffmpeg_3_4.BUILD @@ -5,10 +5,10 @@ licenses(["notice"]) # LGPL v2.1+ license exports_files(["LICENSE.md"]) -cc_library( +load("@org_tensorflow//third_party:repo.bzl", "cc_import_library") + +cc_import_library( name = "ffmpeg", - srcs = [ - ], hdrs = [ "libavformat/avformat.h", "libavformat/avio.h", @@ -39,19 +39,7 @@ cc_library( "libswscale/swscale.h", "libswscale/version.h", ], - copts = [], - defines = [], - includes = [], - linkopts = [ - "-L$(GENDIR)/external/ffmpeg_3_4", - "-l:libavformat.so.57", - "-l:libavcodec.so.57", - "-l:libavutil.so.55", - "-l:libswscale.so.4", - ], - visibility = ["//visibility:public"], - deps = [], - data = [ + libraries = [ "libavformat.so.57", "libavcodec.so.57", "libavutil.so.55", @@ -59,33 +47,6 @@ cc_library( ], ) -# Stab library files for build to be successful -# even when those files are not installed (e.g., Ubuntu 14.04) -# In runtime (e.g., Ubuntu 18.04) system files will be used. -genrule( - name = "libavformat_so_57", - outs = ["libavformat.so.57"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libavcodec_so_57", - outs = ["libavcodec.so.57"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libavutil_so_55", - outs = ["libavutil.so.55"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libswscale_so_4", - outs = ["libswscale.so.4"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - genrule( name = "libavutil_avconfig_h", outs = ["libavutil/avconfig.h"], diff --git a/third_party/libav_9_20.BUILD b/third_party/libav_9_20.BUILD index 43df90092..09e864dc7 100644 --- a/third_party/libav_9_20.BUILD +++ b/third_party/libav_9_20.BUILD @@ -5,10 +5,10 @@ licenses(["notice"]) # LGPL v2.1+ license exports_files(["LICENSE.md"]) -cc_library( +load("@org_tensorflow//third_party:repo.bzl", "cc_import_library") + +cc_import_library( name = "libav", - srcs = [ - ], hdrs = [ "libavformat/avformat.h", "libavformat/avio.h", @@ -39,19 +39,7 @@ cc_library( "libswscale/swscale.h", "libswscale/version.h", ], - copts = [], - defines = [], - includes = [], - linkopts = [ - "-L$(GENDIR)/external/libav_9_20", - "-l:libavformat.so.54", - "-l:libavcodec.so.54", - "-l:libavutil.so.52", - "-l:libswscale.so.2", - ], - visibility = ["//visibility:public"], - deps = [], - data = [ + libraries = [ "libavformat.so.54", "libavcodec.so.54", "libavutil.so.52", @@ -59,33 +47,6 @@ cc_library( ], ) -# Stab library files for build to be successful -# even when those files are not installed (e.g., Ubuntu 14.04) -# In runtime (e.g., Ubuntu 18.04) system files will be used. -genrule( - name = "libavformat_so_54", - outs = ["libavformat.so.54"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libavcodec_so_54", - outs = ["libavcodec.so.54"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libavutil_so_52", - outs = ["libavutil.so.52"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - -genrule( - name = "libswscale_so_2", - outs = ["libswscale.so.2"], - cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", -) - genrule( name = "libavutil_avconfig_h", outs = ["libavutil/avconfig.h"], diff --git a/third_party/repo.bzl b/third_party/repo.bzl new file mode 100644 index 000000000..905d1bd8d --- /dev/null +++ b/third_party/repo.bzl @@ -0,0 +1,28 @@ +# cc_import_library is a replacement of cc_import in bazel, +# The purposes are: +# - Allows the specification of soname e.g., libavformat.so.57 +# - Restrict to only allow linking against for GPL licenses libraries, +# so that no srcs files are used. +def cc_import_library( + name, + hdrs, + libraries, + **kwargs): + for library in libraries: + native.genrule( + name = "stub-" + library, + outs = [library], + cmd = "echo '' | g++ -shared -fPIC -x c++ - -o $@", + ) + native.cc_library( + name = name, + srcs = [], + hdrs = hdrs, + copts = [], + defines = [], + includes = [], + linkopts = ["-L$(GENDIR)/external/" + native.repository_name()[1:]] + ["-l:" + x for x in libraries], + visibility = ["//visibility:public"], + data = libraries, + **kwargs + ) From 4da4dd271aef7551f7fefbd04fcf90a123adef63 Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 8 Jan 2019 20:44:36 +0000 Subject: [PATCH 19/19] Reduce verbose logging output by bazel Signed-off-by: Yong Tang --- .travis.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index f8c4fefdf..35c4afeb0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,7 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - bazel test --noshow_progress --noshow_loading_progress --spawn_strategy standalone --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.4" dist: trusty language: python @@ -37,7 +37,7 @@ matrix: - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - bazel test --noshow_progress --noshow_loading_progress --spawn_strategy standalone --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.5" dist: trusty language: python @@ -48,7 +48,7 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - bazel test --noshow_progress --noshow_loading_progress --spawn_strategy standalone --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 14.04 Python 3.6" dist: trusty language: python @@ -59,7 +59,7 @@ matrix: - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh - pip install pyarrow==0.11.1 script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/... + - bazel test --noshow_progress --noshow_loading_progress --spawn_strategy standalone --verbose_failures --test_output=errors -- //tensorflow_io/... - name: "Ubuntu 16.04 Python 2.7 (Video Only)" dist: xenial language: python @@ -69,7 +69,7 @@ matrix: - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/video:video_py_test + - bazel test --noshow_progress --noshow_loading_progress --spawn_strategy standalone --verbose_failures --test_output=errors -- //tensorflow_io/video:video_py_test - name: "Ubuntu 16.04 Python 3.5 (Video Only)" dist: xenial language: python @@ -79,21 +79,21 @@ matrix: - sudo apt-get install -y -qq libav-tools - bash -x ${TRAVIS_BUILD_DIR}/.travis/python.configure.sh script: - - bazel test --show_progress=no --spawn_strategy standalone -s --verbose_failures --test_output=errors -- //tensorflow_io/video:video_py_test + - bazel test --noshow_progress --noshow_loading_progress --spawn_strategy standalone --verbose_failures --test_output=errors -- //tensorflow_io/video:video_py_test - name: "Ubuntu 18.04 Python 2.7 (Video Only)" dist: trusty language: python python: - 2.7 script: - - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/video:video_py_test" + - docker run -i -t -e PYTHON_VERSION= -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --noshow_progress --noshow_loading_progress --spawn_strategy standalone --verbose_failures -- //tensorflow_io/video:video_py_test" - name: "Ubuntu 18.04 Python 3.6 (Video Only)" dist: trusty language: python python: - 3.6 script: - - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --spawn_strategy standalone -s --verbose_failures -- //tensorflow_io/video:video_py_test" + - docker run -i -t -e PYTHON_VERSION=3 -e BAZEL_VERSION=0.20.0 -e BAZEL_OS=linux --rm -v $PWD:/workspace -w /workspace --net=host ubuntu:18.04 bash -x -c ".travis/python.ubuntu.18.04.sh && apt-get -y -qq install libavformat57 libavcodec57 libavutil55 libswscale4 && bazel test --noshow_progress --noshow_loading_progress --spawn_strategy standalone --verbose_failures -- //tensorflow_io/video:video_py_test" - name: "Ubuntu 14.04 R 3.2" dist: trusty language: r