1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> 2 <HTML 3 ><HEAD 4 ><TITLE 5 >ioctl VIDIOC_G_ENC_INDEX</TITLE 6 ><META 7 NAME="GENERATOR" 8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK 9 REL="HOME" 10 TITLE="Video for Linux Two API Specification" 11 HREF="book1.htm"><LINK 12 REL="UP" 13 TITLE="Function Reference" 14 HREF="r7624.htm"><LINK 15 REL="PREVIOUS" 16 TITLE="ioctl VIDIOC_G_CTRL, VIDIOC_S_CTRL" 17 HREF="r10104.htm"><LINK 18 REL="NEXT" 19 TITLE="ioctl VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, 20 VIDIOC_TRY_EXT_CTRLS" 21 HREF="r10386.htm"></HEAD 22 ><BODY 23 CLASS="REFENTRY" 24 BGCOLOR="#FFFFFF" 25 TEXT="#000000" 26 LINK="#0000FF" 27 VLINK="#840084" 28 ALINK="#0000FF" 29 ><DIV 30 CLASS="NAVHEADER" 31 ><TABLE 32 SUMMARY="Header navigation table" 33 WIDTH="100%" 34 BORDER="0" 35 CELLPADDING="0" 36 CELLSPACING="0" 37 ><TR 38 ><TH 39 COLSPAN="3" 40 ALIGN="center" 41 >Video for Linux Two API Specification: Revision 0.24</TH 42 ></TR 43 ><TR 44 ><TD 45 WIDTH="10%" 46 ALIGN="left" 47 VALIGN="bottom" 48 ><A 49 HREF="r10104.htm" 50 ACCESSKEY="P" 51 >Prev</A 52 ></TD 53 ><TD 54 WIDTH="80%" 55 ALIGN="center" 56 VALIGN="bottom" 57 ></TD 58 ><TD 59 WIDTH="10%" 60 ALIGN="right" 61 VALIGN="bottom" 62 ><A 63 HREF="r10386.htm" 64 ACCESSKEY="N" 65 >Next</A 66 ></TD 67 ></TR 68 ></TABLE 69 ><HR 70 ALIGN="LEFT" 71 WIDTH="100%"></DIV 72 ><H1 73 ><A 74 NAME="VIDIOC-G-ENC-INDEX" 75 ></A 76 >ioctl VIDIOC_G_ENC_INDEX</H1 77 ><DIV 78 CLASS="REFNAMEDIV" 79 ><A 80 NAME="AEN10215" 81 ></A 82 ><H2 83 >Name</H2 84 >VIDIOC_G_ENC_INDEX -- Get meta data about a compressed video stream</DIV 85 ><DIV 86 CLASS="REFSYNOPSISDIV" 87 ><A 88 NAME="AEN10218" 89 ></A 90 ><H2 91 >Synopsis</H2 92 ><DIV 93 CLASS="FUNCSYNOPSIS" 94 ><P 95 ></P 96 ><A 97 NAME="AEN10219" 98 ></A 99 ><P 100 ><CODE 101 ><CODE 102 CLASS="FUNCDEF" 103 >int ioctl</CODE 104 >(int fd, int request, struct v4l2_enc_idx *argp);</CODE 105 ></P 106 ><P 107 ></P 108 ></DIV 109 ></DIV 110 ><DIV 111 CLASS="REFSECT1" 112 ><A 113 NAME="AEN10229" 114 ></A 115 ><H2 116 >Arguments</H2 117 ><P 118 ></P 119 ><DIV 120 CLASS="VARIABLELIST" 121 ><DL 122 ><DT 123 ><CODE 124 CLASS="PARAMETER" 125 >fd</CODE 126 ></DT 127 ><DD 128 ><P 129 >File descriptor returned by <A 130 HREF="r14090.htm" 131 ><CODE 132 CLASS="FUNCTION" 133 >open()</CODE 134 ></A 135 >.</P 136 ></DD 137 ><DT 138 ><CODE 139 CLASS="PARAMETER" 140 >request</CODE 141 ></DT 142 ><DD 143 ><P 144 >VIDIOC_G_ENC_INDEX</P 145 ></DD 146 ><DT 147 ><CODE 148 CLASS="PARAMETER" 149 >argp</CODE 150 ></DT 151 ><DD 152 ><P 153 ></P 154 ></DD 155 ></DL 156 ></DIV 157 ></DIV 158 ><DIV 159 CLASS="REFSECT1" 160 ><A 161 NAME="AEN10249" 162 ></A 163 ><H2 164 >Description</H2 165 ><DIV 166 CLASS="NOTE" 167 ><BLOCKQUOTE 168 CLASS="NOTE" 169 ><P 170 ><B 171 >Experimental: </B 172 >This is an <A 173 HREF="x16453.htm" 174 >experimental</A 175 > 176 interface and may change in the future.</P 177 ></BLOCKQUOTE 178 ></DIV 179 ><P 180 >The <CODE 181 CLASS="CONSTANT" 182 >VIDIOC_G_ENC_INDEX</CODE 183 > ioctl provides 184 meta data about a compressed video stream the same or another 185 application currently reads from the driver, which is useful for 186 random access into the stream without decoding it.</P 187 ><P 188 >To read the data applications must call 189 <CODE 190 CLASS="CONSTANT" 191 >VIDIOC_G_ENC_INDEX</CODE 192 > with a pointer to a 193 struct <A 194 HREF="r10211.htm#V4L2-ENC-IDX" 195 >v4l2_enc_idx</A 196 >. On success the driver fills the 197 <CODE 198 CLASS="STRUCTFIELD" 199 >entry</CODE 200 > array, stores the number of elements 201 written in the <CODE 202 CLASS="STRUCTFIELD" 203 >entries</CODE 204 > field, and 205 initializes the <CODE 206 CLASS="STRUCTFIELD" 207 >entries_cap</CODE 208 > field.</P 209 ><P 210 >Each element of the <CODE 211 CLASS="STRUCTFIELD" 212 >entry</CODE 213 > array 214 contains meta data about one picture. A 215 <CODE 216 CLASS="CONSTANT" 217 >VIDIOC_G_ENC_INDEX</CODE 218 > call reads up to 219 <CODE 220 CLASS="CONSTANT" 221 >V4L2_ENC_IDX_ENTRIES</CODE 222 > entries from a driver 223 buffer, which can hold up to <CODE 224 CLASS="STRUCTFIELD" 225 >entries_cap</CODE 226 > 227 entries. This number can be lower or higher than 228 <CODE 229 CLASS="CONSTANT" 230 >V4L2_ENC_IDX_ENTRIES</CODE 231 >, but not zero. When the 232 application fails to read the meta data in time the oldest entries 233 will be lost. When the buffer is empty or no capturing/encoding is in 234 progress, <CODE 235 CLASS="STRUCTFIELD" 236 >entries</CODE 237 > will be zero.</P 238 ><P 239 >Currently this ioctl is only defined for MPEG-2 program 240 streams and video elementary streams.</P 241 ><DIV 242 CLASS="TABLE" 243 ><A 244 NAME="V4L2-ENC-IDX" 245 ></A 246 ><P 247 ><B 248 >Table 1. struct <CODE 249 CLASS="STRUCTNAME" 250 >v4l2_enc_idx</CODE 251 ></B 252 ></P 253 ><TABLE 254 BORDER="0" 255 FRAME="void" 256 WIDTH="100%" 257 CLASS="CALSTABLE" 258 ><COL 259 WIDTH="25%" 260 TITLE="C1"><COL 261 WIDTH="25%" 262 TITLE="C2"><COL 263 WIDTH="50%" 264 TITLE="C3"><TBODY 265 VALIGN="TOP" 266 ><TR 267 ><TD 268 >__u32</TD 269 ><TD 270 ><CODE 271 CLASS="STRUCTFIELD" 272 >entries</CODE 273 ></TD 274 ><TD 275 >The number of entries the driver stored in the 276 <CODE 277 CLASS="STRUCTFIELD" 278 >entry</CODE 279 > array.</TD 280 ></TR 281 ><TR 282 ><TD 283 >__u32</TD 284 ><TD 285 ><CODE 286 CLASS="STRUCTFIELD" 287 >entries_cap</CODE 288 ></TD 289 ><TD 290 >The number of entries the driver can 291 buffer. Must be greater than zero.</TD 292 ></TR 293 ><TR 294 ><TD 295 >__u32</TD 296 ><TD 297 ><CODE 298 CLASS="STRUCTFIELD" 299 >reserved</CODE 300 >[4]</TD 301 ><TD 302 COLSPAN="3" 303 >Reserved for future extensions. 304 Drivers must set the array to zero.</TD 305 ></TR 306 ><TR 307 ><TD 308 >struct <A 309 HREF="r10211.htm#V4L2-ENC-IDX-ENTRY" 310 >v4l2_enc_idx_entry</A 311 ></TD 312 ><TD 313 ><CODE 314 CLASS="STRUCTFIELD" 315 >entry</CODE 316 >[<CODE 317 CLASS="CONSTANT" 318 >V4L2_ENC_IDX_ENTRIES</CODE 319 >]</TD 320 ><TD 321 >Meta data about a compressed video stream. Each 322 element of the array corresponds to one picture, sorted in ascending 323 order by their <CODE 324 CLASS="STRUCTFIELD" 325 >offset</CODE 326 >.</TD 327 ></TR 328 ></TBODY 329 ></TABLE 330 ></DIV 331 ><DIV 332 CLASS="TABLE" 333 ><A 334 NAME="V4L2-ENC-IDX-ENTRY" 335 ></A 336 ><P 337 ><B 338 >Table 2. struct <CODE 339 CLASS="STRUCTNAME" 340 >v4l2_enc_idx_entry</CODE 341 ></B 342 ></P 343 ><TABLE 344 BORDER="0" 345 FRAME="void" 346 WIDTH="100%" 347 CLASS="CALSTABLE" 348 ><COL 349 WIDTH="25%" 350 TITLE="C1"><COL 351 WIDTH="25%" 352 TITLE="C2"><COL 353 WIDTH="50%" 354 TITLE="C3"><TBODY 355 VALIGN="TOP" 356 ><TR 357 ><TD 358 >__u64</TD 359 ><TD 360 ><CODE 361 CLASS="STRUCTFIELD" 362 >offset</CODE 363 ></TD 364 ><TD 365 >The offset in bytes from the beginning of the 366 compressed video stream to the beginning of this picture, that is a 367 <I 368 CLASS="WORDASWORD" 369 >PES packet header</I 370 > as defined in <A 371 HREF="b17127.htm#MPEG2PART1" 372 ><ABBR 373 CLASS="ABBREV" 374 >ISO 13818-1</ABBR 375 ></A 376 > or a <I 377 CLASS="WORDASWORD" 378 >picture 379 header</I 380 > as defined in <A 381 HREF="b17127.htm#MPEG2PART2" 382 ><ABBR 383 CLASS="ABBREV" 384 >ISO 13818-2</ABBR 385 ></A 386 >. When 387 the encoder is stopped, the driver resets the offset to zero.</TD 388 ></TR 389 ><TR 390 ><TD 391 >__u64</TD 392 ><TD 393 ><CODE 394 CLASS="STRUCTFIELD" 395 >pts</CODE 396 ></TD 397 ><TD 398 >The 33 bit <I 399 CLASS="WORDASWORD" 400 >Presentation Time 401 Stamp</I 402 > of this picture as defined in <A 403 HREF="b17127.htm#MPEG2PART1" 404 ><ABBR 405 CLASS="ABBREV" 406 >ISO 13818-1</ABBR 407 ></A 408 >.</TD 409 ></TR 410 ><TR 411 ><TD 412 >__u32</TD 413 ><TD 414 ><CODE 415 CLASS="STRUCTFIELD" 416 >length</CODE 417 ></TD 418 ><TD 419 >The length of this picture in bytes.</TD 420 ></TR 421 ><TR 422 ><TD 423 >__u32</TD 424 ><TD 425 ><CODE 426 CLASS="STRUCTFIELD" 427 >flags</CODE 428 ></TD 429 ><TD 430 >Flags containing the coding type of this picture, see <A 431 HREF="r10211.htm#ENC-IDX-FLAGS" 432 >Table 3</A 433 >.</TD 434 ></TR 435 ><TR 436 ><TD 437 >__u32</TD 438 ><TD 439 ><CODE 440 CLASS="STRUCTFIELD" 441 >reserved</CODE 442 >[2]</TD 443 ><TD 444 >Reserved for future extensions. 445 Drivers must set the array to zero.</TD 446 ></TR 447 ></TBODY 448 ></TABLE 449 ></DIV 450 ><DIV 451 CLASS="TABLE" 452 ><A 453 NAME="ENC-IDX-FLAGS" 454 ></A 455 ><P 456 ><B 457 >Table 3. Index Entry Flags</B 458 ></P 459 ><TABLE 460 BORDER="0" 461 FRAME="void" 462 WIDTH="100%" 463 CLASS="CALSTABLE" 464 ><COL 465 WIDTH="38%" 466 TITLE="C1"><COL 467 WIDTH="12%" 468 TITLE="C2"><COL 469 WIDTH="50%" 470 TITLE="C3"><TBODY 471 VALIGN="TOP" 472 ><TR 473 ><TD 474 ><CODE 475 CLASS="CONSTANT" 476 >V4L2_ENC_IDX_FRAME_I</CODE 477 ></TD 478 ><TD 479 >0x00</TD 480 ><TD 481 >This is an Intra-coded picture.</TD 482 ></TR 483 ><TR 484 ><TD 485 ><CODE 486 CLASS="CONSTANT" 487 >V4L2_ENC_IDX_FRAME_P</CODE 488 ></TD 489 ><TD 490 >0x01</TD 491 ><TD 492 >This is a Predictive-coded picture.</TD 493 ></TR 494 ><TR 495 ><TD 496 ><CODE 497 CLASS="CONSTANT" 498 >V4L2_ENC_IDX_FRAME_B</CODE 499 ></TD 500 ><TD 501 >0x02</TD 502 ><TD 503 >This is a Bidirectionally predictive-coded 504 picture.</TD 505 ></TR 506 ><TR 507 ><TD 508 ><CODE 509 CLASS="CONSTANT" 510 >V4L2_ENC_IDX_FRAME_MASK</CODE 511 ></TD 512 ><TD 513 >0x0F</TD 514 ><TD 515 ><I 516 CLASS="WORDASWORD" 517 >AND</I 518 > the flags field with 519 this mask to obtain the picture coding type.</TD 520 ></TR 521 ></TBODY 522 ></TABLE 523 ></DIV 524 ></DIV 525 ><DIV 526 CLASS="REFSECT1" 527 ><A 528 NAME="AEN10374" 529 ></A 530 ><H2 531 >Return Value</H2 532 ><P 533 >On success <SPAN 534 CLASS="RETURNVALUE" 535 >0</SPAN 536 > is returned, on error <SPAN 537 CLASS="RETURNVALUE" 538 >-1</SPAN 539 > and the <CODE 540 CLASS="VARNAME" 541 >errno</CODE 542 > variable is set appropriately:</P 543 ><P 544 ></P 545 ><DIV 546 CLASS="VARIABLELIST" 547 ><DL 548 ><DT 549 ><SPAN 550 CLASS="ERRORCODE" 551 >EINVAL</SPAN 552 ></DT 553 ><DD 554 ><P 555 >The driver does not support this ioctl.</P 556 ></DD 557 ></DL 558 ></DIV 559 ></DIV 560 ><DIV 561 CLASS="NAVFOOTER" 562 ><HR 563 ALIGN="LEFT" 564 WIDTH="100%"><TABLE 565 SUMMARY="Footer navigation table" 566 WIDTH="100%" 567 BORDER="0" 568 CELLPADDING="0" 569 CELLSPACING="0" 570 ><TR 571 ><TD 572 WIDTH="33%" 573 ALIGN="left" 574 VALIGN="top" 575 ><A 576 HREF="r10104.htm" 577 ACCESSKEY="P" 578 >Prev</A 579 ></TD 580 ><TD 581 WIDTH="34%" 582 ALIGN="center" 583 VALIGN="top" 584 ><A 585 HREF="book1.htm" 586 ACCESSKEY="H" 587 >Home</A 588 ></TD 589 ><TD 590 WIDTH="33%" 591 ALIGN="right" 592 VALIGN="top" 593 ><A 594 HREF="r10386.htm" 595 ACCESSKEY="N" 596 >Next</A 597 ></TD 598 ></TR 599 ><TR 600 ><TD 601 WIDTH="33%" 602 ALIGN="left" 603 VALIGN="top" 604 >ioctl VIDIOC_G_CTRL, VIDIOC_S_CTRL</TD 605 ><TD 606 WIDTH="34%" 607 ALIGN="center" 608 VALIGN="top" 609 ><A 610 HREF="r7624.htm" 611 ACCESSKEY="U" 612 >Up</A 613 ></TD 614 ><TD 615 WIDTH="33%" 616 ALIGN="right" 617 VALIGN="top" 618 >ioctl VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, 619 VIDIOC_TRY_EXT_CTRLS</TD 620 ></TR 621 ></TABLE 622 ></DIV 623 ></BODY 624 ></HTML 625 > 626