List Info

Thread: how to decode data received from rtsp using dtdriver framework?




how to decode data received from rtsp using dtdriver framework?
user name
2006-09-22 20:43:31
I have two separate modules

one module is like this:

   result &=
driver_commands->SetPropertyULONG32("Header",
0);
   result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);

ff_driver->Drive("rtsp://127.0.0.1:554/test.rm?cloak
port=89,554", NULL);

The second one is (receiving data from a buffer IHXDataFile
and output 
to a buffer IHXSourceInput):

     HXFFT_BAIL(ff_driver->SetClientContext((IUnknown
*)(IHXDataFile 
*)input_node));

     result &=
driver_commands->SetPropertyULONG32("DecodeSource&qu
ot;, 1);
     result &=
driver_commands->SetPropertyULONG32("DecodeVideo&quo
t;, 1);
     result &=
driver_commands->SetPropertyULONG32("DecodeAudio&quo
t;, 1);
     result &=
driver_commands->SetPropertyULONG32("Header",
0);
     result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);

ff_driver->Drive("fileproxy://.rm", NULL);

- - - - - - - - - - - - - -

If I open a local .rm file with open and send the bytes
(using 
IHXDataFile input) to Helix, my second module works fine.

How can I get from fist module and send it to second module?

btw: I noticed that my first module is only pushing out
x-pn-realvideo 
packet data but its header, may be it is the reason I cant
connect my 
first module to second module.

BR,
Edgard

_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
how to decode data received from rtsp using dtdriver framework?
user name
2006-09-26 15:46:23
The output that your first module produces is not compatible
with the 
IHXDataFile input via fileproxy:// filesystem.  The reason
is that 
IHXDataFile operates on a flat file (.rm file) and
IHXSourceInput produces 
Helix standard packetized stream.

To have the two connect, instead of using fileproxy file
system in the 
second module, use directio instead.  The example of
directio is in 
datatypetoolsdtdriversamplesdirect_io .

It simply creates a source handler object that supports
IHXSourceInput 
interface to connect to dtdriver pipeline and supply input
to the 
pipeline.  It sets "DecodeSource" to 2 (any value
> 1 will do in this case) 
to ensure decoder is placed after the source handler acting
as input.  The 
chain is then driven without specifying any input file name:

retVal = pFFDriver->Init(NULL,          // no log output
file name
                                  NULL,          // media
file output file name
                                  NULL,          //
temporary directory name
                                  pCommands,     // commands
to dtdrive
                                  pOutputNode,   //
IHXSourceInput*
                                  NULL,          // Custom
file writer 
(IHXFileWriter)
                                 
pCustomProcessingNodeChain);   // my node 
that supplies input

Milko


At 01:43 PM 9/22/2006, Edgard Lima wrote:
>I have two separate modules
>
>one module is like this:
>
>   result &=
driver_commands->SetPropertyULONG32("Header",
0);
>   result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);
>
>ff_driver->Drive("rtsp://127.0.0.1:554/test.rm?c
loakport=89,554", NULL);
>
>The second one is (receiving data from a buffer
IHXDataFile and output to 
>a buffer IHXSourceInput):
>
>     HXFFT_BAIL(ff_driver->SetClientContext((IUnknown
*)(IHXDataFile 
> *)input_node));
>
>     result &=
driver_commands->SetPropertyULONG32("DecodeSource&qu
ot;, 1);
>     result &=
driver_commands->SetPropertyULONG32("DecodeVideo&quo
t;, 1);
>     result &=
driver_commands->SetPropertyULONG32("DecodeAudio&quo
t;, 1);
>     result &=
driver_commands->SetPropertyULONG32("Header",
0);
>     result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);
>
>ff_driver->Drive("fileproxy://.rm", NULL);
>
>- - - - - - - - - - - - - -
>
>If I open a local .rm file with open and send the bytes
(using IHXDataFile 
>input) to Helix, my second module works fine.
>
>How can I get from fist module and send it to second
module?
>
>btw: I noticed that my first module is only pushing out
x-pn-realvideo 
>packet data but its header, may be it is the reason I
cant connect my 
>first module to second module.
>
>BR,
>Edgard



_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
how to decode data received from rtsp using dtdriver framework?
user name
2006-09-26 19:47:57
How to do 'seek' in the first module (the rtsp one) ?

BR,
Edgard




Milko Boic wrote:
>
> The output that your first module produces is not
compatible with the 
> IHXDataFile input via fileproxy:// filesystem.  The
reason is that 
> IHXDataFile operates on a flat file (.rm file) and
IHXSourceInput 
> produces Helix standard packetized stream.
>
> To have the two connect, instead of using fileproxy
file system in the 
> second module, use directio instead.  The example of
directio is in 
> datatypetoolsdtdriversamplesdirect_io .
>
> It simply creates a source handler object that supports
IHXSourceInput 
> interface to connect to dtdriver pipeline and supply
input to the 
> pipeline.  It sets "DecodeSource" to 2 (any
value > 1 will do in this 
> case) to ensure decoder is placed after the source
handler acting as 
> input.  The chain is then driven without specifying any
input file name:
>
> retVal = pFFDriver->Init(NULL,          // no log
output file name
>                                  NULL,          //
media file output 
> file name
>                                  NULL,          //
temporary directory 
> name
>                                  pCommands,     //
commands to dtdrive
>                                  pOutputNode,   //
IHXSourceInput*
>                                  NULL,          //
Custom file writer 
> (IHXFileWriter)
>                                 
pCustomProcessingNodeChain);   // my 
> node that supplies input
>
> Milko
>
>
> At 01:43 PM 9/22/2006, Edgard Lima wrote:
>> I have two separate modules
>>
>> one module is like this:
>>
>>   result &=
driver_commands->SetPropertyULONG32("Header",
0);
>>   result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);
>>
>>
ff_driver->Drive("rtsp://127.0.0.1:554/test.rm?cloak
port=89,554", NULL);
>>
>> The second one is (receiving data from a buffer
IHXDataFile and 
>> output to a buffer IHXSourceInput):
>>
>>    
HXFFT_BAIL(ff_driver->SetClientContext((IUnknown
*)(IHXDataFile 
>> *)input_node));
>>
>>     result &=
driver_commands->SetPropertyULONG32("DecodeSource&qu
ot;, 1);
>>     result &=
driver_commands->SetPropertyULONG32("DecodeVideo&quo
t;, 1);
>>     result &=
driver_commands->SetPropertyULONG32("DecodeAudio&quo
t;, 1);
>>     result &=
driver_commands->SetPropertyULONG32("Header",
0);
>>     result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);
>>
>> ff_driver->Drive("fileproxy://.rm",
NULL);
>>
>> - - - - - - - - - - - - - -
>>
>> If I open a local .rm file with open and send the
bytes (using 
>> IHXDataFile input) to Helix, my second module works
fine.
>>
>> How can I get from fist module and send it to
second module?
>>
>> btw: I noticed that my first module is only pushing
out 
>> x-pn-realvideo packet data but its header, may be
it is the reason I 
>> cant connect my first module to second module.
>>
>> BR,
>> Edgard
>
>
>


_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
how to decode data received from rtsp using dtdriver framework?
user name
2006-09-26 20:00:34
At 12:47 PM 9/26/2006, Edgard Lima wrote:

>How to do 'seek' in the first module (the rtsp one) ?

I have not implemented that yet.
Currently to "seek" dtdrive you need to Stop() the
pipeline and Drive() 
again while specifying different "StartTime"
option giving the start time 
in milliseconds.
This will teardown your RTSP session, disconnect and then
reconnect and 
restart the session.

I'll try to implement seek in next few weeks, but feel free
to give it a 
try yourself.

Milko



>BR,
>Edgard
>
>
>
>
>Milko Boic wrote:
>>
>>The output that your first module produces is not
compatible with the 
>>IHXDataFile input via fileproxy:// filesystem.  The
reason is that 
>>IHXDataFile operates on a flat file (.rm file) and
IHXSourceInput 
>>produces Helix standard packetized stream.
>>
>>To have the two connect, instead of using fileproxy
file system in the 
>>second module, use directio instead.  The example of
directio is in 
>>datatypetoolsdtdriversamplesdirect_io .
>>
>>It simply creates a source handler object that
supports IHXSourceInput 
>>interface to connect to dtdriver pipeline and supply
input to the 
>>pipeline.  It sets "DecodeSource" to 2
(any value > 1 will do in this 
>>case) to ensure decoder is placed after the source
handler acting as 
>>input.  The chain is then driven without specifying
any input file name:
>>
>>retVal = pFFDriver->Init(NULL,          // no log
output file name
>>                                  NULL,          //
media file output 
>> file name
>>                                  NULL,          //
temporary directory name
>>                                  pCommands,     //
commands to dtdrive
>>                                  pOutputNode,   //
IHXSourceInput*
>>                                  NULL,          //
Custom file writer 
>> (IHXFileWriter)
>>                                 
pCustomProcessingNodeChain);   // my 
>> node that supplies input
>>
>>Milko
>>
>>
>>At 01:43 PM 9/22/2006, Edgard Lima wrote:
>>>I have two separate modules
>>>
>>>one module is like this:
>>>
>>>   result &=
driver_commands->SetPropertyULONG32("Header",
0);
>>>   result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);
>>>
>>>ff_driver->Drive("rtsp://127.0.0.1:554/t
est.rm?cloakport=89,554", NULL);
>>>
>>>The second one is (receiving data from a buffer
IHXDataFile and output 
>>>to a buffer IHXSourceInput):
>>>
>>>    
HXFFT_BAIL(ff_driver->SetClientContext((IUnknown
*)(IHXDataFile 
>>> *)input_node));
>>>
>>>     result &=
driver_commands->SetPropertyULONG32("DecodeSource&qu
ot;, 1);
>>>     result &=
driver_commands->SetPropertyULONG32("DecodeVideo&quo
t;, 1);
>>>     result &=
driver_commands->SetPropertyULONG32("DecodeAudio&quo
t;, 1);
>>>     result &=
driver_commands->SetPropertyULONG32("Header",
0);
>>>     result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);
>>>
>>>ff_driver->Drive("fileproxy://.rm",
NULL);
>>>
>>>- - - - - - - - - - - - - -
>>>
>>>If I open a local .rm file with open and send
the bytes (using 
>>>IHXDataFile input) to Helix, my second module
works fine.
>>>
>>>How can I get from fist module and send it to
second module?
>>>
>>>btw: I noticed that my first module is only
pushing out x-pn-realvideo 
>>>packet data but its header, may be it is the
reason I cant connect my 
>>>first module to second module.
>>>
>>>BR,
>>>Edgard
>>
>>



_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
how to decode data received from rtsp using dtdriver framework?
user name
2006-09-26 21:14:45
Hi Milko,

If possible, it would be good if you could implement Pause
and Resume too.

btw2: please let me know when you finish it.

BR,
Edgard

Milko Boic wrote:
> At 12:47 PM 9/26/2006, Edgard Lima wrote:
>
>> How to do 'seek' in the first module (the rtsp one)
?
>
> I have not implemented that yet.
> Currently to "seek" dtdrive you need to
Stop() the pipeline and 
> Drive() again while specifying different
"StartTime" option giving the 
> start time in milliseconds.
> This will teardown your RTSP session, disconnect and
then reconnect 
> and restart the session.
>
> I'll try to implement seek in next few weeks, but feel
free to give it 
> a try yourself.
>
> Milko
>
>
>
>> BR,
>> Edgard
>>
>>
>>
>>
>> Milko Boic wrote:
>>>
>>> The output that your first module produces is
not compatible with 
>>> the IHXDataFile input via fileproxy://
filesystem.  The reason is 
>>> that IHXDataFile operates on a flat file (.rm
file) and 
>>> IHXSourceInput produces Helix standard
packetized stream.
>>>
>>> To have the two connect, instead of using
fileproxy file system in 
>>> the second module, use directio instead.  The
example of directio is 
>>> in datatypetoolsdtdriversamplesdirect_io .
>>>
>>> It simply creates a source handler object that
supports 
>>> IHXSourceInput interface to connect to dtdriver
pipeline and supply 
>>> input to the pipeline.  It sets
"DecodeSource" to 2 (any value > 1 
>>> will do in this case) to ensure decoder is
placed after the source 
>>> handler acting as input.  The chain is then
driven without 
>>> specifying any input file name:
>>>
>>> retVal = pFFDriver->Init(NULL,          //
no log output file name
>>>                                  NULL,         
// media file output 
>>> file name
>>>                                  NULL,         
// temporary 
>>> directory name
>>>                                  pCommands,    
// commands to dtdrive
>>>                                  pOutputNode,  
// IHXSourceInput*
>>>                                  NULL,         
// Custom file 
>>> writer (IHXFileWriter)
>>>                                 
pCustomProcessingNodeChain);   // 
>>> my node that supplies input
>>>
>>> Milko
>>>
>>>
>>> At 01:43 PM 9/22/2006, Edgard Lima wrote:
>>>> I have two separate modules
>>>>
>>>> one module is like this:
>>>>
>>>>   result &=
driver_commands->SetPropertyULONG32("Header",
0);
>>>>   result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);
>>>>
>>>>
ff_driver->Drive("rtsp://127.0.0.1:554/test.rm?cloak
port=89,554", 
>>>> NULL);
>>>>
>>>> The second one is (receiving data from a
buffer IHXDataFile and 
>>>> output to a buffer IHXSourceInput):
>>>>
>>>>    
HXFFT_BAIL(ff_driver->SetClientContext((IUnknown
*)(IHXDataFile 
>>>> *)input_node));
>>>>
>>>>     result &=
driver_commands->SetPropertyULONG32("DecodeSource&qu
ot;, 1);
>>>>     result &=
driver_commands->SetPropertyULONG32("DecodeVideo&quo
t;, 1);
>>>>     result &=
driver_commands->SetPropertyULONG32("DecodeAudio&quo
t;, 1);
>>>>     result &=
driver_commands->SetPropertyULONG32("Header",
0);
>>>>     result &=
driver_commands->SetPropertyULONG32("MaxSpeed",
1);
>>>>
>>>>
ff_driver->Drive("fileproxy://.rm", NULL);
>>>>
>>>> - - - - - - - - - - - - - -
>>>>
>>>> If I open a local .rm file with open and
send the bytes (using 
>>>> IHXDataFile input) to Helix, my second
module works fine.
>>>>
>>>> How can I get from fist module and send it
to second module?
>>>>
>>>> btw: I noticed that my first module is only
pushing out 
>>>> x-pn-realvideo packet data but its header,
may be it is the reason 
>>>> I cant connect my first module to second
module.
>>>>
>>>> BR,
>>>> Edgard
>>>
>>>
>
>
>
> _______________________________________________
> Datatype-dev mailing list
> Datatype-devhelixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev


_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
[1-5]

about | contact  Other archives ( Real Estate discussion Medical topics )