Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 93ef22e

Browse files
author
Dom Cobley
committed
Remove warnings and add bitrate option
1 parent fd525f5 commit 93ef22e

1 file changed

Lines changed: 37 additions & 1 deletion

File tree

  • host_applications/linux/apps/hello_pi/hello_encode

host_applications/linux/apps/hello_pi/hello_encode/encode.c

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ generate_test_card(void *buf, OMX_U32 * filledLen, int frame)
7272
static void
7373
print_def(OMX_PARAM_PORTDEFINITIONTYPE def)
7474
{
75-
printf("Port %lu: %s %lu/%lu %lu %lu %s,%s,%s %lux%lu %lux%lu @%lu %u\n",
75+
printf("Port %u: %s %u/%u %u %u %s,%s,%s %ux%u %ux%u @%u %u\n",
7676
def.nPortIndex,
7777
def.eDir == OMX_DirInput ? "in" : "out",
7878
def.nBufferCountActual,
@@ -128,6 +128,7 @@ video_encode_test(char *outputfilename)
128128
}
129129
list[0] = video_encode;
130130

131+
// get current settings of video_encode component from port 200
131132
memset(&def, 0, sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
132133
def.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
133134
def.nVersion.nVersion = OMX_VERSION;
@@ -178,6 +179,41 @@ video_encode_test(char *outputfilename)
178179
exit(1);
179180
}
180181

182+
OMX_VIDEO_PARAM_BITRATETYPE bitrateType;
183+
// set current bitrate to 1Mbit
184+
memset(&bitrateType, 0, sizeof(OMX_VIDEO_PARAM_BITRATETYPE));
185+
bitrateType.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
186+
bitrateType.nVersion.nVersion = OMX_VERSION;
187+
bitrateType.eControlRate = OMX_Video_ControlRateVariable;
188+
bitrateType.nTargetBitrate = 1000000;
189+
bitrateType.nPortIndex = 201;
190+
r = OMX_SetParameter(ILC_GET_HANDLE(video_encode),
191+
OMX_IndexParamVideoBitrate, &bitrateType);
192+
if (r != OMX_ErrorNone) {
193+
printf
194+
("%s:%d: OMX_SetParameter() for bitrate for video_encode port 201 failed with %x!\n",
195+
__FUNCTION__, __LINE__, r);
196+
exit(1);
197+
}
198+
199+
200+
// get current bitrate
201+
memset(&bitrateType, 0, sizeof(OMX_VIDEO_PARAM_BITRATETYPE));
202+
bitrateType.nSize = sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE);
203+
bitrateType.nVersion.nVersion = OMX_VERSION;
204+
bitrateType.nPortIndex = 201;
205+
206+
if (OMX_GetParameter
207+
(ILC_GET_HANDLE(video_encode), OMX_IndexParamVideoBitrate,
208+
&bitrateType) != OMX_ErrorNone) {
209+
printf("%s:%d: OMX_GetParameter() for video_encode for bitrate port 201 failed!\n",
210+
__FUNCTION__, __LINE__);
211+
exit(1);
212+
}
213+
printf("Current Bitrate=%u\n",bitrateType.nTargetBitrate);
214+
215+
216+
181217
printf("encode to idle...\n");
182218
if (ilclient_change_component_state(video_encode, OMX_StateIdle) == -1) {
183219
printf

0 commit comments

Comments
 (0)