mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avdevice/decklink_dec: set field order via codecpar
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
8b2cd8e0e4
commit
e433497160
@ -731,6 +731,19 @@ av_cold int ff_decklink_read_header(AVFormatContext *avctx)
|
|||||||
st->codecpar->bit_rate = av_rescale(ctx->bmd_width * ctx->bmd_height * 16, st->time_base.den, st->time_base.num);
|
st->codecpar->bit_rate = av_rescale(ctx->bmd_width * ctx->bmd_height * 16, st->time_base.den, st->time_base.num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (ctx->bmd_field_dominance) {
|
||||||
|
case bmdUpperFieldFirst:
|
||||||
|
st->codecpar->field_order = AV_FIELD_TT;
|
||||||
|
break;
|
||||||
|
case bmdLowerFieldFirst:
|
||||||
|
st->codecpar->field_order = AV_FIELD_BB;
|
||||||
|
break;
|
||||||
|
case bmdProgressiveFrame:
|
||||||
|
case bmdProgressiveSegmentedFrame:
|
||||||
|
st->codecpar->field_order = AV_FIELD_PROGRESSIVE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
avpriv_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */
|
avpriv_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */
|
||||||
|
|
||||||
ctx->video_st=st;
|
ctx->video_st=st;
|
||||||
@ -788,15 +801,8 @@ int ff_decklink_read_packet(AVFormatContext *avctx, AVPacket *pkt)
|
|||||||
{
|
{
|
||||||
struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data;
|
struct decklink_cctx *cctx = (struct decklink_cctx *)avctx->priv_data;
|
||||||
struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx;
|
struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx;
|
||||||
AVFrame *frame = ctx->video_st->codec->coded_frame;
|
|
||||||
|
|
||||||
avpacket_queue_get(&ctx->queue, pkt, 1);
|
avpacket_queue_get(&ctx->queue, pkt, 1);
|
||||||
if (frame && (ctx->bmd_field_dominance == bmdUpperFieldFirst || ctx->bmd_field_dominance == bmdLowerFieldFirst)) {
|
|
||||||
frame->interlaced_frame = 1;
|
|
||||||
if (ctx->bmd_field_dominance == bmdUpperFieldFirst) {
|
|
||||||
frame->top_field_first = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user