Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-08-26 03:29:40 +0400
committerMichael Niedermayer <michaelni@gmx.at>2011-08-26 03:29:40 +0400
commit876d1d796bd80c75e3e6a7a458e3143cfe5c9474 (patch)
tree949cc4c9120dc58512d84998adcb949d173cd9c0 /libavcodec/vc1_parser.c
parent7c4e4c6a0664bf668f4b7766a06f30096e0601f3 (diff)
parentf913eeea43078b3b9052efd8d8d29e7b29b39208 (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: vp6: partially propagate huffman tree building errors during coeff model parsing and fix misspelling mpeg12: propagate chunk decode errors and fix conditional indentation vc1: fix VC-1 Pulldown handling. VC1: Fix first/last row checks with slices mp4: Handle non-trivial ES Descriptors. vc1: properly zero coded_block[] edges on new slice entry. Conflicts: libavcodec/vc1dec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/vc1_parser.c')
-rw-r--r--libavcodec/vc1_parser.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c
index 4ea9c47076..99023db492 100644
--- a/libavcodec/vc1_parser.c
+++ b/libavcodec/vc1_parser.c
@@ -45,6 +45,7 @@ static void vc1_extract_headers(AVCodecParserContext *s, AVCodecContext *avctx,
vpc->v.s.avctx = avctx;
vpc->v.parse_only = 1;
next = buf;
+ s->repeat_pict = 0;
for(start = buf, end = buf + buf_size; next < end; start = next){
int buf2_size, size;
@@ -73,6 +74,20 @@ static void vc1_extract_headers(AVCodecParserContext *s, AVCodecContext *avctx,
else
s->pict_type = vpc->v.s.pict_type;
+ if (avctx->ticks_per_frame > 1){
+ // process pulldown flags
+ s->repeat_pict = 1;
+ // Pulldown flags are only valid when 'broadcast' has been set.
+ // So ticks_per_frame will be 2
+ if (vpc->v.rff){
+ // repeat field
+ s->repeat_pict = 2;
+ }else if (vpc->v.rptfrm){
+ // repeat frames
+ s->repeat_pict = vpc->v.rptfrm * 2 + 1;
+ }
+ }
+
break;
}
}