librtmp 0.1.3 → 0.1.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.
@@ -1,3 +1,8 @@
1
+ v0.1.4
2
+ ======
3
+ * Added check to make sure we only use RTMP_Write() when we are sending FLV data.
4
+ * Updated FFI implementation.
5
+
1
6
  v0.1.3
2
7
  ======
3
8
  * Added nil check before sending data in Streamer#send.
@@ -86,13 +86,13 @@ module Librtmp
86
86
  # void AMF_DecodeLongString(const char *data, AVal * str);
87
87
  # int AMF_DecodeBoolean(const char *data);
88
88
  # double AMF_DecodeNumber(const char *data);
89
- attach_function :AMF_DecodeInt16, [:string], :ushort
90
- attach_function :AMF_DecodeInt24, [:string], :uint
91
- attach_function :AMF_DecodeInt32, [:string], :uint
92
- attach_function :AMF_DecodeString, [:string, AVal], :void
93
- attach_function :AMF_DecodeLongString, [:string, AVal], :void
94
- attach_function :AMF_DecodeBoolean, [:string], :int
95
- attach_function :AMF_DecodeNumber, [:string], :double
89
+ attach_function :AMF_DecodeInt16, [:pointer], :ushort
90
+ attach_function :AMF_DecodeInt24, [:pointer], :uint
91
+ attach_function :AMF_DecodeInt32, [:pointer], :uint
92
+ attach_function :AMF_DecodeString, [:pointer, AVal], :void
93
+ attach_function :AMF_DecodeLongString, [:pointer, AVal], :void
94
+ attach_function :AMF_DecodeBoolean, [:pointer], :int
95
+ attach_function :AMF_DecodeNumber, [:pointer], :double
96
96
 
97
97
  # char *AMF_Encode(AMFObject * obj, char *pBuffer, char *pBufEnd);
98
98
  # int AMF_Decode(AMFObject * obj, const char *pBuffer, int nSize, int bDecodeName);
@@ -24,7 +24,7 @@ module Librtmp
24
24
  :m_packetType, :uint8,
25
25
  :m_hasAbsTimestamp, :uint8,
26
26
  :m_nChannel, :int,
27
- :m_nTimestamp, :uint32,
27
+ :m_nTimeStamp, :uint32,
28
28
  :m_nInfoField2, :int32,
29
29
  :m_nBodySize, :uint32,
30
30
  :m_nBytesRead, :uint32,
@@ -169,6 +169,8 @@ module Librtmp
169
169
  :Link, RTMP_LNK
170
170
  end
171
171
 
172
+ attach_function :RTMP_GetTime, [], :uint32
173
+
172
174
  attach_function :RTMPPacket_Reset, [RTMPPacket], :void
173
175
  attach_function :RTMPPacket_Dump, [RTMPPacket], :void
174
176
  attach_function :RTMPPacket_Alloc, [RTMPPacket, :int], :int
@@ -35,15 +35,9 @@ module Librtmp
35
35
  return if data.nil? || data == ''
36
36
 
37
37
  if data.is_a?(Hash)
38
- packet = build_metadata_packet(data)
39
-
40
- FFI::RTMP_SendPacket(@session_ptr, packet.pointer, 1)
41
- #FFI::RTMP_FreePacket(packet.pointer)
42
- else
43
- data_buffer = ::FFI::MemoryPointer.new(:char, data.size)
44
- data_buffer.put_bytes(0, data)
45
-
46
- FFI::RTMP_Write(@session_ptr, data_buffer, data.size)
38
+ send_metadata_packet(data)
39
+ elsif is_flv?(data)
40
+ FFI::RTMP_Write(@session_ptr, data, data.size)
47
41
  end
48
42
  end
49
43
 
@@ -65,7 +59,7 @@ module Librtmp
65
59
  @session = FFI::RTMP.new @session_ptr
66
60
  end
67
61
 
68
- def build_metadata_packet(data)
62
+ def send_metadata_packet(data)
69
63
  packet = FFI::RTMPPacket.new
70
64
  amf_object = FFI::AMFObject.new
71
65
  amf_object_ptr = amf_object.pointer
@@ -99,5 +93,9 @@ module Librtmp
99
93
 
100
94
  packet
101
95
  end
96
+
97
+ def is_flv?(data)
98
+ data[0..2] == 'FLV'
99
+ end
102
100
  end
103
101
  end
@@ -1,3 +1,3 @@
1
1
  module Librtmp
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: librtmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-23 00:00:00.000000000 Z
12
+ date: 2012-04-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70314008930840 !ruby/object:Gem::Requirement
16
+ requirement: &70300117544840 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70314008930840
24
+ version_requirements: *70300117544840
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: ffi
27
- requirement: &70314008930360 !ruby/object:Gem::Requirement
27
+ requirement: &70300117544380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70314008930360
35
+ version_requirements: *70300117544380
36
36
  description: Provides a wrapper for the librtmp library in Ruby to allow use of the
37
37
  RTMP streaming protocols
38
38
  email:
@@ -67,12 +67,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
67
  - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
+ segments:
71
+ - 0
72
+ hash: 4153078302273606918
70
73
  required_rubygems_version: !ruby/object:Gem::Requirement
71
74
  none: false
72
75
  requirements:
73
76
  - - ! '>='
74
77
  - !ruby/object:Gem::Version
75
78
  version: '0'
79
+ segments:
80
+ - 0
81
+ hash: 4153078302273606918
76
82
  requirements: []
77
83
  rubyforge_project: librtmp
78
84
  rubygems_version: 1.8.12