Opened 14 years ago
Closed 13 years ago
#1656 closed defect (fixed)
AVRn (mjpeg): change field order for ntsc
| Reported by: | ami_stuff | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avcodec |
| Version: | git-master | Keywords: | mjpeg AVrn AVID |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
AVRn in ntsc mode needs change of field order, so probably check for MKTAG and "NTSC" string in the file should be aded.
libavcodec/mjpegdec.c:
av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
{
MJpegDecodeContext *s = avctx->priv_data;
if (!s->picture_ptr)
s->picture_ptr = &s->picture;
avcodec_get_frame_defaults(&s->picture);
s->avctx = avctx;
ff_dsputil_init(&s->dsp, avctx);
ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct);
s->buffer_size = 0;
s->buffer = NULL;
s->start_code = -1;
s->first_picture = 1;
s->org_height = avctx->coded_height;
avctx->chroma_sample_location = AVCHROMA_LOC_CENTER;
build_basic_mjpeg_vlc(s);
if (s->extern_huff) {
av_log(avctx, AV_LOG_INFO, "using external huffman table\n");
init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size * 8);
if (ff_mjpeg_decode_dht(s)) {
av_log(avctx, AV_LOG_ERROR,
"error using external huffman table, switching back to internal\n");
build_basic_mjpeg_vlc(s);
}
}
- if (avctx->field_order == AV_FIELD_BB) {
+ if (avctx->field_order == AV_FIELD_BB || s->avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') && ntsc_string) {
s->interlace_polarity = 1; /* bottom field first */
av_log(avctx, AV_LOG_DEBUG, "bottom field first\n");
}
if (avctx->codec->id == CODEC_ID_AMV)
s->flipped = 1;
return 0;
}
C:\>ffmpeg -i ntsc.avi out.bmp
ffmpeg version N-43678-gceb8773 Copyright (c) 2000-2012 the FFmpeg developers
built on Aug 18 2012 02:22:03 with gcc 4.5.0 (GCC) 20100414 (Fedora MinGW 4.5.
0-1.fc14)
configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-min
gw32-gcc' --enable-w32threads --enable-memalign-hack --enable-runtime-cpudetect
--enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -
lwinmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snap
shots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/s
napshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3
--enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-
libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
libavutil 51. 70.100 / 51. 70.100
libavcodec 54. 53.100 / 54. 53.100
libavformat 54. 25.100 / 54. 25.100
libavdevice 54. 2.100 / 54. 2.100
libavfilter 3. 10.100 / 3. 10.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, avi, from 'ntsc.avi':
Duration: 00:00:00.10, start: 0.000000, bitrate: 6630 kb/s
Stream #0:0: Video: mjpeg (AVRn / 0x6E525641), yuvj422p, 720x496, 10 tbr, 10
tbn, 10 tbc
Output #0, image2, to 'out.bmp':
Metadata:
encoder : Lavf54.25.100
Stream #0:0: Video: bmp, bgr24, 720x496, q=2-31, 200 kb/s, 90k tbn, 10 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> bmp)
Press [q] to stop, [?] for help
frame= 1 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.10 bitrate= 0.0kbits/
s
video:1046kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.000000
%
Attachments (2)
Change History (5)
by , 14 years ago
by , 14 years ago
comment:1 by , 14 years ago
| Component: | undetermined → avcodec |
|---|---|
| Keywords: | mjpeg AVrn AVID added |
| Reproduced by developer: | set |
| Status: | new → open |
| Version: | unspecified → git-master |
comment:2 by , 14 years ago
Note:
See TracTickets
for help on using tickets.



Also it would be good to add an possibility to change fields order manually as an ffmpeg's option (if this is not already possible) for codecs like mjpeg/dv/frwu/mpeg.