bare-ffmpeg 1.0.0-2 → 1.0.0-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/binding.c CHANGED
@@ -167,10 +167,12 @@ bare_ffmpeg_output_format_init(js_env_t *env, js_callback_info_t *info) {
167
167
  if (format == NULL) {
168
168
  err = js_throw_errorf(env, NULL, "No output format found for name '%s'", name);
169
169
  assert(err == 0);
170
+
170
171
  free(name);
171
172
 
172
173
  return NULL;
173
174
  }
175
+
174
176
  free(name);
175
177
 
176
178
  js_value_t *handle;
@@ -211,10 +213,12 @@ bare_ffmpeg_input_format_init(js_env_t *env, js_callback_info_t *info) {
211
213
  if (format == NULL) {
212
214
  err = js_throw_errorf(env, NULL, "No input format found for name '%s'", name);
213
215
  assert(err == 0);
216
+
214
217
  free(name);
215
218
 
216
219
  return NULL;
217
220
  }
221
+
218
222
  free(name);
219
223
 
220
224
  js_value_t *handle;
@@ -302,6 +306,7 @@ bare_ffmpeg_format_context_open_input_with_format(js_env_t *env, js_callback_inf
302
306
  assert(err == 0);
303
307
 
304
308
  context->handle = avformat_alloc_context();
309
+
305
310
  context->handle->opaque = (void *) context;
306
311
 
307
312
  bare_ffmpeg_dictionary_t *options;
@@ -319,6 +324,7 @@ bare_ffmpeg_format_context_open_input_with_format(js_env_t *env, js_callback_inf
319
324
  assert(err == 0);
320
325
 
321
326
  err = avformat_open_input(&context->handle, (char *) url, format->handle, &options->handle);
327
+
322
328
  free(url);
323
329
 
324
330
  if (err < 0) {
@@ -485,13 +491,12 @@ bare_ffmpeg_format_context_get_best_stream_index(js_env_t *env, js_callback_info
485
491
  err = js_get_value_int32(env, argv[1], &type);
486
492
  assert(err == 0);
487
493
 
488
- int stream_index = av_find_best_stream(context->handle, type, -1, -1, NULL, 0);
489
- if (stream_index < 0) {
490
- stream_index = -1;
491
- }
494
+ int i = av_find_best_stream(context->handle, type, -1, -1, NULL, 0);
495
+
496
+ if (i < 0) i = -1;
492
497
 
493
498
  js_value_t *result;
494
- err = js_create_int32(env, stream_index, &result);
499
+ err = js_create_int32(env, i, &result);
495
500
  assert(err == 0);
496
501
 
497
502
  return result;
@@ -752,6 +757,7 @@ bare_ffmpeg_codec_context_open(js_env_t *env, js_callback_info_t *info) {
752
757
 
753
758
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
754
759
  assert(err == 0);
760
+
755
761
  assert(argc == 1);
756
762
 
757
763
  bare_ffmpeg_codec_context_t *context;
@@ -777,6 +783,7 @@ bare_ffmpeg_codec_context_open_with_options(js_env_t *env, js_callback_info_t *i
777
783
 
778
784
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
779
785
  assert(err == 0);
786
+
780
787
  assert(argc == 2);
781
788
 
782
789
  bare_ffmpeg_codec_context_t *context;
@@ -788,6 +795,7 @@ bare_ffmpeg_codec_context_open_with_options(js_env_t *env, js_callback_info_t *i
788
795
  assert(err == 0);
789
796
 
790
797
  err = avcodec_open2(context->handle, context->handle->codec, &options->handle);
798
+
791
799
  if (err < 0) {
792
800
  err = js_throw_error(env, NULL, av_err2str(err));
793
801
  assert(err == 0);
@@ -1033,6 +1041,7 @@ bare_ffmpeg_codec_context_receive_packet(js_env_t *env, js_callback_info_t *info
1033
1041
 
1034
1042
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1035
1043
  assert(err == 0);
1044
+
1036
1045
  assert(argc == 2);
1037
1046
 
1038
1047
  bare_ffmpeg_codec_context_t *context;
@@ -1068,6 +1077,7 @@ bare_ffmpeg_codec_context_send_frame(js_env_t *env, js_callback_info_t *info) {
1068
1077
 
1069
1078
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1070
1079
  assert(err == 0);
1080
+
1071
1081
  assert(argc == 2);
1072
1082
 
1073
1083
  bare_ffmpeg_codec_context_t *context;
@@ -1084,6 +1094,7 @@ bare_ffmpeg_codec_context_send_frame(js_env_t *env, js_callback_info_t *info) {
1084
1094
  js_value_t *result;
1085
1095
  err = js_get_boolean(env, false, &result);
1086
1096
  assert(err == 0);
1097
+
1087
1098
  return result;
1088
1099
  }
1089
1100
 
@@ -1162,8 +1173,6 @@ bare_ffmpeg_codec_parameters_from_context(js_env_t *env, js_callback_info_t *inf
1162
1173
  if (err < 0) {
1163
1174
  err = js_throw_error(env, NULL, av_err2str(err));
1164
1175
  assert(err == 0);
1165
-
1166
- return NULL;
1167
1176
  }
1168
1177
 
1169
1178
  return NULL;
@@ -1194,8 +1203,6 @@ bare_ffmpeg_codec_parameters_to_context(js_env_t *env, js_callback_info_t *info)
1194
1203
  if (err < 0) {
1195
1204
  err = js_throw_error(env, NULL, av_err2str(err));
1196
1205
  assert(err == 0);
1197
-
1198
- return NULL;
1199
1206
  }
1200
1207
 
1201
1208
  return NULL;
@@ -1332,7 +1339,7 @@ bare_ffmpeg_frame_destroy(js_env_t *env, js_callback_info_t *info) {
1332
1339
  }
1333
1340
 
1334
1341
  static js_value_t *
1335
- bare_ffmpeg_frame_get_channel(js_env_t *env, js_callback_info_t *info) {
1342
+ bare_ffmpeg_frame_get_audio_channel(js_env_t *env, js_callback_info_t *info) {
1336
1343
  int err;
1337
1344
 
1338
1345
  size_t argc = 2;
@@ -1366,6 +1373,51 @@ bare_ffmpeg_frame_get_channel(js_env_t *env, js_callback_info_t *info) {
1366
1373
  return result;
1367
1374
  }
1368
1375
 
1376
+ static js_value_t *
1377
+ bare_ffmpeg_frame_get_image_data(js_env_t *env, js_callback_info_t *info) {
1378
+ int err;
1379
+
1380
+ size_t argc = 1;
1381
+ js_value_t *argv[1];
1382
+
1383
+ err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1384
+ assert(err == 0);
1385
+
1386
+ assert(argc == 1);
1387
+
1388
+ bare_ffmpeg_frame_t *frame;
1389
+ err = js_get_arraybuffer_info(env, argv[0], (void **) &frame, NULL);
1390
+ assert(err == 0);
1391
+
1392
+ int size = av_image_get_buffer_size(
1393
+ frame->handle->format,
1394
+ frame->handle->width,
1395
+ frame->handle->height,
1396
+ 1
1397
+ );
1398
+ assert(size > 0);
1399
+
1400
+ js_value_t *result;
1401
+
1402
+ uint8_t *buffer;
1403
+ err = js_create_arraybuffer(env, size, (void **) &buffer, &result);
1404
+ assert(err == 0);
1405
+
1406
+ err = av_image_copy_to_buffer(
1407
+ buffer,
1408
+ size,
1409
+ (const uint8_t *const *) frame->handle->data,
1410
+ frame->handle->linesize,
1411
+ frame->handle->format,
1412
+ frame->handle->width,
1413
+ frame->handle->height,
1414
+ 1
1415
+ );
1416
+ assert(err >= 0);
1417
+
1418
+ return result;
1419
+ }
1420
+
1369
1421
  static js_value_t *
1370
1422
  bare_ffmpeg_frame_get_width(js_env_t *env, js_callback_info_t *info) {
1371
1423
  int err;
@@ -1375,6 +1427,7 @@ bare_ffmpeg_frame_get_width(js_env_t *env, js_callback_info_t *info) {
1375
1427
 
1376
1428
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1377
1429
  assert(err == 0);
1430
+
1378
1431
  assert(argc == 1);
1379
1432
 
1380
1433
  bare_ffmpeg_frame_t *frame;
@@ -1397,6 +1450,7 @@ bare_ffmpeg_frame_set_width(js_env_t *env, js_callback_info_t *info) {
1397
1450
 
1398
1451
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1399
1452
  assert(err == 0);
1453
+
1400
1454
  assert(argc == 2);
1401
1455
 
1402
1456
  bare_ffmpeg_frame_t *frame;
@@ -1421,6 +1475,7 @@ bare_ffmpeg_frame_get_height(js_env_t *env, js_callback_info_t *info) {
1421
1475
 
1422
1476
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1423
1477
  assert(err == 0);
1478
+
1424
1479
  assert(argc == 1);
1425
1480
 
1426
1481
  bare_ffmpeg_frame_t *frame;
@@ -1443,6 +1498,7 @@ bare_ffmpeg_frame_set_height(js_env_t *env, js_callback_info_t *info) {
1443
1498
 
1444
1499
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1445
1500
  assert(err == 0);
1501
+
1446
1502
  assert(argc == 2);
1447
1503
 
1448
1504
  bare_ffmpeg_frame_t *frame;
@@ -1467,6 +1523,7 @@ bare_ffmpeg_frame_get_pixel_format(js_env_t *env, js_callback_info_t *info) {
1467
1523
 
1468
1524
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1469
1525
  assert(err == 0);
1526
+
1470
1527
  assert(argc == 1);
1471
1528
 
1472
1529
  bare_ffmpeg_frame_t *frame;
@@ -1489,6 +1546,7 @@ bare_ffmpeg_frame_set_pixel_format(js_env_t *env, js_callback_info_t *info) {
1489
1546
 
1490
1547
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1491
1548
  assert(err == 0);
1549
+
1492
1550
  assert(argc == 2);
1493
1551
 
1494
1552
  bare_ffmpeg_frame_t *frame;
@@ -1504,6 +1562,37 @@ bare_ffmpeg_frame_set_pixel_format(js_env_t *env, js_callback_info_t *info) {
1504
1562
  return NULL;
1505
1563
  }
1506
1564
 
1565
+ static js_value_t *
1566
+ bare_ffmpeg_frame_get_linesize(js_env_t *env, js_callback_info_t *info) {
1567
+ int err;
1568
+
1569
+ size_t argc = 2;
1570
+ js_value_t *argv[2];
1571
+
1572
+ err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1573
+ assert(err == 0);
1574
+
1575
+ assert(argc == 2);
1576
+
1577
+ bare_ffmpeg_frame_t *frame;
1578
+ err = js_get_arraybuffer_info(env, argv[0], (void **) &frame, NULL);
1579
+ assert(err == 0);
1580
+
1581
+ uint32_t channel;
1582
+ err = js_get_value_uint32(env, argv[1], &channel);
1583
+ assert(err == 0);
1584
+
1585
+ assert(channel < AV_NUM_DATA_POINTERS);
1586
+
1587
+ int32_t linesize = frame->handle->linesize[channel];
1588
+
1589
+ js_value_t *result;
1590
+ err = js_create_int32(env, linesize, &result);
1591
+ assert(err == 0);
1592
+
1593
+ return result;
1594
+ }
1595
+
1507
1596
  static js_value_t *
1508
1597
  bare_ffmpeg_frame_alloc(js_env_t *env, js_callback_info_t *info) {
1509
1598
  int err;
@@ -1513,23 +1602,22 @@ bare_ffmpeg_frame_alloc(js_env_t *env, js_callback_info_t *info) {
1513
1602
 
1514
1603
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1515
1604
  assert(err == 0);
1605
+
1516
1606
  assert(argc == 2);
1517
1607
 
1518
1608
  bare_ffmpeg_frame_t *frame;
1519
1609
  err = js_get_arraybuffer_info(env, argv[0], (void **) &frame, NULL);
1520
1610
  assert(err == 0);
1521
- assert(frame->handle != NULL);
1522
1611
 
1523
1612
  int align;
1524
1613
  err = js_get_value_int32(env, argv[1], &align);
1525
1614
  assert(err == 0);
1526
- assert(frame->handle != NULL);
1527
1615
 
1528
1616
  err = av_frame_get_buffer(frame->handle, align);
1617
+
1529
1618
  if (err < 0) {
1530
1619
  err = js_throw_error(env, NULL, av_err2str(err));
1531
1620
  assert(err == 0);
1532
- return NULL;
1533
1621
  }
1534
1622
 
1535
1623
  return NULL;
@@ -1636,6 +1724,7 @@ bare_ffmpeg_packet_init_from_buffer(js_env_t *env, js_callback_info_t *info) {
1636
1724
 
1637
1725
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1638
1726
  assert(err == 0);
1727
+
1639
1728
  assert(argc == 3);
1640
1729
 
1641
1730
  uint8_t *data;
@@ -1659,6 +1748,7 @@ bare_ffmpeg_packet_init_from_buffer(js_env_t *env, js_callback_info_t *info) {
1659
1748
  memcpy(pkt->data, &data[offset], len);
1660
1749
 
1661
1750
  js_value_t *handle;
1751
+
1662
1752
  bare_ffmpeg_packet_t *packet;
1663
1753
  err = js_create_arraybuffer(env, sizeof(bare_ffmpeg_packet_t), (void **) &packet, &handle);
1664
1754
  assert(err == 0);
@@ -1749,14 +1839,15 @@ bare_ffmpeg_packet_get_data(js_env_t *env, js_callback_info_t *info) {
1749
1839
  err = js_get_arraybuffer_info(env, argv[0], (void **) &packet, NULL);
1750
1840
  assert(err == 0);
1751
1841
 
1752
- js_value_t *result;
1842
+ js_value_t *handle;
1843
+
1753
1844
  uint8_t *data;
1754
- err = js_create_arraybuffer(env, packet->handle->size, (void **) &data, &result);
1845
+ err = js_create_arraybuffer(env, packet->handle->size, (void **) &data, &handle);
1755
1846
  assert(err == 0);
1756
1847
 
1757
1848
  memcpy(data, packet->handle->data, packet->handle->size);
1758
1849
 
1759
- return result;
1850
+ return handle;
1760
1851
  }
1761
1852
 
1762
1853
  static js_value_t *
@@ -1910,6 +2001,7 @@ bare_ffmpeg_dictionary_destroy(js_env_t *env, js_callback_info_t *info) {
1910
2001
 
1911
2002
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1912
2003
  assert(err == 0);
2004
+
1913
2005
  assert(argc == 1);
1914
2006
 
1915
2007
  bare_ffmpeg_dictionary_t *dict;
@@ -1930,6 +2022,7 @@ bare_ffmpeg_dictionary_set_entry(js_env_t *env, js_callback_info_t *info) {
1930
2022
 
1931
2023
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1932
2024
  assert(err == 0);
2025
+
1933
2026
  assert(argc == 3);
1934
2027
 
1935
2028
  bare_ffmpeg_dictionary_t *dict;
@@ -1957,6 +2050,7 @@ bare_ffmpeg_dictionary_set_entry(js_env_t *env, js_callback_info_t *info) {
1957
2050
 
1958
2051
  err = av_dict_set(&dict->handle, (const char *) key, (const char *) value, 0);
1959
2052
  assert(err == 0);
2053
+
1960
2054
  free(key);
1961
2055
  free(value);
1962
2056
 
@@ -1972,6 +2066,7 @@ bare_ffmpeg_dictionary_get_entry(js_env_t *env, js_callback_info_t *info) {
1972
2066
 
1973
2067
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1974
2068
  assert(err == 0);
2069
+
1975
2070
  assert(argc == 2);
1976
2071
 
1977
2072
  bare_ffmpeg_dictionary_t *dict;
@@ -1989,12 +2084,14 @@ bare_ffmpeg_dictionary_get_entry(js_env_t *env, js_callback_info_t *info) {
1989
2084
  assert(err == 0);
1990
2085
 
1991
2086
  AVDictionaryEntry *entry = av_dict_get(dict->handle, (const char *) key, NULL, 0);
2087
+
1992
2088
  free(key);
1993
2089
 
1994
2090
  if (entry == NULL) {
1995
2091
  js_value_t *result;
1996
2092
  err = js_get_null(env, &result);
1997
2093
  assert(err == 0);
2094
+
1998
2095
  return result;
1999
2096
  }
2000
2097
 
@@ -2068,13 +2165,15 @@ bare_ffmpeg_exports(js_env_t *env, js_value_t *exports) {
2068
2165
 
2069
2166
  V("initFrame", bare_ffmpeg_frame_init)
2070
2167
  V("destroyFrame", bare_ffmpeg_frame_destroy)
2071
- V("getFrameChannel", bare_ffmpeg_frame_get_channel)
2168
+ V("getFrameAudioChannel", bare_ffmpeg_frame_get_audio_channel)
2169
+ V("getFrameImageData", bare_ffmpeg_frame_get_image_data)
2072
2170
  V("getFrameWidth", bare_ffmpeg_frame_get_width)
2073
2171
  V("setFrameWidth", bare_ffmpeg_frame_set_width)
2074
2172
  V("getFrameHeight", bare_ffmpeg_frame_get_height)
2075
2173
  V("setFrameHeight", bare_ffmpeg_frame_set_height)
2076
2174
  V("getFramePixelFormat", bare_ffmpeg_frame_get_pixel_format)
2077
2175
  V("setFramePixelFormat", bare_ffmpeg_frame_set_pixel_format)
2176
+ V("getFrameLineSize", bare_ffmpeg_frame_get_linesize)
2078
2177
  V("allocFrame", bare_ffmpeg_frame_alloc)
2079
2178
 
2080
2179
  V("initImage", bare_ffmpeg_image_init)
@@ -2110,6 +2209,7 @@ bare_ffmpeg_exports(js_env_t *env, js_value_t *exports) {
2110
2209
  V(AV_CODEC_ID_H264)
2111
2210
 
2112
2211
  V(AV_PIX_FMT_RGBA)
2212
+ V(AV_PIX_FMT_RGB24)
2113
2213
  V(AV_PIX_FMT_YUVJ420P)
2114
2214
  V(AV_PIX_FMT_YUV420P)
2115
2215
 
package/lib/dictionary.js CHANGED
@@ -14,20 +14,10 @@ module.exports = class FFmpegDictionary extends ReferenceCounted {
14
14
  }
15
15
 
16
16
  get(key) {
17
- if (typeof key !== 'string' || key.length < 1) {
18
- throw new TypeError(`Key should be a non empty string`)
19
- }
20
17
  return binding.getDictionaryEntry(this._handle, key)
21
18
  }
22
19
 
23
20
  set(key, value) {
24
- if (typeof key !== 'string' || key.length < 1) {
25
- throw new TypeError(`Key should be a non empty string`)
26
- }
27
-
28
- if (typeof value !== 'string' || value.length < 1) {
29
- throw new TypeError(`Value should be a non empty string`)
30
- }
31
21
  binding.setDictionaryEntry(this._handle, key, value)
32
22
  }
33
23
  }
@@ -4,6 +4,7 @@ const ReferenceCounted = require('./reference-counted')
4
4
  const OutputFormat = require('./output-format')
5
5
  const IOContext = require('./io-context')
6
6
  const InputFormat = require('./input-format')
7
+ const Dictionary = require('./dictionary')
7
8
 
8
9
  class FFmpegFormatContext extends ReferenceCounted {
9
10
  constructor(io) {
@@ -42,12 +43,6 @@ class FFmpegFormatContext extends ReferenceCounted {
42
43
  }
43
44
 
44
45
  getBestStream(type) {
45
- if (typeof type !== 'number') {
46
- throw new TypeError(
47
- `Type parameter should be of type number but got: ${typeof type}`
48
- )
49
- }
50
-
51
46
  if (this._streams.length == 0) {
52
47
  return null
53
48
  }
@@ -86,14 +81,20 @@ exports.InputFormatContext = class FFmpegInputFormatContext extends (
86
81
  constructor(io, options, url = defaultURL) {
87
82
  if (io instanceof IOContext) {
88
83
  super(io)
84
+
89
85
  this._handle = binding.openInputFormatContextWithIO(io._handle)
90
86
  } else if (io instanceof InputFormat) {
91
87
  super()
88
+
89
+ options = options || new Dictionary()
90
+
92
91
  this._handle = binding.openInputFormatContextWithFormat(
93
92
  io._handle,
94
93
  options._handle,
95
94
  url
96
95
  )
96
+
97
+ options.destroy()
97
98
  }
98
99
 
99
100
  for (const handle of binding.getFormatContextStreams(this._handle)) {
package/lib/frame.js CHANGED
@@ -13,36 +13,44 @@ module.exports = class FFmpegFrame extends ReferenceCounted {
13
13
  this._handle = null
14
14
  }
15
15
 
16
- channel(i) {
17
- if (i < 0 || i > 7) {
18
- throw new RangeError(`Channel index must be between 0 and 7`)
19
- }
20
-
21
- return Buffer.from(binding.getFrameChannel(this._handle, i))
16
+ get width() {
17
+ return binding.getFrameWidth(this._handle)
22
18
  }
23
19
 
24
20
  set width(value) {
25
21
  binding.setFrameWidth(this._handle, value)
26
22
  }
27
23
 
28
- get width() {
29
- return binding.getFrameWidth(this._handle)
24
+ get height() {
25
+ return binding.getFrameHeight(this._handle)
30
26
  }
31
27
 
32
28
  set height(value) {
33
29
  binding.setFrameHeight(this._handle, value)
34
30
  }
35
31
 
36
- get height() {
37
- return binding.getFrameHeight(this._handle)
32
+ get pixelFormat() {
33
+ return binding.getFramePixelFormat(this._handle)
38
34
  }
39
35
 
40
36
  set pixelFormat(value) {
41
37
  binding.setFramePixelFormat(this._handle, value)
42
38
  }
43
39
 
44
- get pixelFormat() {
45
- return binding.getFramePixelFormat(this._handle)
40
+ audioChannel(i) {
41
+ if (i < 0 || i > 7) {
42
+ throw new RangeError(`Channel index must be between 0 and 7`)
43
+ }
44
+
45
+ return Buffer.from(binding.getFrameAudioChannel(this._handle, i))
46
+ }
47
+
48
+ imageData() {
49
+ return Buffer.from(binding.getFrameImageData(this._handle))
50
+ }
51
+
52
+ lineSize(channel) {
53
+ return binding.getFrameLineSize(this._handle, channel)
46
54
  }
47
55
 
48
56
  alloc() {
@@ -16,9 +16,6 @@ switch (Bare.platform) {
16
16
 
17
17
  module.exports = class FFmpegInputFormat {
18
18
  constructor(name = defaultName) {
19
- if (typeof name !== 'string' || name.length < 1) {
20
- throw new TypeError('Input format name should be a non empty string')
21
- }
22
19
  this._handle = binding.initInputFormat(name)
23
20
  }
24
21
  }
package/lib/packet.js CHANGED
@@ -6,12 +6,6 @@ module.exports = class FFmpegPacket extends ReferenceCounted {
6
6
  super()
7
7
 
8
8
  if (buffer) {
9
- if (!Buffer.isBuffer(buffer)) {
10
- throw TypeError(
11
- `Buffer parameter should be of type Buffer but got: ${typeof buffer}`
12
- )
13
- }
14
-
15
9
  this._handle = binding.initPacketFromBuffer(
16
10
  buffer.buffer,
17
11
  buffer.byteOffset,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-ffmpeg",
3
- "version": "1.0.0-2",
3
+ "version": "1.0.0-4",
4
4
  "description": "Low-level FFmpeg bindings for Bare",
5
5
  "exports": {
6
6
  ".": "./index.js",