diff options
Diffstat (limited to 'Documentation/video4linux/cx2341x/fw-encoder-api.txt')
-rw-r--r-- | Documentation/video4linux/cx2341x/fw-encoder-api.txt | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/Documentation/video4linux/cx2341x/fw-encoder-api.txt b/Documentation/video4linux/cx2341x/fw-encoder-api.txt index 15df0df57ddd..242104ce5b61 100644 --- a/Documentation/video4linux/cx2341x/fw-encoder-api.txt +++ b/Documentation/video4linux/cx2341x/fw-encoder-api.txt | |||
@@ -213,16 +213,6 @@ Param[1] | |||
213 | 213 | ||
214 | ------------------------------------------------------------------------------- | 214 | ------------------------------------------------------------------------------- |
215 | 215 | ||
216 | Name CX2341X_ENC_SET_3_2_PULLDOWN | ||
217 | Enum 177/0xB1 | ||
218 | Description | ||
219 | 3:2 pulldown properties | ||
220 | Param[0] | ||
221 | 0=enabled | ||
222 | 1=disabled | ||
223 | |||
224 | ------------------------------------------------------------------------------- | ||
225 | |||
226 | Name CX2341X_ENC_SET_VBI_LINE | 216 | Name CX2341X_ENC_SET_VBI_LINE |
227 | Enum 183/0xB7 | 217 | Enum 183/0xB7 |
228 | Description | 218 | Description |
@@ -332,9 +322,7 @@ Param[0] | |||
332 | '01'=JointStereo | 322 | '01'=JointStereo |
333 | '10'=Dual | 323 | '10'=Dual |
334 | '11'=Mono | 324 | '11'=Mono |
335 | Note: testing seems to indicate that Mono and possibly | 325 | Note: the cx23415 cannot decode Joint Stereo properly. |
336 | JointStereo are not working (default to stereo). | ||
337 | Dual does work, though. | ||
338 | 326 | ||
339 | 10:11 Mode Extension used in joint_stereo mode. | 327 | 10:11 Mode Extension used in joint_stereo mode. |
340 | In Layer I and II they indicate which subbands are in | 328 | In Layer I and II they indicate which subbands are in |
@@ -413,16 +401,34 @@ Name CX2341X_ENC_SET_PGM_INDEX_INFO | |||
413 | Enum 199/0xC7 | 401 | Enum 199/0xC7 |
414 | Description | 402 | Description |
415 | Sets the Program Index Information. | 403 | Sets the Program Index Information. |
404 | The information is stored as follows: | ||
405 | |||
406 | struct info { | ||
407 | u32 length; // Length of this frame | ||
408 | u32 offset_low; // Offset in the file of the | ||
409 | u32 offset_high; // start of this frame | ||
410 | u32 mask1; // Bits 0-1 are the type mask: | ||
411 | // 1=I, 2=P, 4=B | ||
412 | u32 pts; // The PTS of the frame | ||
413 | u32 mask2; // Bit 0 is bit 32 of the pts. | ||
414 | }; | ||
415 | u32 table_ptr; | ||
416 | struct info index[400]; | ||
417 | |||
418 | The table_ptr is the encoder memory address in the table were | ||
419 | *new* entries will be written. Note that this is a ringbuffer, | ||
420 | so the table_ptr will wraparound. | ||
416 | Param[0] | 421 | Param[0] |
417 | Picture Mask: | 422 | Picture Mask: |
418 | 0=No index capture | 423 | 0=No index capture |
419 | 1=I frames | 424 | 1=I frames |
420 | 3=I,P frames | 425 | 3=I,P frames |
421 | 7=I,P,B frames | 426 | 7=I,P,B frames |
427 | (Seems to be ignored, it always indexes I, P and B frames) | ||
422 | Param[1] | 428 | Param[1] |
423 | Elements requested (up to 400) | 429 | Elements requested (up to 400) |
424 | Result[0] | 430 | Result[0] |
425 | Offset in SDF memory of the table. | 431 | Offset in the encoder memory of the start of the table. |
426 | Result[1] | 432 | Result[1] |
427 | Number of allocated elements up to a maximum of Param[1] | 433 | Number of allocated elements up to a maximum of Param[1] |
428 | 434 | ||
@@ -492,12 +498,14 @@ Name CX2341X_ENC_GET_PREV_DMA_INFO_MB_9 | |||
492 | Enum 203/0xCB | 498 | Enum 203/0xCB |
493 | Description | 499 | Description |
494 | Returns information on the previous DMA transfer in conjunction with | 500 | Returns information on the previous DMA transfer in conjunction with |
495 | bit 27 of the interrupt mask. Uses mailbox 9. | 501 | bit 27 or 18 of the interrupt mask. Uses mailbox 9. |
496 | Result[0] | 502 | Result[0] |
497 | Status bits: | 503 | Status bits: |
498 | Bit 0 set indicates transfer complete | 504 | 0 read completed |
499 | Bit 2 set indicates transfer error | 505 | 1 write completed |
500 | Bit 4 set indicates linked list error | 506 | 2 DMA read error |
507 | 3 DMA write error | ||
508 | 4 Scatter-Gather array error | ||
501 | Result[1] | 509 | Result[1] |
502 | DMA type | 510 | DMA type |
503 | Result[2] | 511 | Result[2] |
@@ -672,7 +680,7 @@ Description | |||
672 | the value. | 680 | the value. |
673 | Param[0] | 681 | Param[0] |
674 | Command number: | 682 | Command number: |
675 | 1=set initial SCR value when starting encoding. | 683 | 1=set initial SCR value when starting encoding (works). |
676 | 2=set quality mode (apparently some test setting). | 684 | 2=set quality mode (apparently some test setting). |
677 | 3=setup advanced VIM protection handling (supposedly only for the cx23416 | 685 | 3=setup advanced VIM protection handling (supposedly only for the cx23416 |
678 | for raw YUV). | 686 | for raw YUV). |
@@ -681,7 +689,11 @@ Param[0] | |||
681 | 4=generate artificial PTS timestamps | 689 | 4=generate artificial PTS timestamps |
682 | 5=USB flush mode | 690 | 5=USB flush mode |
683 | 6=something to do with the quantization matrix | 691 | 6=something to do with the quantization matrix |
684 | 7=set navigation pack insertion for DVD | 692 | 7=set navigation pack insertion for DVD: adds 0xbf (private stream 2) |
693 | packets to the MPEG. The size of these packets is 2048 bytes (including | ||
694 | the header of 6 bytes: 0x000001bf + length). The payload is zeroed and | ||
695 | it is up to the application to fill them in. These packets are apparently | ||
696 | inserted every four frames. | ||
685 | 8=enable scene change detection (seems to be a failure) | 697 | 8=enable scene change detection (seems to be a failure) |
686 | 9=set history parameters of the video input module | 698 | 9=set history parameters of the video input module |
687 | 10=set input field order of VIM | 699 | 10=set input field order of VIM |