[Ffmpeg-devel] DV decoder questions
Burkhard Plaum
plaum
Mon Dec 12 14:18:43 CET 2005
Hi all,
2 things I stumbled across:
- In dv.c, there is a
static uint8_t** dv_anchor;
which handles multithreaded decoding. Now if one wants to
decode 2 dv streams in 2 threads, this will most likely
crash as long as the dv_anchor is a global variable.
Would you apply a patch, which moves the dv_anchor to the
DVVideoContext?
- I found, that the DV decoder doesn't set the sample aspect
ratio (it's 1:1 after the first decode call). To set the proper
ratio, one must know, if the DV is 16:9 or 4:3. I found no place
in ffmpeg, where this is detected (it should play no role for the
actual decoding). In libdv, there is a function:
int
dv_format_wide (dv_decoder_t *dv)
{
uint8_t id;
if ((id = dv -> vaux_pack [0x61]) != 0xff) {
if (dv->std == e_dv_std_smpte_314m)
return ((dv->vaux_data[id][1] & 0x7) == 0x2);
else
return (((dv->vaux_data[id][1] & 0x7) == 0x2) ||
((dv->vaux_data[id][1] & 0x7) == 0x7)) ;
}
return -1;
}
I didn't dig deep enough to find out what the vaux_pack and vaux_data
are. Does anyone have an idea, how this could be merged into the
ffmpeg dv decoder?
Cheers
Burkhard
More information about the ffmpeg-devel
mailing list