|
|
|
@ -1235,28 +1235,28 @@ static int h264_export_frame_props(H264Context *h) |
|
|
|
|
AVStereo3D *stereo = av_stereo3d_create_side_data(out); |
|
|
|
|
if (stereo) { |
|
|
|
|
switch (fp->arrangement_type) { |
|
|
|
|
case H264_SEI_FPA_TYPE_CHECKERBOARD: |
|
|
|
|
case SEI_FPA_H264_TYPE_CHECKERBOARD: |
|
|
|
|
stereo->type = AV_STEREO3D_CHECKERBOARD; |
|
|
|
|
break; |
|
|
|
|
case H264_SEI_FPA_TYPE_INTERLEAVE_COLUMN: |
|
|
|
|
case SEI_FPA_H264_TYPE_INTERLEAVE_COLUMN: |
|
|
|
|
stereo->type = AV_STEREO3D_COLUMNS; |
|
|
|
|
break; |
|
|
|
|
case H264_SEI_FPA_TYPE_INTERLEAVE_ROW: |
|
|
|
|
case SEI_FPA_H264_TYPE_INTERLEAVE_ROW: |
|
|
|
|
stereo->type = AV_STEREO3D_LINES; |
|
|
|
|
break; |
|
|
|
|
case H264_SEI_FPA_TYPE_SIDE_BY_SIDE: |
|
|
|
|
case SEI_FPA_TYPE_SIDE_BY_SIDE: |
|
|
|
|
if (fp->quincunx_sampling_flag) |
|
|
|
|
stereo->type = AV_STEREO3D_SIDEBYSIDE_QUINCUNX; |
|
|
|
|
else |
|
|
|
|
stereo->type = AV_STEREO3D_SIDEBYSIDE; |
|
|
|
|
break; |
|
|
|
|
case H264_SEI_FPA_TYPE_TOP_BOTTOM: |
|
|
|
|
case SEI_FPA_TYPE_TOP_BOTTOM: |
|
|
|
|
stereo->type = AV_STEREO3D_TOPBOTTOM; |
|
|
|
|
break; |
|
|
|
|
case H264_SEI_FPA_TYPE_INTERLEAVE_TEMPORAL: |
|
|
|
|
case SEI_FPA_TYPE_INTERLEAVE_TEMPORAL: |
|
|
|
|
stereo->type = AV_STEREO3D_FRAMESEQUENCE; |
|
|
|
|
break; |
|
|
|
|
case H264_SEI_FPA_TYPE_2D: |
|
|
|
|
case SEI_FPA_H264_TYPE_2D: |
|
|
|
|
stereo->type = AV_STEREO3D_2D; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
@ -1264,7 +1264,7 @@ static int h264_export_frame_props(H264Context *h) |
|
|
|
|
if (fp->content_interpretation_type == 2) |
|
|
|
|
stereo->flags = AV_STEREO3D_FLAG_INVERT; |
|
|
|
|
|
|
|
|
|
if (fp->arrangement_type == H264_SEI_FPA_TYPE_INTERLEAVE_TEMPORAL) { |
|
|
|
|
if (fp->arrangement_type == SEI_FPA_TYPE_INTERLEAVE_TEMPORAL) { |
|
|
|
|
if (fp->current_frame_is_frame0_flag) |
|
|
|
|
stereo->view = AV_STEREO3D_VIEW_LEFT; |
|
|
|
|
else |
|
|
|
|