The documentation is vague about it and there are no previous questions I could find.
Is this encoder profile supported from the imx6 platform?
Thank you.
Solved! Go to Solution.
Giovanni,
You are correct the intraRefresh parameter is the latency and you can control the I-frames and P-frames in the EncOpenParam structure, modifing the Gobsize
typedef struct {
CodStd bitstreamFormat;
PhysicalAddress bitstreamBuffer;
Uint32 bitstreamBufferSize;
Uint8 *virt_bitstreamBuffer;
int streamBufResetEnable;
int picWidth;
int picHeight;
Uint32 frameRateInfo;
int bitRate;
int initialDelay;
int vbvBufferSize;
int enableAutoSkip;
int gopSize;
int sliceMode;
int sliceSizeMode;
int sliceSize;
int intraRefresh;
int sliceReport;
int mbReport;
int mbQpReport;
union {
EncMp4Param mp4Param;
EncH263Param h263Param;
EncAvcParam avcParam;
} EncStdParam;
} EncOpenParam;
Gobsize
0 – Only first picture is I, 1 – all I pictures, 2 – IPIP…, 3 – IPPIPP…
The maximum value is limited by 60.
If you find a solution please let me know.
Well, from this question: https://community.freescale.com/thread/311299
and this quote from the manual:
intraRefresh where 0 = Intra MB refresh is not used. Otherwise = At least N MB's in every P-frame are encoded as intra MB's.
It should be possible to have intra refresh P frames, while having maybe 1 I frame every few hours? Depending on how that number is declared? Even if it's a 16 bit one it should still be quite a lot of frames before an I one.
But maybe my understanding of it is completely wrong.
Giovanni,
You are correct the intraRefresh parameter is the latency and you can control the I-frames and P-frames in the EncOpenParam structure, modifing the Gobsize
typedef struct {
CodStd bitstreamFormat;
PhysicalAddress bitstreamBuffer;
Uint32 bitstreamBufferSize;
Uint8 *virt_bitstreamBuffer;
int streamBufResetEnable;
int picWidth;
int picHeight;
Uint32 frameRateInfo;
int bitRate;
int initialDelay;
int vbvBufferSize;
int enableAutoSkip;
int gopSize;
int sliceMode;
int sliceSizeMode;
int sliceSize;
int intraRefresh;
int sliceReport;
int mbReport;
int mbQpReport;
union {
EncMp4Param mp4Param;
EncH263Param h263Param;
EncAvcParam avcParam;
} EncStdParam;
} EncOpenParam;
Gobsize
0 – Only first picture is I, 1 – all I pictures, 2 – IPIP…, 3 – IPPIPP…
The maximum value is limited by 60.
Hi, and thank you for the answer.
Can you also confirm that the encoder doesn't support slice based encoding (or rather it does, but it can't output/input slices instead of full frames, so I need to wait for the full frame during the encoding and during the decoding, and I add 2 frames of latency to my application without considering anything else?
Thank you.