Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Asd-g committed May 7, 2022
1 parent df6eda2 commit a4b690e
Showing 1 changed file with 99 additions and 9 deletions.
108 changes: 99 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,57 +11,147 @@ This is a project (previously named as MPEG2DecPlus) to modify DGDecode.dll for
### Usage:

```
D2VSource(string "d2v", int "idct", bool "showQ", int "info", int "upConv", bool "i420", bool "iCC")
D2VSource(string "d2v", int "idct", bool "showQ", int "info", int "upConv", bool "i420", bool "iCC", bool "nocrop", int "rff")
```

### Parameters:

- d2v\
The path of the dv2 file.

- idct\
The iDCT algorithm to use.\
0: Follow the d2v specification.\
1,2,3,6,7: AP922 integer (same as SSE2/MMX).\
4: SSE2/AVX2 LLM (single precision floating point, SSE2/AVX2 determination is automatic).\
5: IEEE 1180 reference (double precision floating point).\
Default: -1.

- showQ\
It displays macroblock quantizers..\
Default: False.

- info\
It prints debug information.\
0: Do not display.\
1: Overlay on video frame.\
2: Output with OutputDebugString(). (The contents are confirmed by DebugView.exe).\
3: Embed hints in 64 bytes of the frame upper left corner.\
Default: 0.

- upConv\
The output format.\
0: No conversion. YUV420 output is YV12, YUV422 output is YV16.\
1: Output YV16.\
2: Output YV24.\
Default: 0.

- i420\
It determinates what is the output of YUV420.\
True: The output is i410.\
False: The output is YV12.\
Default: False.

- iCC\
It determinates how YUV420 is upscaled when upConv=true.\
True: Force field-based upsampling.\
False: Forse progressive upsampling.\
Default: Auto determination based on the frame flag.


- nocrop\
Use direct-rendered buffer, which may need cropping.\
It could provide a speedup when you know you need to crop your image anyway, by avoiding extra memcpy calls.\
Default: False.

- rff\
Changes Field_Operation without the need of editing d2v or rescanning with different Field Operation.\
0: Honor Pulldowns Flags.\
1: Forced Film.\
2: Ignored Pulldowns Flags.\
Default: -1 - read the value from d2v.

### Exported variables:

FFSAR_NUM, FFSAR_DEN, FFSAR.

### Frame properties

_AbsoluteTime [float]\
The frame’s absolute timestamp in seconds.

_AspectRatio [data]\
A string giving the display aspect ratio.

_ChromaLocation [int]\
Chroma sample position in YUV formats:
0=left, 1=center, 2=topleft, 3=top, 4=bottomleft, 5=bottom.

_DurationNum [int], _DurationDen [int]\
The frame’s duration in seconds as a rational number.

_EncodedFrameTop [int], _EncodedFrameBottom [int]\
Frame number (before pulldown) used to generate this frame's
top/bottom field.

_FieldBased [int]\
Describes the composition of the frame:\
0=frame based (progressive), 1=bottom field first, 2=top field first.\
Note that the GOP progressive flag is used to determine whether the frame is progressive.

_FieldOperation [int]\
Describes the field operation option in effect:\
0=honor pulldown, 1=force film, 2=ignore pulldown.

_FieldOrder [int]\
Display field order of the frame:\
0=bottom field first, 1=top field first.

_Film [int]\
Set if the frame is part of a 3:2 soft pulldown section.\
Note that this uses the RFF history of several preceding\
frames, and so is valid only when doing linear access.

_GOPClosed [int]\
Set if the current GOP is closed.

_GOPNumber [int]\
The 0-based GOP number that contains the frame. Note that\
if this is set as the value x, then propShow displays it as\
[x, y] where y is the 0-based frame number of the first frame\
in the GOP.

_GOPPosition [int]\
The GOP position field from the D2V file for the GOP containing\
the frame.

_Matrix [int]\
The matrix number field from the D2V file for the GOP containing\
the frame.

_PictType [data]\
A single character describing the frame type. It uses the common\
IPB characters but others may also be used for formats with\
additional frame types.

_ProgressiveFrame [int]\
Set if the progress_frame flag is set for this frame.

_QuantsAverage [int]\
The average quantizer value for the frame.

_QuantsMax [int]\
The maximum quantizer value for the frame.

_QuantsMin [int]\
The minimum quantizer value for the frame.

_RFF [int]\
If _FieldOperation is 2 (ignore pulldown) then _RFF describes whether the stream specifies that a repeat field operation is to be performed on this frame. If _FieldOperation is 0 (honor pulldown) or 1 (force film) then _RFF describes whether the frame was composed with field repetition.

_TFF [int]\
If _FieldOperation is 2 (ignore pulldown) and _RFF is set, then _TFF\
describes whether the stream specifies that the top field is to be repeated, otherwise the bottom field is to be repeated. If _FieldOperation is 0 (honor pulldown) or 1 (force film) then _TFF is inapplicable and is set to -1.

### Building:

- Windows\
Expand All @@ -79,7 +169,7 @@ FFSAR_NUM, FFSAR_DEN, FFSAR.
cd MPEG2DecPlus && \
mkdir build && \
cd build && \
cmake ..
make -j$(nproc)
sudo make install
Expand Down

0 comments on commit a4b690e

Please sign in to comment.