History

avcodec/ffv1dec: don't check chroma_planes for f->colorspace > 0

It's RGB, so check instead if it's packed or planar.

James Almer committed 1 year ago

Commit 86670fe1 parent da18c2a1 file · +6 −8Browse files

Unified · Split

libavcodec/ffv1dec.c+6−8
@@ -447,22 +447,20 @@ static int decode_slice(AVCodecContext *c, void *arg) · 446 unmodified lines
447447 decode_plane(f, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] , width, height, p->linesize[0], 0, 0, 2, ac);
448448 decode_plane(f, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] + (ps>>1), width, height, p->linesize[0], 1, 1, 2, ac);
449449 } else if (f->use32bit) {
450− uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0] };
451− if (f->chroma_planes) {
452− planes[1] = p->data[1] + ps * x + y * p->linesize[1];
453− planes[2] = p->data[2] + ps * x + y * p->linesize[2];
454− }
450+ uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0],
451+ p->data[1] + ps * x + y * p->linesize[1],
452+ p->data[2] + ps * x + y * p->linesize[2] };
455453 if (f->transparency)
456454 planes[3] = p->data[3] + ps * x + y * p->linesize[3];
457455 decode_rgb_frame32(f, sc, &gb, planes, width, height, p->linesize);
458456 } else {
459457 uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0] };
460− if (f->chroma_planes) {
458+ if (f->avctx->bits_per_raw_sample > 8) {
461459 planes[1] = p->data[1] + ps * x + y * p->linesize[1];
462460 planes[2] = p->data[2] + ps * x + y * p->linesize[2];
461+ if (f->transparency)
462+ planes[3] = p->data[3] + ps * x + y * p->linesize[3];
463463 }
464− if (f->transparency)
465− planes[3] = p->data[3] + ps * x + y * p->linesize[3];
466464 decode_rgb_frame(f, sc, &gb, planes, width, height, p->linesize);
467465 }
468466 if (ac != AC_GOLOMB_RICE && f->version > 2) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t