videnc1 re-start

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
mat
Reply | Threaded
Open this post in threaded view
|

videnc1 re-start

mat
I am having a strange problem upgrading my mpeg4enc codec from the
XDM0.9 version to the latest one that is in the latest codec bundle v1.3.

I have successfully ported all the other codecs that I am using to the
XDM1 ce interface, so I have a pretty decent understanding about the
changes in setting up the params, dynamic params, etc. I also refer to
the DMAI examples for default params etc.

I have ported the code for the mpeg4enc to VIDENC1, and I have a
function for creating the algorithm and executing the algorithm and I
use VIDENC1_delete to close it.
When I first create it and start executing on captured frames it works
great, so the buffers and parameters are setup correctly.
But if I delete it and then re-create it using the same functions which
initializes everything from scratch, it will create successfully, but
the first time I try to execute it (VIDENC1_process) it always fails
with an extended error code of 0xA000. This error code means
XDM_FATLERROR (as if there are non-fatal errors with codec engine) and
XDM_UNSUPPORTEDINPUT (unsupported feature/parameter in input).
I am pretty sure that it is not a bad parameter or dynamic parameter
since I am completely recreating the algorithm instance with the same
parameters as when it works before the delete. So I think it must be
something wrong with the input buffer. I have attached the trace below,
one from when it works and one from when it fails, and the only
difference is the address of the input buffer.
Which is why this is a strange error, I execute the function using the
same input and output buffers both times, however after I delete and
re-create the algorithm instance it seems to look for the input at a
different memory address. To the best of my knowledge I did not change
the input buffer as it is part of my video capture device init.

Any idea how deleting and recreating the algorithm instance can cause
something like this?
Using the old codec and interface I could easily delete and re-create
the algorithm.
Also, is there anyway to make the codec start over from scratch? The
reason I have to delete and re-create it is when I start recording video
to an avi file, it will only play back if the first frame in the file
has some information that it seems to only create when I first start the
algorithm. I have tried forcing an I frame as the first frame, and it is
not enough, it still is missing some kind of first frame header
information. I have also tried XDM_RESET and XDM_FLUSH and they don't
seem to actually do anything.

Thanks, any help would be appreciated.
-mat

Traces are below, I put in BOLD the only parts that are different, and
it is just a different memory location for the input buffer. So I am
wondering why it matters where the input buffer is located, provided it
is contiguous, and also how it changed from the act of deleting and
re-creating the algorithm which should have nothing to do with the input
buffer memory address.

Trace from working VIDENC1_process:

@28,417,365us: [+0 T:0x4001cfb0 S:0xbec0b69c] ti.sdo.ce.video1.VIDENC1 -
VIDENC1_process> Enter (handle=0xf95d0, inBufs=0xbec0b87c,
outBufs=0xbec0b870, inArgs=0xbec0b85c, outArgs=0xbec0b7e4)
@28,417,629us: [+5 T:0x4001cfb0 S:0xbec0b62c] CV - VISA_allocMsg>
Allocating message for
messageId=0x0002001d                                                                                  

*@28,417,836us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory_getBufferPhysicalAddress> Enter(virtAddr=0x40d05000,
size=576000)                                                                    

@28,418,016us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> Enter(virtAddr=0x40d05000,
size=576000)                                                                        

@28,759,560us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> found in cb(Sc=0x40d05000, Ec=0x40d91a00,
Ss=0x40d05000, Es=0x40d91a00, PSc=0x86000000)                        
@28,759,795us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> returning
physAddr=0x86000000                                                                                  

@28,759,968us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory_getBufferPhysicalAddress> return
(0x86000000)      *                                                                                  

@28,760,136us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory_getBufferPhysicalAddress> Enter(virtAddr=0x42850000,
size=864000)                                                                    

@28,760,307us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> Enter(virtAddr=0x42850000,
size=864000)                                                                        

@28,760,475us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> found in cb(Sc=0x42850000, Ec=0x42922f00,
Ss=0x42850000, Es=0x42922f00, PSc=0x87fea000)                        
@28,760,660us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> returning
physAddr=0x87fea000                                                                                  

@28,760,819us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory_getBufferPhysicalAddress> return
(0x87fea000)                                                                                        

@28,761,029us: [+0 T:0x4001cfb0 S:0xbec0b63c] CV -
VISA_call(visa=0xf95d0, msg=0x427e0c80): messageId=0x0002001d,
command=0x0                                                                  

@28,761,214us: [+0 T:0x4001cfb0 S:0xbec0b604] OC - Comm_put>
Enter(queue=0x2,
msg=0x427e0c80)                                                                                                  

@28,761,454us: [+0 T:0x4001cfb0 S:0xbec0b604] OC - Comm_put> return
(0)                                                                                                                        

@28,761,634us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OC - Comm_get>
Enter(queue=0x10001, msg=0xbec0b6b4,
timeout=-1)                                                                                  

@28,778,302us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OC - Comm_get> MSGQ_get()
status=0x8000, return
(0)                                                                                              

@28,778,545us: [+0 T:0x4001cfb0 S:0xbec0b58c] OC - Comm_put>
Enter(queue=0x0,
msg=0x427dfc80)                                                                                                  

@28,778,793us: [+0 T:0x4001cfb0 S:0xbec0b58c] OC - Comm_put> return
(0)                                                                                                                        

@28,779,127us: [+0 T:0x4001cfb0 S:0xbec0b584] OC - Comm_get>
Enter(queue=0x10000, msg=0xbec0b624,
timeout=-1)                                                                                  

@28,779,369us: [+0 T:0x4001cfb0 S:0xbec0b584] OC - Comm_get> MSGQ_get()
status=0x8000, return
(0)                                                                                              

[DSP] @60,405,214tk: [+5 T:0x8fbc124c S:0x8fbc5214] CN - NODE>
0x8fbc0c00(mpeg4enc#0) call(algHandle=0x8fbc0cc0, msg=0x8fe06c80);
messageId=0x0002001d                                        
[DSP] @60,405,309tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM -
Memory_cacheInv> Enter(addr=0x86000000,
sizeInBytes=576000)                                                                          

[DSP] @60,405,997tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM -
Memory_cacheInv>
return                                                                                                              

[DSP] @60,406,040tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM -
Memory_cacheInv> Enter(addr=0x87fea000,
sizeInBytes=864000)                                                                          

[DSP] @60,407,036tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM -
Memory_cacheInv>
return                                                                                                              

[DSP] @60,407,081tk: [+0 T:0x8fbc124c S:0x8fbc50a4]
ti.sdo.ce.video1.VIDENC1 - VIDENC1_process> Enter (handle=0x8fbc0cc0,
inBufs=0x8fbc5144, outBufs=0x8fbc5214, inArgs=0x8fe06e04, outArgs=0x)
[DSP] @60,407,188tk: [+5 T:0x8fbc124c S:0x8fbc5084] CV -
VISA_enter(visa=0x8fbc0cc0): algHandle =
0x8fbc0cf0                                                                                  

[DSP] @60,407,249tk: [+0 T:0x8fbc124c S:0x8fbc5064]
ti.sdo.ce.alg.Algorithm - Algorithm_activate>
Enter(alg=0x8fbc0cf0)                                                                        

[DSP] @60,407,311tk: [+0 T:0x8fbc124c S:0x8fbc5064]
ti.sdo.ce.alg.Algorithm - Algorithm_activate>
Exit                                                                                        

[DSP] @60,441,542tk: [+5 T:0x8fbc124c S:0x8fbc5084] CV -
VISA_exit(visa=0x8fbc0cc0): algHandle =
0x8fbc0cf0                                                                                    

[DSP] @60,441,633tk: [+0 T:0x8fbc124c S:0x8fbc5064]
ti.sdo.ce.alg.Algorithm - Algorithm_deactivate>
Enter(alg=0x8fbc0cf0)                                                                      

[DSP] @60,441,699tk: [+0 T:0x8fbc124c S:0x8fbc5064]
ti.sdo.ce.alg.Algorithm - Algorithm_deactivate>
Exit                                                                                      

[DSP] @60,441,752tk: [+0 T:0x8fbc124c S:0x8fbc50a4]
ti.sdo.ce.video1.VIDENC1 - VIDENC1_process> Exit (handle=0x8fbc0cc0,
retVal=0x0)                                                          
[DSP] @60,441,822tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM - Memory_cacheWb>
Enter(addr=0x87fea000,
sizeInBytes=864000)                                                                            

[DSP] @60,442,853tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM - Memory_cacheWb>
return                                                                                                                

[DSP] @60,442,895tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM - Memory_cacheWb>
Enter(addr=0x88002d00,
sizeInBytes=363776)                                                                            

[DSP] @60,443,350tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM - Memory_cacheWb>
return                                                                                                                

[DSP] @60,443,392tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM - Memory_cacheWb>
Enter(addr=0x8805ba00,
sizeInBytes=90944)                                                                            

[DSP] @60,443,550tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM - Memory_cacheWb>
return                                                                                                                

[DSP] @60,443,593tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM - Memory_cacheWb>
Enter(addr=0x88071d40,
sizeInBytes=90944)                                                                            

[DSP] @60,443,751tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM - Memory_cacheWb>
return                                                                                                                

[DSP] @60,443,798tk: [+5 T:0x8fbc124c S:0x8fbc5214] CN - NODE> returned
from call(algHandle=0x8fbc0cc0, msg=0x8fe06c80);
messageId=0x0002001d                                                
[DSP] @60,445,457tk: [+0 T:0x8fbbc134 S:0x8fbc00f4] CR -
processRmsCmd(0x8fe05ca8, 4056): cmd =
5                                                                                              

[DSP] @60,445,517tk: [+0 T:0x8fbbc134 S:0x8fbc00f4] CR - remote time =
0x0, trace buffer size =
4032                                                                                          

@29,124,226us: [+0 T:0x4001cfb0 S:0xbec0b5bc] CE - Engine_fwriteTrace>
returning count
[2670]                                                                                                  

@29,124,424us: [+0 T:0x4001cfb0 S:0xbec0b63c] CV - VISA_call Completed:
messageId=0x0002001d, command=0x0,
return(status=0)                                                                    

@29,124,611us: [+0 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory_getBufferVirtualAddress> Enter(physAddr=0x87fea000,
size=864000)                                                                    

@29,124,781us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> Enter(physAddr=0x87fea000,
size=864000)                                                                          

@29,124,978us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> found in cb(Sc=0x87fea000, Ec=0x880bcf00,
Ss=0x87fea000, Es=0x880bcf00)                                        
@29,125,163us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> returning
virtAddr=0x42850000                                                                                    

@29,125,323us: [+0 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory_getBufferVirtualAddress> return
(0x42850000)                                                                                        

@29,125,481us: [+0 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory_getBufferVirtualAddress> Enter(physAddr=0x88002d00,
size=363776)                                                                    

@29,125,641us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> Enter(physAddr=0x88002d00,
size=363776)                                                                          

@29,125,804us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> found in cb(Sc=0x87fea000, Ec=0x880bcf00,
Ss=0x88002d00, Es=0x8805ba00)                                        
@29,125,977us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> returning
virtAddr=0x42868d00                                                                                    

@29,126,130us: [+0 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory_getBufferVirtualAddress> return
(0x42868d00)                                                                                        

@29,126,287us: [+0 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory_getBufferVirtualAddress> Enter(physAddr=0x8805ba00,
size=90944)                                                                      

@29,126,484us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> Enter(physAddr=0x8805ba00,
size=90944)                                                                          

@29,126,651us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> found in cb(Sc=0x87fea000, Ec=0x880bcf00,
Ss=0x8805ba00, Es=0x88071d40)                                        
@29,126,826us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> returning
virtAddr=0x428c1a00                                                                                    

@29,126,983us: [+0 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory_getBufferVirtualAddress> return
(0x428c1a00)                                                                                        

@29,127,137us: [+0 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory_getBufferVirtualAddress> Enter(physAddr=0x88071d40,
size=90944)                                                                      

@29,127,395us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> Enter(physAddr=0x88071d40,
size=90944)                                                                          

@29,127,573us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> found in cb(Sc=0x87fea000, Ec=0x880bcf00,
Ss=0x88071d40, Es=0x88088080)                                        
@29,127,750us: [+1 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory__getVirtualAddress> returning
virtAddr=0x428d7d40                                                                                    

@29,127,939us: [+0 T:0x4001cfb0 S:0xbec0b61c] OM -
Memory_getBufferVirtualAddress> return
(0x428d7d40)                                                                                        

@29,128,104us: [+5 T:0x4001cfb0 S:0xbec0b62c] CV - VISA_freeMsg(0xf95d0,
0x427e0c80): Freeing message with
messageId=0x0002001d                                                                

@29,128,281us: [+0 T:0x4001cfb0 S:0xbec0b69c] ti.sdo.ce.video1.VIDENC1 -
VIDENC1_process> Exit (handle=0xf95d0, retVal=0x0)      




Trace from non-working VIDENC1_process:

@33,038,064us: [+0 T:0x4001cfb0 S:0xbec0b69c] ti.sdo.ce.video1.VIDENC1 -
VIDENC1_process> Enter (handle=0xf95d0, inBufs=0xbec0b87c,
outBufs=0xbec0b870, inArgs=0xbec0b85c, outArgs=0xbec0b7e4)
@33,038,283us: [+5 T:0x4001cfb0 S:0xbec0b62c] CV - VISA_allocMsg>
Allocating message for
messageId=0x00020023                                                                                  

*@33,038,475us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory_getBufferPhysicalAddress> Enter(virtAddr=0x41305000,
size=576000)                                                                    

@33,038,649us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> Enter(virtAddr=0x41305000,
size=576000)                                                                        

@33,038,860us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> found in cb(Sc=0x41305000, Ec=0x41391a00,
Ss=0x41305000, Es=0x41391a00, PSc=0x85800000)                        
@33,039,051us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> returning
physAddr=0x85800000                                                                                  

@33,039,213us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory_getBufferPhysicalAddress> return
(0x85800000)     *                                                                                  

@33,039,375us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory_getBufferPhysicalAddress> Enter(virtAddr=0x42850000,
size=864000)                                                                    

@33,039,545us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> Enter(virtAddr=0x42850000,
size=864000)                                                                        

@33,039,710us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> found in cb(Sc=0x42850000, Ec=0x42922f00,
Ss=0x42850000, Es=0x42922f00, PSc=0x87fea000)                        
@33,039,896us: [+1 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory__getPhysicalAddress> returning
physAddr=0x87fea000                                                                                  

@33,040,058us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OM -
Memory_getBufferPhysicalAddress> return
(0x87fea000)                                                                                        

@33,040,259us: [+0 T:0x4001cfb0 S:0xbec0b63c] CV -
VISA_call(visa=0xf95d0, msg=0x427e0c80): messageId=0x00020023,
command=0x0                                                                  

@33,040,438us: [+0 T:0x4001cfb0 S:0xbec0b604] OC - Comm_put>
Enter(queue=0x2,
msg=0x427e0c80)                                                                                                  

@33,040,682us: [+0 T:0x4001cfb0 S:0xbec0b604] OC - Comm_put> return
(0)                                                                                                                        

@33,040,865us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OC - Comm_get>
Enter(queue=0x10001, msg=0xbec0b6b4,
timeout=-1)                                                                                  

@33,041,917us: [+0 T:0x4001cfb0 S:0xbec0b5fc] OC - Comm_get> MSGQ_get()
status=0x8000, return
(0)                                                                                              

@33,042,155us: [+0 T:0x4001cfb0 S:0xbec0b58c] OC - Comm_put>
Enter(queue=0x0,
msg=0x427dfc80)                                                                                                  

@33,042,399us: [+0 T:0x4001cfb0 S:0xbec0b58c] OC - Comm_put> return
(0)                                                                                                                        

@33,042,742us: [+0 T:0x4001cfb0 S:0xbec0b584] OC - Comm_get>
Enter(queue=0x10000, msg=0xbec0b624,
timeout=-1)                                                                                  

@33,042,990us: [+0 T:0x4001cfb0 S:0xbec0b584] OC - Comm_get> MSGQ_get()
status=0x8000, return
(0)                                                                                              

[DSP] @70,334,811tk: [+5 T:0x8fbc124c S:0x8fbc5214] CN - NODE>
0x8fbc0c00(mpeg4enc#3) call(algHandle=0x8fbc0cc0, msg=0x8fe06c80);
messageId=0x00020023                                        
[DSP] @70,334,898tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM -
Memory_cacheInv> Enter(addr=0x85800000,
sizeInBytes=576000)                                                                          

[DSP] @70,335,585tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM -
Memory_cacheInv>
return                                                                                                              

[DSP] @70,335,629tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM -
Memory_cacheInv> Enter(addr=0x87fea000,
sizeInBytes=864000)                                                                          

[DSP] @70,336,625tk: [+0 T:0x8fbc124c S:0x8fbc50dc] OM -
Memory_cacheInv>
return                                                                                                              

[DSP] @70,336,671tk: [+0 T:0x8fbc124c S:0x8fbc50a4]
ti.sdo.ce.video1.VIDENC1 - VIDENC1_process> Enter (handle=0x8fbc0cc0,
inBufs=0x8fbc5144, outBufs=0x8fbc5214, inArgs=0x8fe06e04, outArgs=0x)
[DSP] @70,336,778tk: [+5 T:0x8fbc124c S:0x8fbc5084] CV -
VISA_enter(visa=0x8fbc0cc0): algHandle =
0x8fbc0cf0                                                                                  

[DSP] @70,336,838tk: [+0 T:0x8fbc124c S:0x8fbc5064]
ti.sdo.ce.alg.Algorithm - Algorithm_activate>
Enter(alg=0x8fbc0cf0)                                                                        

[DSP] @70,336,898tk: [+0 T:0x8fbc124c S:0x8fbc5064]
ti.sdo.ce.alg.Algorithm - Algorithm_activate>
Exit                                                                                        

[DSP] @70,336,964tk: [+5 T:0x8fbc124c S:0x8fbc5084] CV -
VISA_exit(visa=0x8fbc0cc0): algHandle =
0x8fbc0cf0                                                                                    

[DSP] @70,337,023tk: [+0 T:0x8fbc124c S:0x8fbc5064]
ti.sdo.ce.alg.Algorithm - Algorithm_deactivate>
Enter(alg=0x8fbc0cf0)                                                                      

[DSP] @70,337,084tk: [+0 T:0x8fbc124c S:0x8fbc5064]
ti.sdo.ce.alg.Algorithm - Algorithm_deactivate>
Exit                                                                                      

[DSP] @70,337,137tk: [+0 T:0x8fbc124c S:0x8fbc50a4]
ti.sdo.ce.video1.VIDENC1 - VIDENC1_process> Exit (handle=0x8fbc0cc0,
retVal=0xffffffff)                                                  
[DSP] @70,337,209tk: [+5 T:0x8fbc124c S:0x8fbc5214] CN - NODE> returned
from call(algHandle=0x8fbc0cc0, msg=0x8fe06c80);
messageId=0x00020023                                                
[DSP] @70,338,809tk: [+0 T:0x8fbbc134 S:0x8fbc00f4] CR -
processRmsCmd(0x8fe05ca8, 4056): cmd =
5                                                                                              

[DSP] @70,338,865tk: [+0 T:0x8fbbc134 S:0x8fbc00f4] CR - remote time =
0x0, trace buffer size =
4032                                                                                          

@33,386,941us: [+0 T:0x4001cfb0 S:0xbec0b5bc] CE - Engine_fwriteTrace>
returning count
[1895]                                                                                                  

@33,387,235us: [+0 T:0x4001cfb0 S:0xbec0b63c] CV - VISA_call Completed:
messageId=0x00020023, command=0x0,
return(status=-1)                                                                  

@33,387,431us: [+5 T:0x4001cfb0 S:0xbec0b62c] CV - VISA_freeMsg(0xf95d0,
0x427e0c80): Freeing message with
messageId=0x00020023                                                                

@33,387,609us: [+0 T:0x4001cfb0 S:0xbec0b69c] ti.sdo.ce.video1.VIDENC1 -
VIDENC1_process> Exit (handle=0xf95d0,
retVal=0xffffffff)                                                            

Spinner Video Error: VIDENC1_process() failed with a fatal error (-1
ext: 0xa000)                                                        




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://linux.omap.com/pipermail/davinci-linux-open-source/attachments/20091106/fea43166/attachment-0001.htm
Reply | Threaded
Open this post in threaded view
|

videnc1 re-start

Vladimir Pantelic
mat wrote:

> the first time I try to execute it (VIDENC1_process) it always fails
> with an extended error code of 0xA000. This error code means
> XDM_FATLERROR (as if there are non-fatal errors with codec engine)

oh, there are :-) it all depends on the codec...

> Also, is there anyway to make the codec start over from scratch? The
> reason I have to delete and re-create it is when I start recording video
> to an avi file, it will only play back if the first frame in the file
> has some information that it seems to only create when I first start the
> algorithm. I have tried forcing an I frame as the first frame, and it is
> not enough, it still is missing some kind of first frame header
> information. I have also tried XDM_RESET and XDM_FLUSH and they don't
> seem to actually do anything.

what you are missing is a VOL header, not every I-frame caries the information
needed to decode the stream, it's in the VOL object. you might be able to
force the coded to generate a VOL header, check the codec specs.
(you might also scan for and save the VOL header on the 1st encoded frame
and re-use it later...)