bmff 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.travis.yml +5 -3
  4. data/README.md +12 -3
  5. data/bmff.gemspec +4 -2
  6. data/lib/bmff/box/protection_system_specific_header.rb +1 -0
  7. data/lib/bmff/box/segment_index.rb +42 -0
  8. data/lib/bmff/box/segment_type.rb +6 -0
  9. data/lib/bmff/box/subsegment_index.rb +30 -0
  10. data/lib/bmff/box/track_encryption.rb +3 -0
  11. data/lib/bmff/box.rb +3 -0
  12. data/lib/bmff/version.rb +1 -1
  13. data/test/bmff/box/test_audio_sample_entry.rb +1 -1
  14. data/test/bmff/box/test_base.rb +1 -1
  15. data/test/bmff/box/test_bit_rate.rb +1 -1
  16. data/test/bmff/box/test_chunk_large_offset.rb +1 -1
  17. data/test/bmff/box/test_chunk_offset.rb +1 -1
  18. data/test/bmff/box/test_clean_aperture.rb +1 -1
  19. data/test/bmff/box/test_colour_information.rb +1 -1
  20. data/test/bmff/box/test_compact_sample_size.rb +1 -1
  21. data/test/bmff/box/test_composition_offset.rb +1 -1
  22. data/test/bmff/box/test_composition_to_decode.rb +1 -1
  23. data/test/bmff/box/test_copyright.rb +1 -1
  24. data/test/bmff/box/test_data_entry_url.rb +1 -1
  25. data/test/bmff/box/test_data_entry_urn.rb +1 -1
  26. data/test/bmff/box/test_data_information.rb +1 -1
  27. data/test/bmff/box/test_data_reference.rb +1 -1
  28. data/test/bmff/box/test_degradation_priority.rb +1 -1
  29. data/test/bmff/box/test_edit.rb +1 -1
  30. data/test/bmff/box/test_edit_list.rb +1 -1
  31. data/test/bmff/box/test_file_type.rb +1 -1
  32. data/test/bmff/box/test_free_space.rb +1 -1
  33. data/test/bmff/box/test_handler.rb +1 -1
  34. data/test/bmff/box/test_hint_media_header.rb +1 -1
  35. data/test/bmff/box/test_hint_sample_entry.rb +1 -1
  36. data/test/bmff/box/test_level_assignment.rb +1 -1
  37. data/test/bmff/box/test_media.rb +1 -1
  38. data/test/bmff/box/test_media_data.rb +1 -1
  39. data/test/bmff/box/test_media_header.rb +1 -1
  40. data/test/bmff/box/test_media_information.rb +1 -1
  41. data/test/bmff/box/test_movie.rb +1 -1
  42. data/test/bmff/box/test_movie_extends.rb +1 -1
  43. data/test/bmff/box/test_movie_extends_header.rb +1 -1
  44. data/test/bmff/box/test_movie_fragment.rb +1 -1
  45. data/test/bmff/box/test_movie_fragment_header.rb +1 -1
  46. data/test/bmff/box/test_movie_fragment_random_access.rb +1 -1
  47. data/test/bmff/box/test_movie_fragment_random_access_offset.rb +1 -1
  48. data/test/bmff/box/test_movie_header.rb +1 -1
  49. data/test/bmff/box/test_null_media_header.rb +1 -1
  50. data/test/bmff/box/test_original_format.rb +1 -1
  51. data/test/bmff/box/test_padding_bits.rb +1 -1
  52. data/test/bmff/box/test_pixel_aspect_ratio.rb +1 -1
  53. data/test/bmff/box/test_progressive_download_info.rb +1 -1
  54. data/test/bmff/box/test_protection_sheme_info.rb +1 -1
  55. data/test/bmff/box/test_protection_system_specific_header.rb +29 -1
  56. data/test/bmff/box/test_sample_auxiliary_information_offsets.rb +1 -1
  57. data/test/bmff/box/test_sample_auxiliary_information_sizes.rb +1 -1
  58. data/test/bmff/box/test_sample_dependency_type.rb +1 -1
  59. data/test/bmff/box/test_sample_description.rb +1 -1
  60. data/test/bmff/box/test_sample_encryption.rb +1 -1
  61. data/test/bmff/box/test_sample_size.rb +1 -1
  62. data/test/bmff/box/test_sample_table.rb +1 -1
  63. data/test/bmff/box/test_sample_to_chunk.rb +1 -1
  64. data/test/bmff/box/test_segment_index.rb +110 -0
  65. data/test/bmff/box/test_segment_type.rb +30 -0
  66. data/test/bmff/box/test_shadow_sync_sample.rb +1 -1
  67. data/test/bmff/box/test_sheme_information.rb +1 -1
  68. data/test/bmff/box/test_sheme_type.rb +1 -1
  69. data/test/bmff/box/test_sound_media_header.rb +1 -1
  70. data/test/bmff/box/test_sub_sample_information.rb +1 -1
  71. data/test/bmff/box/test_subsegment_index.rb +43 -0
  72. data/test/bmff/box/test_sync_sample.rb +1 -1
  73. data/test/bmff/box/test_text_meta_data_sample_entry.rb +1 -1
  74. data/test/bmff/box/test_time_to_sample.rb +1 -1
  75. data/test/bmff/box/test_track.rb +1 -1
  76. data/test/bmff/box/test_track_encryption.rb +29 -1
  77. data/test/bmff/box/test_track_extends.rb +1 -1
  78. data/test/bmff/box/test_track_fragment.rb +1 -1
  79. data/test/bmff/box/test_track_fragment_base_media_decode_time.rb +1 -1
  80. data/test/bmff/box/test_track_fragment_header.rb +1 -1
  81. data/test/bmff/box/test_track_fragment_random_access.rb +1 -1
  82. data/test/bmff/box/test_track_group.rb +1 -1
  83. data/test/bmff/box/test_track_group_type.rb +1 -1
  84. data/test/bmff/box/test_track_header.rb +1 -1
  85. data/test/bmff/box/test_track_reference.rb +1 -1
  86. data/test/bmff/box/test_track_reference_type.rb +2 -2
  87. data/test/bmff/box/test_track_run.rb +1 -1
  88. data/test/bmff/box/test_track_selection.rb +1 -1
  89. data/test/bmff/box/test_uri.rb +1 -1
  90. data/test/bmff/box/test_uri_init.rb +1 -1
  91. data/test/bmff/box/test_uri_meta_sample_entry.rb +1 -1
  92. data/test/bmff/box/test_user_data.rb +1 -1
  93. data/test/bmff/box/test_video_media_header.rb +1 -1
  94. data/test/bmff/box/test_visual_sample_entry.rb +1 -1
  95. data/test/bmff/box/test_xml_meta_data_sample_entry.rb +1 -1
  96. data/test/bmff/test_binary_accessor.rb +1 -1
  97. data/test/bmff/test_file_container.rb +42 -1
  98. data/test/minitest_helper.rb +3 -0
  99. metadata +52 -25
@@ -5,7 +5,7 @@ require_relative '../minitest_helper'
5
5
  require 'bmff/binary_accessor'
6
6
  require 'stringio'
7
7
 
8
- class TestBMFFBinaryAccessor < MiniTest::Unit::TestCase
8
+ class TestBMFFBinaryAccessor < Minitest::Test
9
9
  def test_get_int8
10
10
  io = StringIO.new("\x00\xFF\x80", "r:ascii-8bit")
11
11
  io.extend(BMFF::BinaryAccessor)
@@ -4,7 +4,7 @@
4
4
  require_relative '../minitest_helper'
5
5
  require 'bmff/file_container'
6
6
 
7
- class TestBMFFFileContainer < MiniTest::Unit::TestCase
7
+ class TestBMFFFileContainer < Minitest::Test
8
8
  SAMPLE_FILE_COMMON_MP4 = 'bmff.mp4'
9
9
 
10
10
  def get_sample_file_path(file_name)
@@ -27,6 +27,47 @@ class TestBMFFFileContainer < MiniTest::Unit::TestCase
27
27
  end
28
28
  end
29
29
 
30
+ def test_find
31
+ open(get_sample_file_path(SAMPLE_FILE_COMMON_MP4), "rb:ascii-8bit") do |f|
32
+ file_container = BMFF::FileContainer.parse(f)
33
+ assert_kind_of(BMFF::FileContainer, file_container)
34
+ assert_kind_of(Array, file_container.boxes)
35
+ assert_equal(5, file_container.boxes.count)
36
+
37
+ box = file_container.find(BMFF::Box::FileType)
38
+ assert_kind_of(BMFF::Box::FileType, box)
39
+ box = file_container.find("ftyp")
40
+ assert_kind_of(BMFF::Box::FileType, box)
41
+
42
+ box = file_container.find(BMFF::Box::TrackRun)
43
+ assert_nil(box)
44
+ box = file_container.find("trun")
45
+ assert_nil(box)
46
+ end
47
+ end
48
+
49
+ def test_find_all
50
+ open(get_sample_file_path(SAMPLE_FILE_COMMON_MP4), "rb:ascii-8bit") do |f|
51
+ file_container = BMFF::FileContainer.parse(f)
52
+ assert_kind_of(BMFF::FileContainer, file_container)
53
+ assert_kind_of(Array, file_container.boxes)
54
+ assert_equal(5, file_container.boxes.count)
55
+
56
+ boxes = file_container.find_all(BMFF::Box::FreeSpace)
57
+ assert_equal(2, boxes.count)
58
+ assert_kind_of(BMFF::Box::FreeSpace, boxes[0])
59
+ assert_kind_of(BMFF::Box::FreeSpace, boxes[1])
60
+ boxes = file_container.find_all("free")
61
+ assert_kind_of(BMFF::Box::FreeSpace, boxes[0])
62
+ assert_kind_of(BMFF::Box::FreeSpace, boxes[1])
63
+
64
+ boxes = file_container.find_all(BMFF::Box::TrackRun)
65
+ assert_equal(0, boxes.count)
66
+ boxes = file_container.find_all("trun")
67
+ assert_equal(0, boxes.count)
68
+ end
69
+ end
70
+
30
71
  def test_select_descendants
31
72
  open(get_sample_file_path(SAMPLE_FILE_COMMON_MP4), "rb:ascii-8bit") do |f|
32
73
  file_container = BMFF::FileContainer.parse(f)
@@ -1,6 +1,9 @@
1
1
  # coding: utf-8
2
2
  # vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2 autoindent:
3
3
 
4
+ require 'coveralls'
5
+ Coveralls.wear!
6
+
4
7
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
5
8
  require 'bmff'
6
9
 
metadata CHANGED
@@ -1,62 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bmff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Takayuki Ogiso
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-06-29 00:00:00.000000000 Z
11
+ date: 2016-02-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: uuidtools
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: bundler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: '1.5'
33
+ version: '1.10'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: '1.5'
40
+ version: '1.10'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: coveralls
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
60
81
  - !ruby/object:Gem::Version
61
82
  version: '0'
62
83
  description: ISO Base Media File Format file parser.
@@ -66,6 +87,7 @@ executables: []
66
87
  extensions: []
67
88
  extra_rdoc_files: []
68
89
  files:
90
+ - .coveralls.yml
69
91
  - .gitignore
70
92
  - .travis.yml
71
93
  - CHANGELOG.md
@@ -135,9 +157,12 @@ files:
135
157
  - lib/bmff/box/sample_to_chunk.rb
136
158
  - lib/bmff/box/scheme_information.rb
137
159
  - lib/bmff/box/scheme_type.rb
160
+ - lib/bmff/box/segment_index.rb
161
+ - lib/bmff/box/segment_type.rb
138
162
  - lib/bmff/box/shadow_sync_sample.rb
139
163
  - lib/bmff/box/sound_media_header.rb
140
164
  - lib/bmff/box/sub_sample_information.rb
165
+ - lib/bmff/box/subsegment_index.rb
141
166
  - lib/bmff/box/sync_sample.rb
142
167
  - lib/bmff/box/text_meta_data_sample_entry.rb
143
168
  - lib/bmff/box/time_to_sample.rb
@@ -216,11 +241,14 @@ files:
216
241
  - test/bmff/box/test_sample_size.rb
217
242
  - test/bmff/box/test_sample_table.rb
218
243
  - test/bmff/box/test_sample_to_chunk.rb
244
+ - test/bmff/box/test_segment_index.rb
245
+ - test/bmff/box/test_segment_type.rb
219
246
  - test/bmff/box/test_shadow_sync_sample.rb
220
247
  - test/bmff/box/test_sheme_information.rb
221
248
  - test/bmff/box/test_sheme_type.rb
222
249
  - test/bmff/box/test_sound_media_header.rb
223
250
  - test/bmff/box/test_sub_sample_information.rb
251
+ - test/bmff/box/test_subsegment_index.rb
224
252
  - test/bmff/box/test_sync_sample.rb
225
253
  - test/bmff/box/test_text_meta_data_sample_entry.rb
226
254
  - test/bmff/box/test_time_to_sample.rb
@@ -251,30 +279,26 @@ files:
251
279
  homepage: https://github.com/zuku/bmff
252
280
  licenses:
253
281
  - MIT
282
+ metadata: {}
254
283
  post_install_message:
255
284
  rdoc_options: []
256
285
  require_paths:
257
286
  - lib
258
287
  required_ruby_version: !ruby/object:Gem::Requirement
259
- none: false
260
288
  requirements:
261
- - - ! '>='
289
+ - - '>='
262
290
  - !ruby/object:Gem::Version
263
- version: 1.9.0
291
+ version: 2.0.0
264
292
  required_rubygems_version: !ruby/object:Gem::Requirement
265
- none: false
266
293
  requirements:
267
- - - ! '>='
294
+ - - '>='
268
295
  - !ruby/object:Gem::Version
269
296
  version: '0'
270
- segments:
271
- - 0
272
- hash: -3184414125580658475
273
297
  requirements: []
274
298
  rubyforge_project:
275
- rubygems_version: 1.8.25
299
+ rubygems_version: 2.4.5
276
300
  signing_key:
277
- specification_version: 3
301
+ specification_version: 4
278
302
  summary: ISO BMFF Parser
279
303
  test_files:
280
304
  - test/bmff/box/test_audio_sample_entry.rb
@@ -328,11 +352,14 @@ test_files:
328
352
  - test/bmff/box/test_sample_size.rb
329
353
  - test/bmff/box/test_sample_table.rb
330
354
  - test/bmff/box/test_sample_to_chunk.rb
355
+ - test/bmff/box/test_segment_index.rb
356
+ - test/bmff/box/test_segment_type.rb
331
357
  - test/bmff/box/test_shadow_sync_sample.rb
332
358
  - test/bmff/box/test_sheme_information.rb
333
359
  - test/bmff/box/test_sheme_type.rb
334
360
  - test/bmff/box/test_sound_media_header.rb
335
361
  - test/bmff/box/test_sub_sample_information.rb
362
+ - test/bmff/box/test_subsegment_index.rb
336
363
  - test/bmff/box/test_sync_sample.rb
337
364
  - test/bmff/box/test_text_meta_data_sample_entry.rb
338
365
  - test/bmff/box/test_time_to_sample.rb